SELECT
Эта команда, имеющая множество опций и необязательных параметров, используется для построения запросов к реляционным базам данных. С ее помощью можно конструировать запросы любой сложности - от самых общих до очень специальных и от самых простых до невероятно сложных. Команда SELECT будет подробно обсуждаться в ходе уроков 7-16.
Запрос - это требование на получение информации из базы данных.
Язык управления данными (DCL)
Команды управления данными в SQL позволяют осуществлять контроль над возможностью доступа к данным внутри базы данных. Команды DCL обычно используются для создания объектов, относящихся к управлению доступом пользователей к базе данных, а также для назначения пользователям подходящих уровней привилегий доступа. Вот некоторые из команд управления данными:
ALTER PASSWORD
GRANT
REVOKE
CREATE SYNONYM
Эти команды часто используются вместе с другими командами и поэтому будут появляться во многих последующих главах книги.
Команды администрирования данных
Команды администрирования данных дают пользователю возможность выполнять аудит и анализ операций внутри базы данных. Эти команды могут также помочь при анализе производительности системы данных в целом. Вот две команды администрирования данных общего вида:
START AUDIT
STOP AUDIT
He путайте администрирование данных с администрированием всей базы данных. Администрирование базы данных - это осуществление общего управления базой данных, предполагающее возможность использования команд любого уровня.
Команды управления транзакциями
В дополнение ко всем уже рассмотренным категориям команд есть еще команды, позволяющие пользователю управлять транзакциями базы данных.
• Команда COMMIT используется для того, чтобы сохранить транзакции.
• Команда ROLLBACK используется для того, чтобы отменить транзакции.
• Команда SAVEPOINT создает точки внутри групп транзакций, к которым отсылает команда ROLLBACK.
• Команда SET TRANSACTION позволяет назначить транзакции имя.
Команды управления транзакциями будут подробно обсуждаться в ходе урока 6. "Управление транзакциями".
Описание базы данных, используемой в данной книге
Прежде чем продолжить наше с вами путешествие в мир SQL, давайте определим те таблицы и данные, которые мы будем использовать в инструкциях всех следующих уроков. Следующие два раздела представляют собой обзор всех таблиц этой конкретной базы данных, их структуры, связей и содержащихся в них данных.
Схема таблиц, используемых в книге
На рис. 1.4 показаны отношения между таблицами, используемыми в этой книге для примеров, вопросов для проверки и упражнений. Каждая из таблиц имеет скос имя, точно так же свои имена назначены в таблицах каждому из полей. Линии, связывающие таблицы, указывают на связи таблиц посредством общего поля, которое в большинстве случаев называется ключевым полем (последние обсуждаются в ходе урока 3, "Управление объектами базы данных").
Стандарты назначения имен таблицам
Стандарты назначения имен таблицам, как и любые стандарты в бизнесе вообще, очень важны с точки зрения осуществления контроля. Проанализировав таблицы и данные из предыдущих разделов, вы, наверное, заметили, что все имена таблиц имели суффикс _TBL. Наличие такого суффикса в именах таблиц принято за стандарт. В этом случае _TBL просто говорит о том, что соответствующий объект является таблицей - ведь в базе данных может содержаться и множество других объектов. Например, вы увидите, что суффикс _IDX используется для индексов таблиц. Стандарты назначения имен вводятся почти исключительно в целях упрощения общей организации и Оказываются очень полезными в деле администрирования любой реляционной базы данных. Вместе с тем, использование суффиксов при назначении имен объектам базы дйнных не является строго обязательным.
Желательно не только следовать предлагаемым конкретной реализацией SQL правилам назначения имен, но и правилам, принятым внутри соответствующей области деятельности, чтобы имена носили описательный характер и соответствовали тем данным, на которые эти имена указывают.
Рис. 1.4. Связи между таблицами, используемыми в этой книге
Обзор данных
В этом разделе приводится обзор данных, содержащихся в таблицах, используемых в книге. Потратьте несколько минут на то, чтобы просмотреть эти данные и разобраться в связях как между таблицами, так и между непосредственно данными. Обратите внимание на то, что некоторые поля не требуют обязательного наличия в них данных - такая возможность должна быть задана при создании таблицы в базе данных.
EMPLOYEE_TBL
EMP_ID
LAST NAM
FIRST NAM
ADDRESS
CITY
ST
ZIP
PHONE
311549902 442346889 213764555 313782439 220984332 443679012
STEPHENS PLEW GLASS GLASS WALLACE SPURGEON
TINA LINDA BRANDON JACOB MARIAH TIFFANY
D RR 3 BOX 17A С 3301 BEACON S 1710 MAIN ST 3789 RIVER BLVD 7789 KEYSTONE 5 GEORGE COURT
GREENWOOD INDIANAPOLIS WHITELAND INDIANAPOLIS INDIANAPOLIS INDIANAPOLIS
IN IN IN IN IN IN
47890 46224 47885 45734 46741 46234
3178784465 3172978990 3178984321 3175457676 3173325986 3175679007
EMPLOYEE PAY TBL
EMP_ID
POSITION
DATE HIRE
PAY RATE
DATE_LAST
SALARY
BONUS
311549902 442346889 213764555 313782439 220984332 443679012
MARKETING TEAM LEADER SALES MANAGER SALESMAN SHIPPER SHIPPER
23-MAY-89 17-JUN-90 14-AUG-94 28-JUN-97 22-JUL-96 14- JAN-91
14.75
11 15
Ol-MAY-99 Ol-JON-99 Ol-AUG-99
Ol-JUL-99 Ol-JAN-99
40000
30000 20000
2000 1000
CUSTOMERJTBL
ORDERS TBL
CUST ]
CD CUST_NAME
ADDRESS
CUST_CITY
ST
ZIP CUST_PHONE CUST FAX
232 109
345 090 12 432 333
21
43
287 288 590
610 560 221
LESLIE GLEASON NANCY BUNKER
ANGELA DOBKO WENDY WOLF MARYS GIFT SHOP SCOTTYS MARKET JASONS AND DALLAS GOODIES MORGAN CANDIES AND TREATS SCHYLERS NOVELTIES GAVINS PLACE HOLLYS GAMEARAM HEALTHERS FEATHERS AND THINGS RAGANS HOBBIES ANDYS CANDIES RYANS STUFF
798 HARDAWAY DR APT A 4556 WATERWAY RR3 BOX 76 3345 GATEWAY DR 435MAIN ST RR2 BOX 17 LAFAYETTE SQ MALL
5657 W TENTH ST 17 MAPLE ST
9880 ROCKVILLE RD 567 US 31 4090 N SHADELAND AVE
451 GREEN RR 1 BOX 34 2337 S SHELBY ST
INDIANAPOLIS BROAD RIPPLE
LEBANON INDIANAPOLIS DANVILLE BROWNSBURG INDIANAPOLIS
INDIANAPOLIS LEBANON
INDIANAPOLIS WHITELAND INDIANAPOLIS
PLAINFIELD NASHVILLE INDIANAPOLIS
IN IN
IN IN IL IN IN
IN IN
IN IN IN
IN IN IN
47856 3175457690 46950 3174262323
49967 7658970090 46224 3172913421 47978 3178567221 3178523434 45687 3178529835 3178529836 47856 3172978886 3172978887
46950 3172714398 49967 3174346758
46224 3172719991 3172719992 47978 3178879023 47856 3175456768
46950 3178393441 3178399090 49967 8123239871 46224 3175634402
ORD NUM
CUST_ID
PROD_ID
QTY
ORD DATE
56A901 56A917 32A132 16C17 18D778 23E934
232
12 43 090 287 432
11235 87 222 222 90 13
1 100 25 2 10 20
22-OCT-99 30-SEP-99 10-OCT-99 17-OCT-99 17-OCT-99 15-OCT-99
PRODUCTS_TBL
PROD_ID
PROD_DESC
COST
11235
222
13
90
15
9
6
87
119
1234
2345
КОСТЮМ ВЕДЬМЫ
ПЛАСТИКОВЫЕ ТЫКВЫ
ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ
ФОНАРИ
КОСТЮМЫ В АССОРТИМЕНТЕ
СЛАДКАЯ КУКУРУЗА
ТЫКВЕННЫЕ КОНФЕТЫ
ПЛАСТИКОВЫЕ ПАУКИ
МАСКИ В АССОРТИМЕНТЕ
ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ
ПОЛОЧКА ИЗ ДУБА
29.99
7.75
1.10
14.50
10.00
1.35
1.45
1.05
4.95
5.95
59.99
Из чего состоят таблицы
Существование баз данных обусловлено необходимостью хранения массивов ценных данных и управления ими. Вы уже ознакомились с данными, которые предполагается использовать для объяснения основных понятий SQL в этой книге. В следующих разделах мы разберемся в тех элементах, из которых состоят таблицы. Не забывайте, что таблицы являются наиболее часто используемой и самой простой формой хранения данных в реляционной базе данных.