Литвек - электронная библиотека >> Мартин Грубер >> Базы данных >> Понимание 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" ["СЭКВЭЛ"]) символизирует собой Структурированный Язык Запросов. Это - язык который дает вам возможностьсоздавать и работать в реляционных базах данных, которые являются наборами связанной информации сохраняемой в таблицах.

Мир баз данных становится все более и более единым, что привело к необходимости создания стандартного языка который мог бы использоваться чтобы функционировать в большом количестве различных видов компьютерных сред. Стандартный язык позволит пользователям знающим один набор команд, использовать их чтобы создавать, отыскивать,