Скачать презентацию Базы данных Лекция 06 Основы SQL Скачать презентацию Базы данных Лекция 06 Основы SQL

c359a48b344072eab6438c46a00b66e0.ppt

  • Количество слайдов: 20

Базы данных Лекция № 06 Основы SQL Базы данных Лекция № 06 Основы SQL

1. Связи между таблицами БД Разновидности связи между таблицами БД: • Один–ко–многим – одной 1. Связи между таблицами БД Разновидности связи между таблицами БД: • Один–ко–многим – одной записи родительской таблицы может соответствовать несколько записей дочерней • Один–к–одному – одной записи в родительской таблице соответствует одна запись в дочерней • Многие–ко–многим – применяется в следующих случаях: – Одной записи в родительской таблице соответствует более одной записи в дочерней – Одной записи в дочерней таблице соответствует более одной записи в родительской 2

2. Стандарт и реализация языка SQL Язык SQL (Structured Query Language) – стандартный язык 2. Стандарт и реализация языка SQL Язык SQL (Structured Query Language) – стандартный язык реляционных БД Стандарт на язык SQL был выпущен: • ANSI в 1986 г. • ISO в 1987 г. Год Название 1986 SQL-86 1989 SQL-89 1992 SQL-92 1999 SQL: 1999 2003 SQL: 2003 2006 SQL: 2006 2008 SQL: 2008 Иное Изменения название Первый вариант стандарта, принятый институтом ANSI и одобренный ISO в SQL-87 1987 году. FIPS 127 -1 Немного доработанный вариант предыдущего стандарта. SQL 2, Значительные изменения (ISO 9075); уровень Entry Level стандарта SQL-92 FIPS 127 -2 был принят как стандарт FIPS 127 -2. Триггеры, базовые процедурные расширения, нескалярные типы данных и SQL 3 некоторые объектно-ориентированные возможности. Введены расширения для работы с XML-данными, оконные функции (применяемые для работы с OLAP-базами данных), генераторы последовательностей и основанные на них типы данных. Функциональность работы с XML-данными значительно расширена. Появилась возможность совместно использовать в запросах SQL и XQuery. 3 Улучшены возможности оконных функций, устранены некоторые неоднозначности стандарта SQL: 2003

3. Типы команд SQL Язык SQL может использоваться для: • выполнения запросов к данным 3. Типы команд SQL Язык SQL может использоваться для: • выполнения запросов к данным • построения прикладных программ Основные категории команд языка SQL: • DDL – язык определения данных (CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, ALTER INDEX, DROP INDEX) • DML – язык манипулирования данными (INSERT, UPDATE, DELETE) • DQL – язык запросов (SELECT) • DCL – язык управления данными (GRANT, REVOKE) • Команды администрирования данных • Команды управления транзакциями (COMMIT, ROLLBACK, 4 SAVEPOINT, SET TRANSACTION)

3. Типы команд SQL Фазы выполнения SQL-оператора SELECT A, B, C FROM X, Y 3. Типы команд SQL Фазы выполнения SQL-оператора SELECT A, B, C FROM X, Y WHERE A<500 AND C='ASF' parse Синтаксический разбор оператора validate Проверка привилегий пользователя, проверка действительности имен системных каталогов, таблиц и названий полей access plan Генерация плана доступа к ресурсам. План доступа – это двоичное представление выполнимого кода по отношению к данным, сохраняемым в БД Оптимизация плана доступа. Для увеличения скорости поиска optimize данных могут применяться индексы. Оптимизация использования взаимосвязанных таблиц execute Выполнение оператора 5

4. Типы данных SQL Типизированные данные – данные одного из предопределённых SQL-языком типов NULL 4. Типы данных SQL Типизированные данные – данные одного из предопределённых SQL-языком типов NULL – неопределенное значение в поле Арифметические операции operation (+, – и т. д. ): • A operation NULL = NULL • NULL operation A = NULL • NULL operation NULL = NULL Операций сравнения comparison (=, ≠, >, < и т. д. ): • A comparison NULL = unknown • NULL comparison A = unknown 6 • NULL comparison NULL = unknown

4. Типы данных SQL Категории типов данных: • Точные числовые типы: – INTEGER 1826545 4. Типы данных SQL Категории типов данных: • Точные числовые типы: – INTEGER 1826545 – SMALLINT 876 – NUMERIC(p, s) 125. 4 – DECIMAL(p, s) 26. 36 • Приближенные числовые типы: – REAL 123 – DOUBLE PRECISION 23. 12 – FLOAT(p) 123. 12 E 1 7

4. Типы данных SQL Категории типов данных: • Типы символьных строк – CHARACTER(x) [CHAR] 4. Типы данных SQL Категории типов данных: • Типы символьных строк – CHARACTER(x) [CHAR] – CHARACTER VARYING(x) [VARCHAR] ØОперации: o Конкатенации (||) o Выделения подстроки (SUBSTRING) o Регистр строки (UPPER / LOWER) o определения длины (CHARACTER_LENGTH) o определения позиции (POSITION) – CHARACTER LARGE OBJECT(z) [CLOB] 8

4. Типы данных SQL Категории типов данных: • Типы даты и времени – DATE 4. Типы данных SQL Категории типов данных: • Типы даты и времени – DATE ’yyyy-mm-dd’ Пример: ’ 1949 -04 -08’ = 8 апреля 1949 г – TIME ’hh: mm-ss: f. . . f’ ’ 16: 33 -20: 333’ = 16 ч 33 мин 20 сек и 0, 333 сек – TIMESTAMP ’yyyy-mm-dd hh: mm-ss: f. . . f’ ’ 1949 -04 -08 16: 33 -20: 333’ = 16 ч 33 мин 20 сек и 0, 333 сек 8 апреля 1949 г • Типы временных интервалов (TIME WITH TIME ZONE) 9

4. Типы данных SQL Категории типов данных: • Булевский тип (BOOLEAN) 10 4. Типы данных SQL Категории типов данных: • Булевский тип (BOOLEAN) 10

4. Типы данных SQL Категории типов данных: • Тип массив type ARRAY [m] Integer 4. Типы данных SQL Категории типов данных: • Тип массив type ARRAY [m] Integer ARRAY [10] • • Типы битовых строк (bit strings) Типы коллекций (collection types) Анонимные строчные типы (anonymous row types) Типы, определяемые пользователем (user-defined types) • Ссылочные типы (reference types) 11

4. Типы данных SQL Домен – объект схемы БД: • Именованный • Долговременно хранимый 4. Типы данных SQL Домен – объект схемы БД: • Именованный • Долговременно хранимый Создание домена: CREATE DOMAIN domain_name [AS] data_type [ default_definition ] [ domain_constraint_definition_list ] CREATE DOMAIN EMP_NO AS INTEGER CHECK (VALUE BETWEEN 1 AND 10000); CREATE DOMAIN SALARY AS NUMERIC (10, 2) DEFAULT 10000. 00 CHECK (VALUE BETWEEN 10000. 00 AND 20000000. 00) CONSTRAINT SAL_NOT_NULL CHECK (VALUE IS NOT NULL); 12

4. Типы данных SQL Изменить характеристики домена: 1. 2. 3. 4. ALTER DOMAIN SALARY 4. Типы данных SQL Изменить характеристики домена: 1. 2. 3. 4. ALTER DOMAIN SALARY SET DEFAULT 11000. 00; DROP DEFAULT; ADD CHECK (VALUE <> 15000. 00); DROP CONSTRAINT SAL_NOT_NULL; Отменить ранее созданное определение домена: DROP DOMAIN domain_name {RESTRICT | CASCADES} Явные преобразования типов или доменов: CAST({scalar-expression|NULL} AS {data_type|domain_name}) 13

5. Применение языка SQL Подключение к СУБД: CONNECT TO My. DB 1 USER User 5. Применение языка SQL Подключение к СУБД: CONNECT TO My. DB 1 USER User 1/Password 1 Создание таблицы в БД: CREATE [ [ { GLOBAL | LOCAL } ] TEMPORARY] TABLE имя_таблицы ( { column | [table_constraint] }. , . . [ ON COMMIT { DELETE | PRESERVE} ROWS ] ); column определяется как: имя_поля {domain | datatype [size]} [column_constraint: ] [ DEFAULT default_value ] [ COLLATE collate_value ] 14

5. Применение языка SQL Ограничения для столбца: • NOT NULL • UNIQUE • PRIMARY 5. Применение языка SQL Ограничения для столбца: • NOT NULL • UNIQUE • PRIMARY KEY • CHECK • REFERENCES table Ограничения для таблицы: • CHECK (condition) • FOREIGN KEY (fields_list) 15

4. Типы данных SQL Изменение структуры таблицы: ALTER TABLE Table. Name 1 ADD | 4. Типы данных SQL Изменение структуры таблицы: ALTER TABLE Table. Name 1 ADD | ALTER [COLUMN] Field. Name 1 Field. Type [(n. Field. Width [, n. Precision])] [NULL | NOT NULL] [CHECK l. Expression 1 [ERROR c. Message. Text 1]] [DEFAULT e. Expression 1] [PRIMARY KEY | UNIQUE] [REFERENCES Table. Name 2 [TAG Tag. Name 1]] Пример: 1. ALTER TABLE table_name ADD column_name datatype 2. ALTER TABLE table_name DROP COLUMN column_name 3. ALTER TABLE table_name ALTER COLUMN column_name datatype 16

4. Типы данных SQL Удаление таблицы: DROP TABLE [IF EXISTS] tbl_name [, tbl_name, . 4. Типы данных SQL Удаление таблицы: DROP TABLE [IF EXISTS] tbl_name [, tbl_name, . . . ] [RESTRICT | CASCADE] Пример: DROP TABLE ‘Users’ 17

5. Применение языка SQL SELECT – позволяет формировать запрос к БД: SELECT [DISTINCT] {{function_agregate 5. Применение языка SQL SELECT – позволяет формировать запрос к БД: SELECT [DISTINCT] {{function_agregate | expr [AS new_field_name]}. , : | specification. * | * [INTO list_variable] FROM {{ имя_таблицы [AS] [table_alias] [(field. , : )]} | {subquery [AS] subquery_alas [(field. , : )]} | union_table | constructor_of_table_value | {TABLE имя_таблицы [AS] alias [(field. , : )]} }. , : [WHERE condition] [GROUP BY {{ имя_таблицы | alias }. field}. , : {COLLATE name}] [HAVING condition] [{ UNION | INTERSECT | EXCEPT } [ALL] [CORRESPONDING [BY (field. , : )]] SELECT_operator | {TABLE имя_таблицы}|constructor_of_table_value [ORDER BY] {{field_result [ASC|DESC]}. , : } |{{ integer [ASC|DESC]}. , : } ; 18

4. Типы данных SQL 19 4. Типы данных SQL 19

Спасибо за внимание 20 Спасибо за внимание 20