Кулаков Константин Михайлович
Проектирование клиент-серверных ИС
14.02.12
Знакомство с языком sql.
SQL (Structured Query Language) – «язык структурированных запросов» - универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных БД. Язык SQL был разработан в 1970-х годах в корпорации IBM.
(Реляционная – табличная)
Управление различными реляционными БД осуществляют программы, называемые СУБД – системы управления базами данных.
Структурированный язык запросов реализуется в следующих формах:
Интерактивный SQL позволяет конечному пользователю в интерактивном режиме выполнять SQL – операторы. Все СУБД представляют инструментальные средства для работы с базой данных в интерактивном режиме. Например,ы SQL*Plus или IBConsole.
Статический SQL – может реализовываться как встроенный SQL или модульный SQL. Операторы статического SQL определены уже в момент компиляции программы.
Динамический SQL – позволяет формировать операторы SQL во время выполнения программы.
Встроенный SQL – позволяет включать операторы SQL в код программы на другом языке программирования (например, C++).
Язык SQL определяет:
Операторы языка (команды).
Типы данных.
Набор встроенных функций.
Операторы языка SQL делятся на группы:
- Язык определения данных DLL (Data definition language); Он включает операторы, управляющие объектами БД. К последним относятся:
Таблицы
Индексы
Представления
- Язык манипулирования данными DML (Data manipulation language); Язык DML определяет следующие операторы:
Select – извлечение данных из одной или нескольких таблиц
Insert – добавление строк в таблицу
Delete – удаление строк из таблицы
Update – изменение значений полей в таблице
Таблица – это структура данных, состоящая из не отсортированного набора строк, каждая из которых определенное число столбцов.
Реляционная БД – это набор связанных между собой таблиц.
Для создания постоянной или временной таблицы используется оператор CREATE TABLE, простая форма имеет вид: ключевые слова CREATE TABLE, за которыми следует имя таблицы и в круглых скобках описания колонок таблицы, разделённые запятыми.
Каждая колонка определяется именем, типом данных и ограничением, таким как NOT NULL (не пустое), UNIQUE (уникальное).
Таблица подразделений достаточно проста:
CREATE TABLE DEPARTMENT
(
DEPT_NO SMALLINT NOT NULL UNIQUE,
DEPARTMENT VARCHAR(25) NOT NULL
);
Регистр – не важен.
Точка с запятой в конце оператора не является обязательной.
Типы данных Interbase.
Тип данных служит:
- Для определения множества допустимых значений, которые может содержать колонка (или переменная).
- Для определения видов операций, которые можно выполнять над данными.
- Для определения необходимого объема памяти на диске для каждого элемента данных.
16.02.12
Interbase поддерживает следующие типы данных:
{Целые INTEGER и SMALLINT
С плавающей точкой FLOAT и DOUBLE PRECISION
Десятичные с фиксированной точкой NUMERIC и DECIMAL
Даты и времени DATE, TIME и TIMESTAMP
Символьные …}
BLOB – тип данных с динамически изменяемым размером для сохранения больших данных, таких как графика, тексты, оцифрованные звуки. (Точности - нет).
BOLEAN – представляет истинностные значения TRUE, FALSE, UNKNOWN (Точность – True, False, Unknown).
CHAR (n) – символ фиксированной длины или строка текста. Альтернативное ключевое слово: CHARACTER (Точность – от 1 до 32767 байтов).
DATE – сохраняет дату в 32-битовом длинном слове. (Точность - 1 января 100г. – 29 февраля 32768 г.)
DECIMAL (precision, scale) – Число с десятичной точкой, имеющей после точки scale разрядов. Пример: DECIMAL(10,3) содержит число точно в следующем формате: ppppppp.sss (Точность: Precision = от 1 до 18; scale = от 0 до 18).
DOUBLE PRECISION – IEEE двойной точности. 15 цифр (Точность от 2.225*10^-308 до 1.797*10^308).
FLOAT – IEEE одинарной точности. 7 цифр. (Точность: 1.175*10^-38 до 3.402*10^38).
INTEGER – знаковое длинное (двойное слово). (Точность: -2.147.483.648 до 2.147.483.647).
NUMERIC (precision, scale) = DECIMAL (precision, scale).
SMALLINT – Знаковое короткое (слово) (Точность: от -32768 до 32767).
TIME – Время дня в единицах 0.0001 секунды после полуночи (Точность: от 0:00 до 23:59:9999).
TIMESTAMP – Время + дата.
VARCHAR(n) – строка текста переменной длины. Альтернативные ключевые слова: CHAR VARYING, CHARACTER VATYING.
Первичные и внешние ключи.
Первичный ключ – это колонка (набор колонок), значения которой однозначно идентифицирует запись в таблице. На практике, каждая таблица должна иметь первичный ключ. В таблице сотрудников поле «код сотрудников» должно быть первичным ключом, т.к. однозначно идентифицирует сотрудника, а поле «код подразделения» должно быть первичным ключом для таблицы подразделений.
Внешний ключ – это колонка (или набор колонок) в одной таблице, значения которой должны совпадать со значением первичного ключа в другой таблице.
Ограничения первичного или внешнего ключа накладывается на таблицу с помощью PRIMARY KEY и FOREIGN KEY ключевых слов в операторе CREATE TABLE.
Пример создания таблицы вместе с ограничениями первичного и внешнего ключей.
Пример 1:
CREATE TABLE EMPLOYEE
(
EMP_NO SMALLINT NOT NULL,
LAST_NAME VARCHAR(25) NOT NULL,
FIRST_NAME VARCHAR(20) NOT NULL,
DEPT_NO SMALLINT NOT NULL,
PRIMARY KEY (EMP_NO),
FOREIGN KEY (DEPT_NO) REFERENCES DEPARTMENT (DEPT_NO)
);
Пример 2:
Create table Department
(
ID_DEPARTMENT INTEGER NOT NULL PRIMARY KEY,
DEPARTMENT VARCHAR(100) NOT NULL UNIQUE
)
Пример 3:
CREAT TABLE EMPLOYEE
(
ID_EMPLOYEE INTEGER NOT NULL PRIMARY KEY,
SYRNAME VARCHAR(100).
IDDEPARTMENT INTEGER NOT NULL REFERENCES DEPARTMENT (ID_DEPARTMENT)
)
21.02.12