- •Мова sql(Structured Query Language) – як універсальний засіб створення баз даних, маніпулювання данними та отримамання потрібної інформації.
- •Умова відбору (ключове слово where)
- •Зрівняння.
- •Ліве з’єднання (left join)
- •Сортування результату (фраза order by)
- •Групування результатів (фраза group by). Агрегатні функціії.
- •Використання фрази group by
- •Використання фрази having
- •Підзапити
- •Ключові слова exists I not exists
- •Модифікація даних (оператор update)
- •Видалення даних з бази(оператор delete).
- •Створенння таблиць (оператор create table).
- •Check (Naukov_stupin in(‘не має’, ‘кадидат’, ‘доктор’))
- •Використання транзакцій.
- •Управління доступом даних
- •Insert – право втавляти в таблицю нові рядки;
- •Надання привілеїв іншим користувачам (оператор grant)
- •Insert - користувач з цим привілеєм може виконувати оператор insert для цієї таблиці;
- •Відміна наданих привілеїв (оператор revoke)
Створенння таблиць (оператор create table).
Після створення загальної структури бази даних можна приступати до створення таблиць, які представляють відношення, що входять до складу проекту бази даних. Для цього використовується оператор CREATE TABLE (спрощений варіант), який має формат:
CREATE TABLE table_name
(column_name data_type [NULL | NOT NULL][,…])
В результаті виконання цього оператора буде створена таблиця з іменем table_name, яка матиме один або більше стовпчиків з іменами що задаються параметрами column_name і матимуть тип, що задається параметрами data_type.
Ключове слово NULL визначає, що дане поле може містити значення NULL. Ключове слово NOT NULL визначає, що дане поле не може містити значення NULL. За змовчуванням, стандарт ISO визначає, що діє ключове слово NULL.
Стовпчики первинних ключів завжди визначаються з ключовим словом NOT NULL.
Приклад використання оператора CREATE TABLE. Оператор
CREATE TABLE Osoba (
kod INTEGER NOT NULL,
priz VARCHAR(50) NOT NULL)
створить таблицю Osoba, в якій є 2 стовпчики – kod i priz. Поле kod має цілочисельний тип, а поле priz має тип VARCHAR, тобто символьний і яке містить не більше 50 символів. Оператор, який створить таблицю table_a, якою ми користувались на попередніх лекціях, матиме вид
CREATE TABLE table_a(
kod INTEGER NOT NULL,
suma DECIMAL(8,2) NOT NULL,
data DATE )
В стандарті ISO наведено декілька варіантів визначення цього оператора. Базовий формат цього оператора має вид:
CREATE TABLE table_name
{(column_name data_type [NOT NULL] [UNIQUE]
[DEFAULT default_option] [CHECK (search_condition)] [,…]}
[PRIMARY KEY (list_of_columns),]
{[UNIQUE (list_of_columns)] [,…]}
{FOREIGN KEY (list_of_foreign_key_columns)
REFERENCES parent_table_name [list_of_candidate_key_columns)],
[MATCH {partial | FULL}]
[ON UPDATE referential_action]
[ON DELETE referential_action] [,…]}
{[CHECK (searh_condition)] [,…])}
Дана версія оператора CREATE TABLE містить не тільки визначення данних (параметри table_name, column_name, data_type і специфікатор NOT NULL, які ми розглядали у спрощеному варіанті) але й засоби визначення цілісності бази даних, ключів і таке інше.
Необовязкова фраза DEFAULT задає значення - default_option, яке буде вставлятись оператором INSERT для невизначеного значення даного стовпчика
(default_option може бути літералом).
Необовязкова фраза UNIQUE задає унікальність значення цього поля, тобто не повинно існувати двох і більше рядків в таблиці з одноковим значення цього поля. Для стовпчиків, які вказані у фразі UNIQUE повинен застосовуватись режим NOT NULL для їх можливих значень. Система заблокує виконання любого оператора INSERT аба UPDATE який створює рядок з дубльованими значеннями ствпчиків, які вказані у фразі UNIQUE.
Необов’язкова фраза CHECK (search_condition). Кожний стовпчик має власний домен, тобто набір допустимих значень. Наприклад, для визначення наукового ступеня співробітника достатньо всього 3 значення – не має, кадидат і доктор. Тому домен для поля Naukov_stupin можна визначити як набір з 3-х значень- ‘не має’, ‘кадидат’, ‘доктор’. Фраза
