Professional Documents
Culture Documents
Lecture 3
Lecture 3
Комерсиални СУБД
- декларативен езиков интерфейс от
високо ниво – задава се видът на
резултата от операция върху БД
- СУБД –оптимизация и стратегия за
изпълнение
SQL
Структуриран език за заявки
Основен език за работа с РБД
Описан в стандарт SQL2
Първи вариант – SEQUEL, в System R
Декларативен релационен език,
унифициран
SQL
Характеристики
1. Интегриран – езици за дефиниране и
обработка на данни
2. Вграждане – в езици за програмиране
(C, C++, Java, …)
3. Стандартизация – SQL2 (SQL’92),
SQL3 (разширение с обектно-ориентирани
понятия)
SQL
Основни понятия:
1.Таблица - Релация
Ред –n-торка
Колона – атрибут
2. Среда (environment) – съдържа
единствена БД
3. База данни – множеството на всички
схеми, дефинирани в една среда
4. Схема – таблици, потребителски
представи (views), права (privileges) на
даден потребител
SQL
Основни понятия:
5. Каталог (information schema) –
именувано множество на схемите в една
среда
6. Пространство на базата (dbspace)-
логическо заделяне на място за БД, част
от общото пространство, съставено е от
определен брой сегменти. Има
определено ниво на заключване
Създаване на схема, таблица, среда
Команди:
CREATE / DROP – създаване /
унищожаване
1. На БД
CREATE DATABASE database_name
DROP DATABASE database_name
2. На пространство
ACQUIRE [PUBLIC PRIVATE] DBSPACE
NAMED dbspace_name [option [, option..]]
Option: LOCK = {DBSPACE PAGE ROW}
DROP DBSPACE dbspace_name
Създаване на схема, таблица, среда
Команди:
3. На схема
- Създадена е БД и пространство за
таблиците
- Потребителят има права за създаване на
таблици и схеми
- Базата се прави активна
USE database_name
или START database_name
Създаване на схема, таблица, среда
Команди:
Премахване
DROP SCHEMA database schema_name
{CASCADE RESTRICT}
-числови (numeric)
-символни низове (character string)
-битови низове (bit string)
-дата/час (date, time)
Типове данни
Numeric:
- цели числа с различна големина – INT,
SMALLINT
-реални числа с различна точност –
FLOAT, REAL, DOUBLE PRECISION
CHARACTER STRING:
-с фиксирана дължина – CHAR(n)
-с променлива дължина – CHAR
VARYING(n)
Типове данни
BIT STRING:
-с фиксирана дължина – BIT(n)
-с променлива дължина – BIT
VARYING(n)
DATE/ TIME
-DATE (yyyy-mm-dd)
-TIME hh:mm:ss
-TIMESTAMP – комбинация от двата
-INTERVAL –число, което може да се
добавя или изважда от трите
CREATE TABLE
NOT NULL
UNIQUE – кандидат-ключ (компонентите
на съставни кандидат-ключове, които не
са главни ключове)
PRIMARY KEY
FOREIGN KEY
CREATE TABLE table_name(
column_name datatype [null_specifier],
PRIMARY KEY (column_name [,…])
FOREIGN KEY (column_name)
REFERENCES table_name
(column_name))
Примери:
Основни, базови
Виртуални (CREATE VIEW)
SELECT-FROM-WHERE
Условия за съединение
- DNUM=DNUMBER
- MGRSSN=SSN
Основни заявки
DEPARTMENT.DNUMBER=EMPLOYEE.DN
UMBER
Основни заявки
Ниво на рекурсия = 1
SQL разрешава произволно, но известно
ниво на рекурсия
Основни заявки
SELECT SALARY
FROM EMPLOYEE
Повторения
UNION
(резултатът не съдържа дублирани
редове)
Съвместимост по обединение!
SELECT COUNT(*)
FROM EMPLOYEE, DEPARTMENT
WHERE DNO=DNUMBER AND
DNAME=‘R1’
Агрегатни функции
Сортиране:
ORDER BY
ASC – подразбира се, DESC - явно
Q20: SELECT DNAME, LNAME, FNAME,
PNAME
FROM DEPARTMENT, EMPLOYEE,
WORKS_ON, PROJECT
WHERE DNUMBER=DNO AND SSN=ESSN
AND PNO=PNUMBER
ORDER BY DNAME, LNAME
Заявка SELECT на SQL
Изпълнение:
1. WHERE
2. GROUP BY
3. HAVING
Избягване на влагане и сортировка!
Обновяване на базата
1. INSERT
2. DELETE
3. UPDATE
Вмъкване на данни в таблица
UPDATE <Table_Name>
SET <Column_Name> = Value
UPDATE <Table_Name>
SET <Column_Name> = Value
WHERE <Bool>
UPDATE EMPLOYEE
SET SALARY=SALARY*1.1
WHERE DNO IN (SELECT DNUMBER
FROM DEPARTMENT
WHERE DNAME=‘R1’)
Допълнителни възможности на SQL
1. Задаване на потребителски
представи –
CREATE VIEW EMPLOYEE1 AS
SELECT FNAME, LNAME, ADDRESS
FROM EMPLOYEE
Допълнителни възможности на SQL