Создание таблицы с помощью запросов
Вплоть до этого места мы выполняли команды по извлечению таблиц и данных из таблиц, полагая, что сами таблицы были созданы кем-то до нас. Это, действительно, наиболее реальная ситуация, когда небольшое количество людей создают таблицы, которые затем используются другими людьми.
Тем не менее особая область SQL, называемая DDL (Язык Определения Данных), специально работает с созданием объектов данных.
Таблицы создаются командой create table. Эта команда создает пустую таблицу — таблицу без строк. Команда create table в основном определяет имя таблицы в виде описания набора имен столбцов, указанных в определенном порядке. Она также определяет типы данных и размеры столбцов. Каждая таблица должна иметь по крайней мере один столбец.
Синтаксис команды create table:1)
create table ClientInfo
(
FirstName varchar(20),
LastName varchar(20),
Address varchar(20),
Phone varchar(15)
);
После выполнения этого запроса в окне Messages появляется сообщение:
The command(s) completed successfully.
Перезапустите Query Analyzer. В базе данных NorthwindCS появилась созданная нами таблица (рис. 4.16):
Рис. 4.16.
Созданная таблица находится в базе NorthwindCS
Итак, мы создали таблицу, состоящую из четырех полей, типа varchar, причем для трех полей было зарезервировано 20 байт, а для одного — 15. Значение полей на заполнены — на это указывает величина Null.
Вы можете удалить созданную таблицу непосредственно в интерфейсе Query Analyzer, щелкнув правой кнопкой и выбрав Delete.
Команды изменения языка DML
Значения могут быть помещены и удалены из полей, тремя командами языка DML (Язык Манипулирования Данными):
- insert (вставить);
- update (изменить);
- delete (удалить).
Команда insert имеет свои особенности:
- При указании значений конкретных полей вместо использования каких-либо значений можно применять ключевое слово DEFAULT.
- Вставка пустой строки приводит к добавлению пробела ' ', а не значения NULL.
- Строки и даты задаются в апострофах.
- Не задавайте данные для столбца, имеющего свойство IDENTITY.
- Можно задать NULL явно, можно задать DEFAULT.
Примеры:
insert into ClientInfo
(FirstName, LastName, Address, Phone)
values('Petr','Petrov','Chehova 13','1234567');
Однократное выполнение этого запроса (нажатие клавиши F5 один раз) приводит к добавлению одной записи. Добавляем еще несколько записей, изменяя значения value:
insert into ClientInfo
(FirstName, LastName, Address, Phone)
values('Ivan',Ivanov,'Naberejnaya 13','1234568');
insert into ClientInfo
(FirstName, LastName, Address, Phone)
values(null,'Sidorov','Naberejnaya 25','1234569');
Извлечем все записи созданной таблицы (рис. 4.17):
select * from ClientInfo;
Рис. 4.17.
Все записи таблицы ClientInfo
Убедимся в том, что третья запись поля FirstName действительно содержит неопределенное значение null (а не строку NULL), c помощью следующего запроса (рис. 4.18):
select * from ClientInfo where FirstName is null;
Рис. 4.18.
Таблица ClientInfo действительно содержит запись со значением поля First Name "NULL"
Команда update позволяет изменять заданные значения записей:
update ClientInfo set FirstName = 'Andrey' where FirstName = 'Petr';
В этом случае в первой записи поля FirstName значение Petr изменится на Andrey (рис. 4.19):
Рис. 4.19.
Изменение одной записи
Если не указывать значение, которое необходимо изменить, команда update затронет все записи (рис. 4.20).
update ClientInfo set FirstName = 'Andrey';
Рис. 4.20.
Изменение всех записей
Команда delete позволяет изменять заданные значения записей:
delete from ClientInfo where LastName like 'Petrov';
Результатом этого запроса будет удаление первой записи из таблицы ClientInfo.
Этот запрос удаляет все записи из таблицы, но не удаляет саму таблицу (рис. 4.21):
Рис. 4.21.
Все записи удалены, но сама таблица осталась!
Запросы с командами insert, update и delete могут содержать в себе все прочие конструкции языка SQL.