Главная страница

практическая работа. Практическая работа - для слияния. Практическая работа 1 sql создание базы данных и таблиц Цель


Скачать 3.41 Mb.
НазваниеПрактическая работа 1 sql создание базы данных и таблиц Цель
Анкорпрактическая работа
Дата14.02.2023
Размер3.41 Mb.
Формат файлаdocx
Имя файлаПрактическая работа - для слияния.docx
ТипПрактическая работа
#936408
страница9 из 18
1   ...   5   6   7   8   9   10   11   12   ...   18

Практическая работа № 9

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


Цель: научиться редактировать, обновлять и удалять данные при помощи запросов

Ход работы.

Предположим, мы решили, что нашему форуму нужны модераторы. Для этого в таблицу 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. 
1   ...   5   6   7   8   9   10   11   12   ...   18


написать администратору сайта