Слайд 2
Команды манипулирования данными
Команда INSERT осуществляет вставку в таблицу
новой строки.
В простейшем случае она имеет вид:
INSERT INTO
таблицы>
VALUES (<знач1>, <знач2>, …,<значN>);
Команда INSERT
Слайд 3
Команда INSERT
Ввод новой строки в таблицу STUDENT:
INSERT INTO
STUDENT
VALUES (101, 'Костюченко', 'Александр', 200, 3, 'Минск', #1/22/1981#, 15);
Ввод
пустых значений:
INSERT INTO STUDENT
VALUES (202, 'Мазуркин', NULL, 200, 3, 'Минск', #1/22/1981#, 15);
Ввод значений в порядке отличном от заданного при создании таблицы:
INSERT INTO STUDENT (STUDENT_ID, CITY, SURNAME, NAME)
VALUES (2, ‘Бобруйск’, ‘Абрамович’, ‘Саша’);
Слайд 4
Команды манипулирования данными
Команда DELETE осуществляет удаление строк из
таблицы.
В простейшем случае она имеет вид:
DELETE FROM ;
Команда
DELETE
Слайд 5
Для удаления из таблицы нескольких строк, удовлетворяющих некоторому
условию, можно воспользоваться предложением WHERE
DELETE FROM EXAM_MARKS
WHERE STUDENT_ID
= 301;
Команда DELETE
Слайд 6
Команды манипулирования данными
Команда UPDATE позволяет изменять значения некоторых
или всех полей в существующей строке или строках таблицы.
В
простейшем случае она имеет вид:
UPDATE <имя таблицы>
SET <имя атрибута>=<значение>;
Команда UPDATE
Слайд 7
Команда UPDATE
Изменить рейтинг всех университетов на значение
200:
UPDATE UNIVERSITY
SET RATTING = 200;
Для
указания конкретных строк таблицы, значения полей которых должны быть изменены, в команде UPDATE можно использовать предикат, указываемый в предложении WHERE.
Изменить рейтинг тех университетов, которые расположены в Москве:
UPDATE UNIVERSITY
SET RATTING = 200
WHERE CITY = ‘Москва’;
Слайд 8
Команда UPDATE
Команда UPDATE позволяет изменять не только
один, но и множество столбцов.
Пример. Наименование предмета обучения
с идентификатором 43 заменить на название «Высшая математика», количество часов и семестр тоже изменить.
UPDATE SUBJECT
SET SUBJ_NAME = ‘Высшая математика’, HOUR = 36, SEMESTER = 1
WHERE SUBJ_ID= 43;
Слайд 9
Команда UPDATE
В предложении SET можно использовать выражения,
указывающие способ изменения значения поля, в которые могут входить
значения изменяемого и других полей.
Пример. Увеличить стипендию студентов из Воронежа в два раза.
UPDATE STUDENT
SET STIPEND = STIPEND*2
WHERE CITY = ‘Минск’;
Слайд 10
Команда UPDATE
Предложение SET не является предикатом, поэтому в
нем можно указывать значение NULL следующим образом:
UPDATE UNIVERSITY
SET RATTING
= NULL
WHERE CITY = ‘Воронеж’;
Слайд 11
Использование подзапросов в INSERT
Применение оператора INSERT с подзапросом
позволяет загружать сразу несколько строк в одну таблицу, используя
информацию из другой таблицы.
Пример. Переписать в таблицу STUDENT1 данные о студентах из Москвы.
INSERT INTO STUDENT1
SELECT *
FROM STUDENT
WHERE CITY = ‘Москва’;
Слайд 12
Использование подзапросов в INSERT
Пример. Добавить в таблицу STUDENT1
сведения о студентах, которые учатся в Москве.
INSERT INTO STUDENT1
SELECT
*
FROM STUDENT
WHERE UNIV_ID IN (SELECT UNIV_ID
FROM UNIVERSITY
WHERE CITY = ‘Воронеж’);
Слайд 13
Использование подзапросов, основанных на таблицах внешних запросов
Пример. Пусть
таблице SSTUD хранятся сведения о студентах, обучающихся в том
же городе, в котором они живут. Заполнить эту таблицу данными из таблицы STUDENT.
INSERT INTO SSTUD
SELECT *
FROM STUDENT AS A
WHERE CITY IN (SELECT CITY
FROM UNIVERSITY AS B
WHERE A.UNIV_ID=B.UNIV_ID);
Слайд 14
Использование подзапросов, основанных на таблицах внешних запросов
Пример. Выбрать
список студентов, имеющих максимальный балл на каждый день сдачи
экзаменов и переписать их в другую таблицу EXAM
INSERT INTO EXAM
SELECT *
FROM EXAM_MARKS AS A
WHERE MARK = (SELECT MAX (MARK)
FROM EXAM_MARKS AS B
WHERE A.EXAM_DATE = =B.EXAM_DATE);
Слайд 15
Использование подзапросов с DELETE
Пример. Удалить все данные о
студентах, которые учатся в Воронеж
DELETE FROM STUDENT
WHERE
UNIV_ID IN (SELECT UNIV_ID
FROM UNIVERSITY
WHERE CITY = ‘ВОРОНЕЖ’);
Слайд 16
Использование подзапросов с DELETE
В предикате предложения FROM (подзапроса)
нельзя ссылаться на таблицу, из которой осуществляется удаление.
Однако
можно ссылаться на текущую строку из таблицы, являющуюся кандидатом на удаление, то есть на строку, которая в настоящее время проверяется в основном предикате.
Слайд 17
Использование подзапросов с DELETE
Пример. Удалить данные о студентах,
которые учатся в университетах, имеющих рейтинг 401
DELETE
FROM STUDENT
WHERE
EXISTS
(SELECT *
FROM UNIVERSITY
WHERE RATTING = 401
AND STUDENT.UNIV_ID = UNIVERSITY.UNIV_ID);
Второй способ решения этой задачи:
DELETE
FROM STUDENT
WHERE 401 IN
(SELECT RATTING
FROM UNIVERSITY
WHERE STUDENT.UNIV_ID = UNIVERSITY.UNIV_ID);