Основные операторы языка
Опишем минимальное подмножество языка SQL, опираясь на его реализацию в стандартном интерфейсе ODBC (Open Database Connectivity — совместимость открытых баз данных) фирмы Microsoft.
Операторы языка SQL можно условно разделить на два подъязыка: язык определения данных (Data Definition Language — DDL) и язык манипулирования данными (Data Manipulation Language — DML). Основные операторы языка SQL представлены в табл. 3.3.
Рассмотрим формат и основные возможности важнейших операторов, за исклю-че1шемспецифическихоператоров,сол1еченнъ1хвтаб\шщесимволом<<%>.Несу1цестве11-ные операнды и элементы синтаксиса (например, принятое во многих системах программирования правило ставить «;» в конце оператора) будем опускать.
1. Оператор создания таблицы имеет формат вида:
CREATE TABLE <имя таблицы>
(<имя столбца> <тип данных> [NOT NULL] [,<имя столбца> <тип данных> [NOT NULL]]... )
Обязательными операндами оператора являются имя создаваемой таблицы и имя хотя бы одного столбца (поля) с указанием типа данных, хранимых в этом столбце.
При создании таблицы для отдельных полей могут указываться некоторые дополнительные правила контроля вводимых в них значений. Конструкция NOT N U LL (не пустое) служит именно таким целям и для столбца таблицы означает, что в этом столбце должно быть определено значение.
Таблица 3.3
Вид |
Название |
Назначение |
DDL |
CREATE TABLE DROP TABLE ALTER TABLE CREATE INDEX DROP INDEX CREATE VIEW DROP VIEW GRAND* REVOKE* |
создание таблицы удаление таблицы изменение структуры таблицы создание индекса удаление индекса создание представления удаление представления назначение привилегий удаление привилегий |
DML |
SELECT UPDATE INSERT DELETE |
выборка записей изменение записей вставка новых записей удаление записей |
В общем случае в разных СУБД могут использоваться различные типы данных (см. подраздел 2.7). В интерфейсе ODBC поддерживаются свои стандартные типы данных, например, символьные (SQLCHAR, SQLVARCHAR, SQL_LONGVARCHAR) и др. При работе с БД некоторой СУБД посредством интерфейса ODBC выполняется автоматическое преобразование стандартных типов данных, поддерживаемых интерфейсом, в типы данных источников и обратно. При необходимости обмен данными между программой и источником данных может вестись без преобразования — во внутреннем формате данных источника.
Пример 1. Создание таблицы.
Пусть требуется создать таблицу goods описания товаров, имеющую поля: type — вид товара, comp_id — идентификатор компании-производителя, name -название товара и price — цена товара. Оператор определения таблицы может иметь следующий вид:
CREATE TABLE goods (type SQL CHAR(8) NOT NULL,
compid SQL_CHAR(10) NOT NULL, name SQL_VARCHAR(20), price SQL_DECIMAL(8,2)).
2. Оператор изменения структуры таблицы имеет формат вида:
ALTER TABLE <имя таблицы>
( {ADD, MODIFY, DROP} <имя столбца> [<тип данных>] [NOT NULL]
[,{ADD, MODIFY, DROP} <имя столбца> [<тип данных>] [NOT NULL]]...)
Изменение структуры таблицы может состоять в добавлении (ADD), изменении (MODIFY) или удалении (DROP) одного или нескольких столбцов таблицы. Правилазаписи оператора ALTER TABLE такиеже, как и оператора CREATE TABLE. При удалении столбца указывать <тип данных> не нужно.
Пример 2. Добавление поля таблицы.
Пусть в созданной ранее таблице goods необходимо добавить поле number, отводимое для хранения величины запаса товара. Для этого следует записать оператор вида:
ALTER TABLE goods (ADD number SQL_INTEGER).
3. Оператор удаления таблицы имеет
формат вида:
DROP TABLE <имя таблицы>
Оператор позволяет удалить имеющуюся таблицу. Например, для удаления таблицы с именем items достаточно записать оператор вида:
DROP TABLE items.