Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
22.03.12 Проектирование клиент-серверных ИС.doc
Скачиваний:
2
Добавлен:
23.08.2019
Размер:
118.27 Кб
Скачать

Кулаков Константин Михайлович

Проектирование клиент-серверных ИС

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 определяет:

  1. Операторы языка (команды).

  2. Типы данных.

  3. Набор встроенных функций.

Операторы языка SQL делятся на группы:

- Язык определения данных DLL (Data definition language); Он включает операторы, управляющие объектами БД. К последним относятся:

  1. Таблицы

  2. Индексы

  3. Представления

- Язык манипулирования данными DML (Data manipulation language); Язык DML определяет следующие операторы:

  1. Select – извлечение данных из одной или нескольких таблиц

  2. Insert – добавление строк в таблицу

  3. Delete – удаление строк из таблицы

  4. 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