МАРТИН ГРУБЕР
Понимание SQL
Перевод Лебедева В.Н.
Под редакцией Булычева В.Н.
МОСКВА, 1993
MARTIN GRUBER
Understanding SQL
Команда SELECT
SELECT * | { [ DISTINCT | ALL] <value expression>.,..}
FROM { <table name> [ <alias> ] }.,..
[ WHERE <predicate>]
[ GROUP BY { <column name> | <integer> }.,..]
[ HAVING <predicate>]
[ ORDERBY { <column name> | <integer> }.,..]
[ { UNION [ALL]
SELECT * | { [DISTINCT | ALL] < value expression >.,..}
FROM { <table name> [<alias>]} .,..
[ WHERE <predicate>
[ GROUP BY { <columnname> | <integer> }.,..]
[ HAVING <predicate>]
[ ORDER BY { <columnname> | <integer> }.,..] } ] ...;
Элементы, используемые в команде SELECT
ЭЛЕМЕНТ |
ОПРЕДЕЛЕНИЕ |
<value expression> |
Выражение, которое производит значение. Оно может включать в себя или содержать <column name>. |
<table name> |
Имя или синоним таблицы или представления |
<alias> |
Временный синоним для <table name>, определеный в этой таблице и используемый только в этой команде |
<predicate> |
Условие , которое может быть верным или неверным для каждой строки или комбинации строк таблицы в предложении FROM. |
<column name> |
Имя столбца в таблице. |
<integer> |
Число с десятичной точкой. В этом случае, оно показывает <value expression> в предложении SELECT с помощью идентификации его местоположения в этом предложении. |
Команды UPDATE, INSERT, DELETE
UPDATE
UPDATE <tablename>
SET { | }.,. .< column name> = <value expresslon> [ WHERE <predlcate>
| WHERE CURRENT OF <cursor name> (*только для вложения*) ];
INSERT
INSERT INTO < table name> [(<column name> .,. ]
{ VALUES ( <value expression> .,.. ) } | <query>;
DELETE
DELETE FROM <table name>
[ WHERE <predicate>
| WHERE CURRENT OF <cursor name> (*только для вложения*) ];
ЭЛЕМЕНТ |
ОПРЕДЕЛЕНИЕ |
<cursor name> |
Имя курсора используемого в этой программе. |
<query> |
Допустимая команда SELECT. |
Для других элементов смотри команду SELECT.
Символы Используемые в Синтаксисе Предлжения
СИМВОЛ |
ОБЪЯСНЕНИЕ |
| |
Любой предшествующий знаку (|) символ может быть произвольно заменен на любой следующий за (|). Это — символический способ высказывания "или" ("or"). |
{ } |
Все, что включено в фигурные скобки обрабатывается как модуль с целью оценки |, .,.. или других символов. |
[ ] |
Все,включенное в квадратные скобки является необязательным |
... |
Любое, предшествующее этому, может повторяться любое число раз. |
.,.. |
Любое, предшествующее этому, и в каждом случае отделенное |
запятыми, может повторяться любое число раз.
Команда CREATE TABLE
CREATE TABLE <table name>
( { <column name> <data type> | <size>]
[<colcnstrnt> ...]} .,.. );
[<tabconstrnt>] .,.. );
Элементы, используемые в команде CREATE TABLE
ЭЛЕМЕНТ |
ОПРЕДЕЛЕНИЕ |
<table name> |
Имя таблицы создаваемой этой командой. |
<column name> |
Имя столбца таблицы. |
<data type> |
Тип данных |
Тип данных, который может содержаться в столбце.
INTEGER (ЦЕЛОЕ ЧИСЛО),
CHARACTER (СИМВОЛЬНОЕ),
DECIMAL (ДЕСЯТИЧНОЕ),
NUMERIC (ЧИСЛОВОЕ),
SMALLINT (НАИМЕНЬШЕЕ)
FLOAT (С ПЛАВАЮЩЕЙ ТОЧКОЙ)
REAL (РЕАЛЬНОЕ),
DOUBLE PRECISION (УДВОЕННАЯ ТОЧНОСТЬ С ПЛАВАЮЩЕЙ ТОЧКОЙ),
LONG * (ДЛИННОЕ *),
VARCHAR * (ПЕРЕМЕННОЕ СИМВОЛЬНОЕ *),
DATE * (ДАТА *),
TIME * (ВРЕМЯ *)
(* — указывает на нестандартный для SQL тип данных)
<size> Размер. Его значение зависит от <data type>.
<colconstrnt> Может быть любым из следующих:
NOT NULL (НЕ НУЛЕВОЙ),
UNIQUE (УНИКАЛЬНЫЙ),
PRIMARY KEY (ПЕРВИЧНЫЙ КЛЮЧ),
CHECK(<predicate>) (ПРОВЕРКА предиката),
DEFAULT = <value expression> (ПО УМОЛЧАНИЮ = значимому выражению)
REFERENCES <table name> [(<column name> .,.. )] (ССЫЛКА НА имя таблицы [(имя столбца) ] )
<tabconstrnt> Может быть любым из следующих:
UNIQUE (УНИКАЛЬНЫЙ),
PRIMARY KEY (ПЕРВИЧНЫЙ КЛЮЧ),
CHECK (ПРОВЕРКА предиката )
FOREIGN KEY(<column name>) (ВНЕШНИЙ КЛЮЧ)
REFERENCES <table name> [(<column name> .,.. )] (ССЫЛКА НА имя таблицы [( имя столбца) ].
ПРЕДИСЛОВИЕ
"ПОНИМАНИЕ SQL" - это полный учебник по программированию на Структурированном Языке Запросов, написанный специально для тех, кто будет использовать SQL в процессе работы. Даже если это ваш первый опыт с компьютерами или управлением базами данных, книга "ПОНИМАНИЕ SQL" очень быстро научит вас свободно работать с реальной SQL, использованию простых запросов, а также снабдит вас ясными понятиями об автоматизированном управлении базой данных. Книга даст вам краткое, удобное в чтении введение в реляционные базы данных. Предоставит вам обучающие программы, чтобы, овладевая командами SQL шаг за шагом, помочь вам узнать, как извлекать и обрабатывать информацию, содержащуюся в таблицах данных, т.е.:
* выбирать информацию, с которой вы хотите работать
* добавлять, удалять, и модифицировать информацию в таблице данных
* использовать и-или, верно/неверно и другие условия для обнуления определенной информации
* использовать специальные функции SQL для суммирования ваших данных.
Книга покажет Вам, как эффективно работать с многочислеными таблицами данных, используя улучшеную технику для запроса более чем одной таблицы одновременно, строить комплекс запросов и подзапросов, и использовать представления, чтобы создавать базы данных и работать с базами данных раздельно с многими таблицами.
Научит создавать новые таблицы данных для пользовательских деловых прикладных программ. Вы исследуете принципы эффективного проектирования базы данных, а также техники для обеспечения целостности данных и их защиты.