Назначение языка
Язык реляционных баз данных SQL
1. Назначение языка
Одним из языков, появившихся в результате разработки реляционной модели данных, является язык Structured Query Language (SQL), который в настоящее время получил очень широкое распространение и фактически превратился в стандартный язык реляционных баз данных. В идеале, любой язык работы с базами данных должен:
1) предоставлять пользователю следующие возможности:
· создавать базы данных и таблицы с полным описанием их структуры;
· выполнять основные операции манипулирования данными, такие как вставка, модификация и удаления данных из таблиц;
· выполнять простые и сложные запросы, осуществляющие преобразование необработанных данных в необходимую информацию.
2) должен решать все указанные выше задачи при минимальных усилиях со стороны пользователя, а структура и синтаксис его команд должны быть достаточно просты и доступны для изучения.
3) должен отвечать некоторому признанному стандарту, что позволит использовать один и тот же синтаксис и структуру команд при переходе от одной СУБД к другой.
Рекомендуемые материалы
Язык SQL удовлетворяет практически всем этим требованиям. Он имеет два основных компонента:
· язык определения данных (DDL), предназначенный для определения структур базы данных;
· язык манипуляции данными (DML), предназначенный для выборки и обновления данных.
Язык SQL предназначен для работы с таблицами. Он включает только команды определения и манипулирования данными, – в нем отсутствуют какие-либо команды управления ходом вычислений. Другими словами, в этом языке нет команд IF ... THEN ... ELSE, FOR ... TO, DO ... WHILE и любых других, предназначенных для управления ходом вычислительного процесса. Подобные задачи должны решаться с помощью языков программирования или управления заданиями либо интерактивно, в результате действий, выполняемых самим пользователем. По причине подобной незавершенности в плане организации вычислительного процесса язык SQL может использоваться двумя способами. Первый предусматривает интерактивную работу, заключающуюся во вводе пользователем с терминала отдельных SQL-операторов. Второй состоит во внедрении SQL-операторов в программы на процедурных языках.
Стандартный язык SQL поддерживается комитетом стандартов ANSI, и соответственно называется ANSI SQL. Некоторые разработчики СУБД расширяют возможности SQL, вводя в язык дополнительные операторы и конструкции. Отдельные же расширения носят собственные имена, например Transact-SQL в MS SQL.
Для практического изучения операторов будем использовать базу данных для решения следующих задач:
· взаимодействие с поставщиками;
· работа с каталогом продуктов;
· работа со списком клиентов;
· ввод заказов клиентов.
Таблицы базы данных
1. Таблица Поставщиков – Vendors.
В таблице хранятся данные о поставщиках и продуктах которые продаются поставщиком.
Описание таблицы.
Атрибут (столбец) | Описание | Тип поля | Размер |
vend_id (нет) | Идентификатор поставщика | Текстовый | 10 |
vend_name | Имя поставщика | Текстовый | 50 |
vend_address | Адрес поставщика | Текстовый | 50 |
vend_city | Город поставщика | Текстовый | 50 |
vend_state | Штат поставщика | Текстовый | 5 |
vend_zip | ZIP- код поставщика | Текстовый | 10 |
vend_country | Страна поставщика | Текстовый | 50 |
Первичный ключ - vend_id
vend_id | vend_name | vend_address | vend_city | vend_state | vend_zip | vend_ country |
BRE02 | Bear Emporium | 500 Park Street | Anytown | OH | 44333 | USA |
BRS01 | Bears R Us | 123 Main Street | Bear Town | MI | 44444 | USA |
DLL01 | Doll House Inc. | 555 High Street | Dollsville | CA | 99999 | USA |
FNG01 | Fun and Games | 42 Galaxy Road | London | N16 6PS | England | |
FRB01 | Furball Inc. | 1000 5th Avenue | New York | NY | 11111 | USA |
JTS01 | Jouets et ours | 1 Rue Amusem | Paris | 45678 | France |
2. Таблица каталога продуктов – Products
В таблице содержатся продукты, поставляемые соответствующим поставщиком.
Описание таблицы
Атрибут (столбец) | Описание | Тип поля | Размер |
prod_id (нет) | Идентификатор продукта | Текстовый | 10 |
vend_id | Идентификатор поставщика | Текстовый | 10 |
prod_name | Название продукта | Текстовый | 255 |
prod_price | Цена продукта | Денежный | Авто |
prod_desc | Описание продукта | Текстовый | 255 |
Первичный ключ – prod_id (для обеспечения целостности ссылочных данных)
Внешний ключ - vend_id
prod_id | vend_id | prod_name | prod_ price | prod_desc |
BNBG01 | DLL01 | Fish bean bag toy | 3,49р. | Fish bean bag toy, complete with bean bag worms with which to feed it |
BNBG02 | DLL01 | Bird bean bag toy | 3,49р. | Bird bean bag toy, eggs are not included |
BNBG03 | DLL01 | Rabbit bean bag toy | 3,49р. | Rabbit bean bag toy, comes with bean bag carrots |
BR01 | BRS01 | 8 inch teddy bear | 5,99р. | 8 inch teddy bear, comes with cap and jacket |
BR02 | BRS01 | 12 inch teddy bear | 8,99р | 12 inch teddy bear, comes with cap and jacket |
BR03 | BRS01 | 18 inch teddy bear | 11,99р. | 18 inch teddy bear, comes with cap and jacket |
RGAN01 | DLL01 | Raggedy Ann | 4,99р | 18 inch Raggedy Ann doll |
RYL01 | FNG01 | King doll | 9,49р. | 12 inch king doll with royal garments and crown |
RYL02 | FNG01 | Queen doll | 9,49р. | 12 inch queen doll with royal garments and crown |
3. Таблица клиентов – Customers
В таблице содержится информация о клиентах
Описание таблицы
Атрибут (столбец) | Описание | Тип поля | Размер |
cust_id (нет) | Идентификатор клиента | Текстовый | 10 |
cust_name | Имя клиента | Текстовый | 50 |
cust_address | Адрес клиента | Текстовый | 50 |
cust_city | Город клиента | Текстовый | 50 |
cust_state | Штат клиента | Текстовый | 5 |
cust_ZIP | ZIP-код клиента | Текстовый | 10 |
cust_country | Страна клиента | Текстовый | 50 |
cust_contact | Контактное имя клиента | Текстовый | 50 |
cust_email | Электронная почта клиента | Текстовый | 255 |
Первичный ключ - cust_id
cust_id | cust_ name | cust_ address | cust_city | cust_ state | cust_ZIP | cust_ country | cust_ cjntact | cust_email |
1000000001 | Village Toys | 200 Maple Lane | Detroit | MI | 44444 | USA | John Smith | sales@villagetoys.com |
1000000002 | Kids Place | 333 South Lake Drive | Columbus | OH | 43333 | USA | Michelle Green | |
1000000003 | Fun4All | 1 Sunny Place | Muncie | IN | 42222 | USA | Jim Jones | jjones@fun4all.com |
1000000004 | Fun4All | 829 Riverside Drive | Phoenix | AZ | 88888 | USA | Denise L. Stephens | dstephens@fun4all.com |
1000000005 | The Toy Store | 4545 53rd Street | Chicago | IL | 54545 | USA | Kim Howard |
4. Таблица заказов клиента – Orders
В таблице содержатся заказы клиентов
Описание таблицы
Атрибут (столбец) | Описание | Тип поля | Размер |
order_num (нет) | Идентификатор номера заказа | Числовой | Длинное |
order_date | Дата заказа | Дата/время | |
cust_id | Идентификатор клиента | Текстовый | 10 |
Первичный ключ - order_num
Внешний ключ - cust_id
order_num | order_date | cust_id |
20005 | 01.05.2004 | 1000000001 |
20006 | 12.01.2004 | 1000000003 |
20007 | 30.01.2004 | 1000000004 |
20008 | 03.02.2004 | 1000000005 |
20009 | 08.02.2004 | 1000000001 |
5. Таблица предметов заказа – OrdersItems
В таблице содержатся предметы каждого заказа
Описание таблицы
Атрибут (столбец) | Описание | Тип поля | Размер |
order_num | Номера заказа | Числовой | Длинное |
order_item | Номер предмета заказа | Числовой | Длинное |
prod_id (да) | Идентификатор продукта | Текстовый | 10 |
quantity | Количество предметов | Числовой | Длинное |
item_price | Цена предмета | Денежный |
Первичный ключ - order_num + order_item
Внешний ключ - order_num и prod_id
order_num | order_item | prod_id | quantity | item_price |
20005 | 1 | BR01 | 100 | 5,49р. |
20005 | 2 | BR03 | 100 | 10,99р. |
20006 | 1 | BR01 | 20 | 5,99р. |
20006 | 2 | BR02 | 10 | 8,99р. |
20006 | 3 | BR03 | 10 | 11,99р. |
20007 | 1 | BR03 | 50 | 11,49р. |
20007 | 2 | BNBG01 | 100 | 2,99р. |
20007 | 3 | BNBG02 | 100 | 2,99р. |
20007 | 4 | BNBG03 | 100 | 2,99р. |
20007 | 5 | RGAN01 | 50 | 4,49р. |
20008 | 1 | RGAN01 | 5 | 4,99р. |
20008 | 2 | BR03 | 5 | 11,99р. |
20008 | 3 | BNBG01 | 10 | 3,49р. |
20008 | 4 | BNBG02 | 10 | 3,49р. |
20008 | 5 | BNBG03 | 10 | 3,49р. |
20009 | 1 | BNBG01 | 250 | 2,49р. |
20009 | 2 | BNBG02 | 250 | 2,49р. |
20009 | 3 | BNBG03 | 250 | 2,49р. |
Схема базы данных
Customers | Orders | OrderItems | Products | Vendors | ||||
cust_id | |
| order_num | | prod_id | | vend_id | |
cust_name | order_date | order_item | vend_id | vend_name | ||||
cust_address | cust_id | prod_id | prod_name | vend_address | ||||
cust_city | quantity | prod_price | vend_city | |||||
cust_state | item_price | prod_desc | vend_state | |||||
cust_ZIP | vend_zip | |||||||
cust_country | vend_country | |||||||
cust_cjntact | ||||||||
cust_email |
Работа с SQL в Access:
Ещё посмотрите лекцию "Предисловие и оглавление" по этой теме.
1) Выбрать «Создание/Конструктор запросов»
2) Закрыть окно «Добавление таблицы»
3) Выбрать «Конструктор/SQL»
4) Ввести оператор SQL
5) Выбрать «Выполнить»