ГлавнаяУроки SQL → Урок 9. Редактирование, обновление и удаление данных

SQL - Урок 9. Редактирование, обновление и удаление данных

Предположим, мы решили, что нашему форуму нужны модераторы. Для этого в таблицу users надо добавить столбец с ролью пользователя. Для добавления столбцов в таблицу используется оператор ALTER TABLE - ADD COLUMN. Его синтаксис следующий:
ALTER TABLE имя_таблицы ADD COLUMN имя_столбца тип;
Давайте добавим столбец role в таблицу users:
ALTER TABLE users ADD COLUMN role varchar(20);
Столбец появился в конце таблицы:



Для того, чтобы указать местоположение столбца используются ключевые слова: FIRST - новый столбец будет первым, и AFTER - указывает после какого столбца поместить новый.

Давайте добавим еще два столбца: один - kol - количество оставленных сообщений, а другой - rating - рейтинг пользователя. Оба столбца вставим после поля password:
ALTER TABLE users ADD COLUMN kol int(10) AFTER password, ADD COLUMN rating varchar(20) AFTER kol;




Теперь надо назначить роль модератора какому-нибудь пользователю, пусть это будет sergey с id=1. Для обновления уже существующих данных служит оператор UPDATE. Его синтаксис следующий:
UPDATE имя_таблицы SET имя_столбца=значение_столбца WHERE условие;
Давайте сделаем Сергея модератором:
UPDATE users SET role='модератор' WHERE id_user=1;




Изменять данные можно и сразу в нескольких строках и во всей таблице. Например, мы решили давать рейтинг в зависимости от количества оставленных пользователем сообщений. Давайте в нашу таблицу сначала внесем значения столбца kol так, как мы уже умеем:



А теперь давайте зададим рейтинг Профи тем, у кого количество сообщений больше 30:
UPDATE users SET rating='Профи' WHERE kol>30;




Данные изменились в двух строках, согласно заданному условию. Понятно, что если в запросе опустить условие, то данные будут обновлены во всех строках таблицы.

Предположим, что нам не нравится название Рейтинг у нашего столбца, и мы хотим переименовать столбец в Репутация - reputation. Для изменения имени существующего столбца используется оператор CHANGE. Его синтаксис следующий:
ALTER TABLE имя_таблицы CHANGE старое_имя_столбца новое_имя_столбца тип;
Давайте поменяем rating на reputation:
ALTER TABLE users CHANGE rating reputation varchar(20);




Обратите внимание, что тип столбца надо указывать даже, если он не меняется. Кстати, если нам понадобится изменить только тип столбца, то мы будем использовать оператор MODIFY. Его синтаксис следующий:
ALTER TABLE имя_таблицы MODIFY имя_столбца новый_тип;
Последнее, что мы сегодня рассмотрим - оператор DELETE, который позволяет удалять строки из таблицы. Его синтаксис следующий:
DELETE FROM имя_таблицы WHERE условие;
Давайте из таблицы сообщений удалим те записи, которые оставлял пользователь valera (id=2):
DELETE FROM posts WHERE id_author='2';




Понятно, если опустить условие, то из таблицы будут удалены все данные. Следует помнить, что данные СУБД даст удалить только в том случае, если они не являются внешними ключами для данных из других таблиц (поддержка целостности БД). Например, если мы захотим удалить из таблицы users пользователя, который оставлял сообщения, то нам это не удастся.



Сначала надо удалить его сообщения, а уж потом и его самого.

Давайте подведем промежуточный итог. Мы умеем создавать таблицы и связывать их между собой, обновлять, редактировать и удалять данные и извлекать данные различным образом. В принципе - это можно назвать базовыми знаниями SQL. Далее мы будем изучать встроенные функции и расширенные возможности MySQL.



Предыдущий урок Вернуться в раздел Следующий урок 
Программирование на Python для начинающих


Теперь нажмите кнопку, что бы не забыть адрес и вернуться к нам снова.