Бурлибаева
Ш.М., Мейірбекқызы Г.М., Тәжібай
А.М.
MYSQL ДҚБЖ DELETE командасы
DELETE операторының синтаксисі:

немесе

немесе

DELETE операторы table_name кестеден where_definition –де
берілген шарттарды қанағаттандыратын жолдарды жояды және
жойылған жазбалардың санын қайтарады.
Егер DELETE операторы WHERE анықтамай іске қосылса, онда барлық жолдар
жойылады. AUTOCOMMIT режимде орындалса, бұл TRUNCATE операторын қолдануыға ұқсас
болады. MySQL – де WHERE анықтамай DELETE операторы жойылған
жазбалар саны ретінде нольды
қайтарады.
Егер барлық жолдарды жойған кезде жазбалар
санын білу қажет болса, және де егер жылдамдығы
төмендесе, онда DELETE командасы келесі формада қолдагуға
болады:
mysql> DELETE FROM table_name WHERE 1>0;
Бұл жағдайда жолдар біртіндеп жойылып
тұрғаннан, WHERE өрнексіз DELETE FROM table_name қарағанда бұл
форманың жұмыс істеуі төмен болады.
Егер LOW_PRIORITY кілтті сөз берілсе, басқа клиенттер бұл кестені
оқып болғанша бұл DELETE команданың орындалуы
тоқталып тұрады.
Егер QUICK параметр берілсе, онда кестенің
өңдеушісі жою операциясы орындауда индекстерді біріктірмейді – кейбір
жағдайларда бұл операцияның орындалуын тездетеді.
MyISAM кестелерде жойылған жазбалар біріктірілген
тізімде сақталынады, ал келесі INSERT
операциялар жойылған жазбалар орналасқан орындарды қайталап
пайдалынады.Пайдаланбаған кеңістікті қайтару және
файлдардың өлшемін азайту үшін, OPTIMIZE TABLE команданы
немесе кестелерді өзгерту
үшін myisamchk утилитаны қолдануға болады. OPTIMIZE TABLE командасы
қарапайымдау, бірақ myisamchk
утилитаның жұмыс істеуі жылдамырақ.
(1)
формулада келтірілген DELETE команданың көпкестелік форматын ДҚБЖ MySQL 4.0.0–
ден бастап қолдайды. (2) формулада келтірілген DELETE команданың
көпкестелік форматын MySQL 4.0.2 – ден бастап қолдайды.
FROM немесе USING өрнектер алдындағы кестелердегі бірдей жолдар жойылады.
Бұл бір мезгілде бірнеше кестелерден жолдарды жоюға, сонымен
қатар іздеуге қосымша кестелерді пайдалануға мүмкіндік
береді.
Кесте аттарынан кейінгі нүкте немесе жұлдызша
(., *) символдары Access – пен үйлесімдігі үшін қажет:
DELETE t1,t2 FROM t1,t2,t3 WHERE t1.id=t2.id AND t2.id=t3.id (4)
немесе
DELETE FROM t1,t2 USING t1,t2,t3 WHERE t1.id=t2.id AND
t2.id=t3.id (5)
(5) t1 және
t2 кестелерден бірдей жолдар жойылған.
Егер ORDER BY
өрнек қолданса, онда жолдар көрсетілген ретімен жойылады. Бұл
өрнек LIMIT қолданғанда
қолайлы. Мысалы:

Бұл
оператор WHERE өрнекте
көрсетілген ең ескі жазбаны жояды.
MySQL үшін
DELETE команданың LIMIT ерекше опциясы
клиентке басқаруды қайтармай тұрып жойылатын жолдардың
максималды санын серверге көрсетеді. Бұл опция DELETE команда
орындалуына көп уақыт алмайтының кепілі болуына
қоланылады. Жойылған жолдардың саны LIMIT өлшемінен кем болғанша, DELETE команданы
қайталап тұрса болады.
Бір кестеден
жазбаларды жою үшін DELETE командада кестелердің жиынын көрсетуге болады. Бірақ
DELETE операторының бұндай
формасымен ORDER BY немесе LIMIT қолдануға болмайды.
ПАЙДАЛАНҒАН
ӘДЕБИЕТТЕР
1.
Конноли Т., Бегг К. Базы данных: проектирование, реализация, сопровождение.
Теория и практика. 3-е изд. М.: Вильямс, 2008
2.
Виктор Гольцман. MySQL 5.0. Библиотека программиста. СПб.: Питер.-253б
3.
http://www.mysql.com MySQL Databases