Проблем:
Искате да премахнете ред/редове от таблица.
Пример 1:
В exam
таблица, има имена на студентите и резултатите от изпита.
name | резултат |
---|---|
Джанет Морген | 9 |
Тая Бейн | 11 |
Ан Джонсън | 11 |
Джош Каур | 10 |
Елън Торнтън | 8 |
Искате да премахнете реда за Елън Торнтън.
Решение 1:
DELETE FROM exam WHERE name = 'Ellen Thornton';
Таблицата exam
сега изглежда така:
name | резултат |
---|---|
Джанет Морген | 9 |
Тая Бейн | 11 |
Ан Джонсън | 11 |
Джош Каур | 10 |
Дискусия:
Използвайте DELETE FROM
с името на таблицата, от която искате да изтриете ред. В WHERE
, напишете условието, указващо реда. Ако имате предвид конкретен ред, най-добре е да напишете условието, като използвате колоната, съдържаща уникални стойности. Тук уникалната колона е name
.
Ако има много редове, чието име е равно на „Ellen Thornton
“, всички те ще бъдат премахнати. Ако няма такова име, не се премахват редове.
Пример 2:
В exam
таблица, има имена на студентите и резултатите от изпита, точно както в предишния пример.
name | резултат |
---|---|
Джанет Морген | 9 |
Тая Бейн | 11 |
Ан Джонсън | 11 |
Джош Каур | 10 |
Елън Торнтън | 8 |
Искате да премахнете всички редове, за които result
е по-голямо от 10
.
Решение 2:
DELETE FROM exam WHERE result > 10;
exam
таблицата сега изглежда така:
name | резултат |
---|---|
Джанет Морген | 9 |
Джош Каур | 10 |
Елън Торнтън | 8 |
Дискусия:
Понякога не знаете точните редове, които трябва да премахнете, или дори колко реда трябва да премахнете. Можете да напишете условието, за което редовете трябва да бъдат премахнати. Може да има много редове, които отговарят на условието, може да е само един ред или изобщо да няма редове.
Разбира се, можете да напишете множество условия в WHERE
, свързвайки ги с AND
или OR
, например:
DELETE FROM exam WHERE result > 10 AND name LIKE 'J%';