Изменение таблиц. Добавление строки. Копирование строк из таблицы. Команда UPDATE

Страницы работы

Содержание работы

Тема 6. SQL: изменение таблиц

Команды SELECT предназначена для анализа данных.

Другие команды позволяют их изменять: INSERT, UPDATE, DELETE.

Для изменения таблиц необходимо знать названия их столбцов.

Пример. Отобразить список названий столбцов. (запрос Name-Column)

SELECT *

FROM таблица

WHERE 1=2;

Поскольку условие ложно, будет отображен только заголовок таблицы.

6.2 Команда INSERT

Команда позволяет добавить одну новую строку в таблицу (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.

6.3 Команда UPDATE

Команда изменяет значение в строках таблицы. Следует указать:

- таблицу,

- изменяемые колонки,

- условия отбора изменяемых строк (необязательное).

Если условие (WHERE) не задано, будут изменены все строки в таблице. При изменении значений учитываются ограничения на поля таблицы.

UPDATE таблица

SET колонка1 = знач1 [,колонка2 = знач2…]

[WHERE условие]

В качестве условия может выступать подзапрос.

Задание. Предположим, одно издательство поглотило другое. Поэтому следует изменить информацию об издателях. В таблице title (НАЗВАНИЯ) заменить код издательства ‘Abatis Publisher’ на код, обозначающий ‘Tenterhooks Press’.

Задание. В таблицe АВТОРЫ измените сведения об авторе а08.

6.4 Команда DELETE

Команда может удалить:

- все строки таблицы

- отдельные строки в таблице.

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

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 (команда ПАРАМЕТРЫ, КОНСТРУКТОРЫ ОБЪЕКТОВ).

Похожие материалы

Информация о работе

Предмет:
Информатика
Тип:
Конспекты лекций
Размер файла:
186 Kb
Скачали:
0