Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratornaya_rabota_5.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
198.14 Кб
Скачать

Лабораторная работа №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

 

 

 

 

Попробуйте самостоятельно добавить или удалить несколько столбцов в таблицу...

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]