Мартин Грубер - Понимание SQL
Обзор книги Мартин Грубер - Понимание SQL
МАРТИН ГРУБЕР
Понимание 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 для суммирования ваших данных.
Книга покажет Вам, как эффективно работать с многочислеными таблицами данных, используя улучшеную технику для запроса более чем одной таблицы одновременно, строить комплекс запросов и подзапросов, и использовать представления, чтобы создавать базы данных и работать с базами данных раздельно с многими таблицами.
Научит создавать новые таблицы данных для пользовательских деловых прикладных программ. Вы исследуете принципы эффективного проектирования базы данных, а также техники для обеспечения целостности данных и их защиты.
Вы узнаете, как использовать SQL с другими языками в специальной главе SQL для программистов.
"ПОНИМАНИЕ SQL" - необходима и пригодна для любой реализации Структурированного Языка Запроса. Книга включает и краткий справочный стандарт SQL и руководство к общим нестандартным особенностям SQL.
Об АвтореМартин Грубер - свободный писатель, учитель и консультант из Сан-Франциско.
В дополнении к написанию и редактированию книг, руководств пользователей и документации, он работает в широком спектре интересов, связанных с компьютерами и компьютерными базами данных.
Глава 1. ВВЕДЕНИЕ В РЕЛЯЦИОННУЮ БАЗУ ДАННЫХ
SQL (ОБЫЧНО ПРОИЗНОСИМАЯ КАК "SEEQUEL" ["СЭКВЭЛ"]) символизирует собой Структурированный Язык Запросов. Это - язык который дает вам возможностьсоздавать и работать в реляционных базах данных, которые являются наборами связанной информации сохраняемой в таблицах.
Мир баз данных становится все более и более единым, что привело к необходимости создания стандартного языка который мог бы использоваться чтобы функционировать в большом количестве различных видов компьютерных сред. Стандартный язык позволит пользователям знающим один набор команд, использовать их чтобы создавать, отыскивать, изменять, и передавать информацию независимо от того работают ли они на персональном компьютере, сетевой рабочей станции, или на универсальной ЭВМ.
В нашем все более и более взаимосвязанном компьютерном мире, пользователь снабженый таким языком, имеет огромное преимущество в использовании и обобщении информации из ряда источников с помощью большого колличества способов.
Элегантность и независимость от специфики компьютерных технологий, а также его поддержка лидерами промышленности в области технологии реляционных баз данных, сделало SQL, и вероятно в течение обозримого будущего оставит его, основным стандартным языком. По этой причине, любой кто хочет работать с базами данных 90-х годов должен знать SQL.
Стандарт SQL определяется ANSI (Американским Национальным Институтом Стандартов) и в данное время также принимается ISO (МЕЖДУНАРОДНОЙ ОРГАНИЗАЦИЕЙ ПО СТАНДАРТИЗАЦИИ). Однако, большинство коммерческих программ баз данных расширяют SQL без уведомления ANSI, добавляя разные другие особенности в этот язык, которые, как они считают, будут весьма полезны. Иногда они несколько нарушают стандарт языка, хотя хорошие идеи имеют тенденцию развиваться и вскоре становиться стандартами "рынка" сами по себе в силу полезности своих качеств. В этой книге, мы будем, в основном, следовать стандарту ANSI, но одновременно иногда будет показывать и некоторые наиболее общие отклонения от его стандарта.