Команды SELECT предназначена для анализа данных.
Другие команды позволяют их изменять: INSERT, UPDATE, DELETE.
Для изменения таблиц необходимо знать названия их столбцов.
Пример. Отобразить список названий столбцов. (запрос Name-Column)
SELECT *
FROM таблица
WHERE 1=2;
Поскольку условие ложно, будет отображен только заголовок таблицы.
Команда позволяет добавить одну новую строку в таблицу (INSERT … VALUES) либо копировать строки одной таблицы в другую (INSERT … SELECT).
Конструкция
INSRT INTO таблица VALUES (знач1, знач2, …)
добавляет новую строку и заносит значения из списка соответственно в каждый столбец строки: знач1 – в первый столбец и т.д. Количество значений в списке должно соответствовать числу столбцов.
Конструкция
INSRT INTO таблица (кол1, кол2,…) VALUES (знач1, знач2, …)
добавляет новую строку и заносит значения в столбцы перечисленные в списке: знач1 – в столбец с именем кол1 и т.д. Количество значений в списке значений должно соответствовать количеству названий столбцов в списке столбцов. Если какой-то столбец таблицы не указан в списке столбцов, в соответствующую колонку добавляемой строки будет помещено значение NULL (либо значение по умолчанию, если оно определено). В том случае, когда наложен запрет на присваивание значения NULL, СУБД выдаст сообщение об ошибке и не добавит новую строку.
Задание. Добавьте в таблицу АВТОРЫ сведения о новом авторе. (а08)
Команда имеет вид:
INSERT INTO таблица [(кол1, кол2,…)] оператор-SELECT
Команда добавляет строки, отобранные оператором SELECT, и заносит значения полей в столбцы, перечисленные в списке. Количество отобранных командой SELECT столбцов должно соответствовать списку столбцов команды INSERT или количеству столбцов в таблице, если список опущен.
Задание. Скопируйте в таблицу НАЗВАНИЯ_АВТОРЫ строку о новом авторе из таблицы АВТОРЫ.
С помощью команды INSERT можно сделать копию таблицы:
INSERT INTO таблица-копия SELECT * FROM таблица;
Таблица-копия должна иметь ту же структуру, что и копируемая таблица.
Примечание. Если применяются транзакции, после команды INSERT следует выполнить команду COMMIT.
Команда изменяет значение в строках таблицы. Следует указать:
- таблицу,
- изменяемые колонки,
- условия отбора изменяемых строк (необязательное).
Если условие (WHERE) не задано, будут изменены все строки в таблице. При изменении значений учитываются ограничения на поля таблицы.
UPDATE таблица
SET колонка1 = знач1 [,колонка2 = знач2…]
[WHERE условие]
В качестве условия может выступать подзапрос.
Задание. Предположим, одно издательство поглотило другое. Поэтому следует изменить информацию об издателях. В таблице title (НАЗВАНИЯ) заменить код издательства ‘Abatis Publisher’ на код, обозначающий ‘Tenterhooks Press’.
Задание. В таблицe АВТОРЫ измените сведения об авторе а08.
Команда может удалить:
- все строки таблицы
- отдельные строки в таблице.
Указывается имя таблицы и необязательное условие отбора строк. Если условие не задано, удаляются все строки.
DELETE FROM таблица [WHERE условие]
Примечание. Если применяются транзакции, после команды DELETE следует выполнить команду COMMIT. Для удаления всех строк в некоторых СУБД (Microsoft SQL Server, Oracle, MySQL, PostgreSQL) применяется команда TRUNCATE TABLE таблица. Эта команда выполняется быстрее, требует меньше ресурсов.
Задание. В таблицe АВТОРЫ удалите сведения об авторе а08.
Задание. Удалите в копии таблицы title_authors сведения о книгах, выпущенных издательствами p02, p03.
Чтобы создать таблицу требуется указать:
- название таблицы;
- названия столбцов;
- тип данных для столбцов;
- ограничения.
CREATE TABLE таблица
(
кол1 тип1 [ограничение1],…
[, ограничения_таблица1]
[, ограничения_таблица2]
);
Ограничения имеют вид:
NOT NULL
DEFAULT
PRIMARY KEY
FOREIGN KEY (вторичный ключ)
UNIQUE (запрет на повторяющиеся значения)
CHECK (ограничения на значения)
Различают ограничения столбца и ограничения таблицы. Можно задать несколько ограничений для столбца либо таблицы.
Команда имеет вид:
CREATE TABLE title_authors
(title_id CHAR(3),
au_id CHAR(3),
au_order SMALLINT,
royalty_share DECIMAL(5,2));
Последнее поле имеет тип числовой, размер поля – действительное, точность – 5, шкала – 2.
После создания таблицы ее можно заполнить командой INSERT.
Примечание. Microsoft SQL Server не поддерживает тип данных DATE. Следует применять тип данных DATETIME.
Примечание. В Access нужно установить синтаксис SQL Server ANSI92, чтобы воспринимался тип DECIMAL (команда ПАРАМЕТРЫ, КОНСТРУКТОРЫ ОБЪЕКТОВ).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.