
- •Лабораторная работа №5
- •Основные директивы sql-запросов: create table - создать таблицу.
- •Primary key – объявление первичного ключа
- •Alter table - изменить таблицу.
- •Drop table - удалить таблицу.
- •Insert вставить
- •Delete - удалить
- •Select - выбрать.
- •Пример1
- •Пример3
- •Операция join
- •Создание запросов sql
- •Редактирование запросов sql
- •Порядок выполнения работы
Лабораторная работа №5
Тема: Создание запросов SQL.
Теоретический материал:
Основные директивы sql-запросов: create table - создать таблицу.
Общий синтаксис директивы CREATE TABLE выглядит так:
CREATE TABLE Имя_Таблицы ( Имя_Столбца1 Тип_Данных [(Размер_Данных)] [ , Имя_Столбца2 Тип_Данных [(Размер_Данных)] ... , Имя_Столбца-nn Тип_Данных [(Размер_Данных)] ] )
CREATE TABLE - это зарезервированные слова SQL-языка, которые и определяют саму директиву.
Имя_Таблицы - это то имя таблицы, которое вы задаете. Следует помнить, что не все сервера баз данных и драйвера воспринимают русскоязычные имена таблиц, поэтому задавайте имена таблиц на английском языке.
Имя_Столбца - это имена необходимых вам столбцов таблицы, которые вы задаете. Для того, чтобы создать таблицу, вам необходимо определить для нее, как минимум, хотя бы один столбец. Как правило, для одной таблицы можно задать не менее 128 столбцов.
Тип_Данных - для каждого столбца таблицы в обязательном порядке необходимо задать тип данных, которые будут храниться в этом столбце. Для некоторых типов данных в обязательном порядке необходимо задать Размер_Данных. Например, если вы определяете для столбца тип данных Char(строка символов), то для этого столбца вы должны задать Размер_Данных, или, говоря по другому, задать, какое количество символов будет храниться в каждой записи этого столбца.
Для любой базы данных имена таблиц должны быть уникальными, т.е. в одной базе данных не может быть двух и более таблиц с одинаковыми именами. Для каждой таблицы имена столбцов также должны быть уникальными: в таблице не может быть двух и более столбцов с одинаковыми именами. Разные таблицы могут содержать столбцы, совпадающие по именам.
В качестве имен таблиц, столбцов и других объектов баз данных нельзя использовать зарезервированные слова SQL-языка. Например, в качестве имен нельзя использовать слова Table, Column, Insert, Delete и так далее.
Пример
CREATE TABLE Tabl1 (Col1 Integer , Col2 Char(16) , Col3 Char(32))
Primary key – объявление первичного ключа
Для создания ключа таблицы, состоящего из одного или нескольких полей, используйте зарезервированные слова PRIMARY KEY. Все значения ключа таблицы должны быть уникальными и отличаться от значения NULL. Кроме того, в таблице может быть только один ключ.
CREATE TABLE Имя_Таблицы (
Имя_Столбца1 Тип_Данных [(Размер_Данных)] NOT NULL PRIMARY KEY,
Имя_Столбца2 Тип_Данных [(Размер_Данных)],… )
Alter table - изменить таблицу.
Директива ALTER TABLE в сочетании с фразами ADD COLUMN (добавить столбец) и DROP COLUMN (удалить столбец) позволяет создавать в уже существующей таблице новые столбцы и/или удалять из таблицы уже существующие столбцы.
Общий синтаксис директивы ALTER TABLE для добавления новых столбцов в таблицу выглядит так:
ALTER TABLE Имя_Таблицы ADD COLUMN Имя_Столбца Тип_Данных [(Размер_Данных)] [ , ADD COLUMN Имя_Столбца Тип_Данных [(Размер_Данных)] ... , ADD COLUMN Имя_Столбца Тип_Данных [(Размер_Данных)] ]
Общий синтаксис директивы ALTER TABLE для удаления существующих столбцов из таблицы выглядит так:
ALTER TABLE Имя_Таблицы DROP COLUMN Имя_Столбца [ , DROP COLUMN Имя_Столбца ... , DROP COLUMN Имя_Столбца ]
В одной директиве ALTER TABLE можно одновременно удалять существующие столбцы и добавлять новые. Тогда общий синтаксис будет выглядеть так:
ALTER TABLE Имя_Таблицы ADD COLUMN Имя_Столбца Тип_Данных [(Размер_Данных)] [ , ADD COLUMN Имя_Столбца Тип_Данных [(Размер_Данных)] ... , ADD COLUMN Имя_Столбца Тип_Данных [(Размер_Данных)] ] [ , DROP COLUMN Имя_Столбца ... , DROP COLUMN Имя_Столбца ]
ALTER TABLE - это зарезервированные слова SQL-языка, которые и определяют саму директиву.
Имя_Таблицы - имя той таблицы, которая будет изменяться
ADD COLUMN и DROP COLUMN - это зарезервированные слова SQL-языка, определяющие действия, которые будут выполнены с указанными столбцами: ADD COLUMN - создаст столбец; DROP COLUMN - удалит столбец.
Имя_Столбца - это имена стобцов, с которыми будут выполняться действия (создание, удаление).
Следует отметить, что фразы ADD COLUMN и DROP COLUMN могут чередоваться в директиве ALTER TABLE в любом порядке. Создание и удаление столбцов выполняется в том порядке, как вы их перечислите в директиве.
Пример
Для начала создадим таблицу Tabl1:
CREATE TABLE Tabl1 (Col1 Integer , Col2 Char(16) , Col3 Char(32))
После исполнение SQL-запроса таблица Tabl1 будет иметь вид:
-
Col1
Col2
Col3
Теперь создадим в этой таблице новый столбец.
ALTER TABLE Tabl1 ADD COLUMN Tovar Char(32)
Получится следующее:
-
Col1
Col2
Col3
Tovar
Добавим в эту же таблицу еще несколько столбцов:
ALTER TABLE Tabl1 ADD COLUMN Cena INTEGER , ADD COLUMN Kol_vo INTEGER , ADD COLUMN Summa INTEGER
Таблица будет выглядеть так:
-
Col1
Col2
Col3
Tovar
Cena
Kol_vo
Summa
Добавляя столбцы следует помнить о максимальном количестве столбцов, допустимом для одной таблицы.
Аналогичным образом пишутся и запросы для удаления существующих столбцов из таблицы. Удалим один столбец:
ALTER TABLE Tabl1 DROP COLUMN Col1
Получим:
-
Col2
Col3
Tovar
Cena
Kol_vo
Summa
Удалим еще несколько столбцов таблицы Tabl1:
ALTER TABLE Tabl1 DROP COLUMN Col2 , DROP COLUMN Col3
Теперь таблица содержит совсем другие столбцы, по сравнению с тем, какие имелись в ней после первоначального создания.
-
Tovar
Cena
Kol_vo
Summa
Удаляя столбцы из таблицы, следует иметь в виду, что удаляются все данные, имеющиеся в удаляемом столбце. И если не принять специальных мер, то восстановить потом удаленные даннные будет достаточно сложно. И еще один момент. Нельзя удалить из таблицы все столбцы. Хотя бы один столбец в таблице должен оставаться. Если вы попробуете выполнить следующий SQL-запрос, то получите сообщение об ошибке именно по той причине, что в этом запросе предпринимается попытка удалить все столбцы таблицы Tabl1:
ALTER TABLE Tabl1 DROP COLUMN Tovar , DROP COLUMN Zena , DROP COLUMN Kol_vo , DROP COLUMN Summa
А теперь запрос, выполняющий одновременно и удаление столбцов из таблицы, и добавление новых столбцов:
ALTER TABLE Tabl1 ADD COLUMN Cena_Prih ITEGER , DROP COLUMN Cena , DROP COLUMN Kol_vo , ADD COLUMN Cena_Rash ITEGER , ADD COLUMN Cena_Rash ITEGER , ADD COLUMN Prim Char(128) , DROP COLUMN Summa
В результате всех операций удаления и добавления столбцов Tabl1 примет следущий вид:
-
Tovar
Cena_Prih
Cena_Rash
Prim
Попробуйте самостоятельно добавить или удалить несколько столбцов в таблицу...