Хотите получать новые статьи блога
прямо себе на почту?
Укажите свой e-mail:


WorldSkills Russia
Яндекс.Метрика Интернет-издание Профобразование

Манипулирование данными

0

План:

  1. Команды манипулирования данными
  2. Вставка в таблицу новых строк (команда INSERT)
  3. Удаление строки из таблицы (команда DELETE)
  4. Обновление записей в таблице (команда UPDATE)
Манипулирование данными Скачать материал лекции в формате PDF

1. Команды манипулирования данными

В SQL для выполнения операций ввода данных в таблицу, их изменения и удаления предназначены три команды языка манипулирования данными (DML). Это команды:

  • INSERT (вставить)
  • UPDATE (обновить)
  • DELETE (удалить)

2. Вставка в таблицу новых строк (команда INSERT)

Команда INSERT осуществляет вставку в таблицу новой строки. В простейшем случае она имеет вид:

1
INSERT INTO <имя таблицы> VALUES (<значение>, <значение>,);

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

Например, ввод новой строки в таблицу STUDENT может быть осуществлен следующим образом:

1
2
INSERT INTO STUDENT
VALUES (101, ‘Иванов’, ‘Александр’, 200, 3, ‘Москва’,1979-10-06’, 15);

Чтобы такая команда могла быть выполнена, таблица с указанным в ней именем (STUDENT) должна быть предварительно определена (создана) командой CREATE TABLE. Если в какое-либо поле необходимо вставить NULL-значение, то оно вводится как обычное значение:

1
2
INSERT INTO STUDENT
VALUES (101, ‘Иванов’, NULL, 200, 3, ‘Москва’,1979-10-06’, 15);

В случаях, когда необходимо ввести значения полей в порядке, отличном от порядка столбцов, заданного командой CREATE TABLE, или требуется ввести значения не во все столбцы, следует использовать следующую форму команды INSERT:

1
2
INSERT INTO STUDENT (STUDENT_ID, CITY, SURNAME, NAME)
VALUES (101, ‘Москва’, ‘Иванов’, ‘Александр’);

Столбцам, наименования которых не указаны в приведенном в скобках списке, автоматически присваивается значение по умолчанию, если оно назначено при описании таблицы (команда CREATE TABLE), либо значение NULL.

В команде INSERT используются следующие основные параметры:

  • имя таблицы, в которой добавляются строки;
  • список имен столбцов, для которых будут заданы значения;
Если значения будут заданы для всех столбцов таблицы, то приводить список столбцов необязательно.
  • значения, которые нужно добавить в таблицу. Значения могут указываться из следующих форматов:
    • Символьные значения, а также значения даты и времени приводятся в одинарных кавычках. Для числовых значений кавычки не обязательны. Десятичным разделителем для чисел с дробной частью служит точка. Время и дата вводятся соответственно ‘YYYY-MM-DD’ и ‘HH:MM:SS’.
    • Чтобы ввести в столбец неопределенное значение, то необходимо указать вместо значения ключевое слово NULL без кавычек (т.к. слово в кавычках рассматривается как обычная символьная строка).
    • Вместо значения можно указать ключевое слово DEFAULT без кавычек, тогда в столбец будет введено значение по умолчанию (если оно задано для этого столбца).

3. Удаление строки из таблицы (команда DELETE)

Удаление строк из таблицы осуществляется с помощью команды DELETE.

Следующее выражение удаляет все строки таблицы EXAM_MARKS.

1
DELETE FROM EXAM_MARKS;

В результате таблица становится пустой (после этого она может быть удалена командой DROP TABLE).

Для удаления из таблицы сразу нескольких строк, удовлетворяющих некоторому условию, можно воспользоваться предложением WHERE, например:

1
2
DELETE FROM EXAM_MARKS
WHERE STUDENT_ID=103;

Можно удалить группу строк:

1
2
DELETE FROM STUDENT
WHERE CITY=‘Москва’;

4. Обновление записей в таблице (команда UPDATE)

Команда UPDATE позволяет изменять, то есть обновлять значения некоторых или всех полей в существующей строке или строках таблицы. Например, чтобы для всех университетов, сведения о которых находятся в таблице UNIVERSITYI, изменить рейтинг на значение 200, можно использовать конструкцию:

1
UPDATE UNIVERSITYI SET RATING=200;

Для указания конкретных строк таблицы, значения полей которых должны быть изменены, в команде UPDATE можно использовать предикат, указываемый в предложении WHERE.

1
UPDATE UNIVERSITYI SET RATING=200 WHERE CITY=‘Москва’;

В результате выполнения этого запроса будет изменен рейтинг только у университетов, расположенных в Москве.

Команда UPDATE позволяет изменять не только один, но и множество столбцов. Для указания конкретных столбцов, значения которых должны быть модифицированы, используется предложение SET.

Например, наименование предмета обучения ‘Математика’ (для него SUBJ_ID=43) должно быть заменено на название ‘Высшая математика’, при этом идентификационный номер необходимо сохранить, но в соответствующие поля строки таблицы ввести новые данные об этом предмете обучения. Запрос будет выглядеть следующим образом:

1
2
3
UPDATE SUBJECT
SET SUBJ_NAME=‘Высшая математика’, HOUR=36, SEMESTER=1
WHERE SUBJ_ID=43;

В предложении SET команды UPDATE можно использовать скалярные выражения, указывающие способ изменения значений поля, в которые могут входить значения изменяемого и других полей.

1
UPDATE UNIVERSITYI SET RATING=RATING*2;

Например, для увеличения в таблице STUDENT значения поля STIPEND в два раза для студентов из Москвы можно использовать запрос:

1
UPDATE STUDENT 1 SET STIPEND=STIPEND*2 WHERE CITY=‘Москва’;

Предложение SET не является предикатом, поэтому в нем можно указать значение NULL следующим образом:

1
UPDATE UNIVERSITY SET RATING=NULL WHERE CITY=‘Москва’;
В приводимых в УМК примерах построения SQL-запросов и контрольных упражнениях используется учебная база данных. Посмотреть её структуру можно ЗДЕСЬ.

Возникли вопросы?
Тогда смело пишите комментарий — рада буду ответить!
Агрегирование и групповые функции