Изменение данных в таблице

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

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

Давайте добавим столбец role в таблицу users:

Столбец появился в конце таблицы:

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

Давайте добавим еще два столбца: один — kol — количество оставленных сообщений, а другой — rating — рейтинг пользователя. Оба столбца вставим после поля password:

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

Давайте сделаем Сергея модератором:

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

А теперь давайте зададим рейтинг Профи тем, у кого количество сообщений больше 30:

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

Предположим, что нам не нравится название Рейтинг у нашего столбца, и мы хотим переименовать столбец в Репутация — reputation. Для изменения имени существующего столбца используется оператор CHANGE. Его синтаксис следующий:

Давайте поменяем rating на reputation:

Обратите внимание, что тип столбца надо указывать даже, если он не меняется. Кстати, если нам понадобится изменить только тип столбца, то мы будем использовать оператор MODIFY. Его синтаксис следующий:

Последнее, что мы сегодня рассмотрим — оператор DELETE, который позволяет удалять строки из таблицы. Его синтаксис следующий:

Давайте из таблицы сообщений удалим те записи, которые оставлял пользователь valera (id=2):

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

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

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