SQL Fundamentals

Содержание

Слайд 2

Обзор – День #1

Организационные вопросы
Введение в SQL
Извлечение информации из таблиц
Формирование вывода запроса
Агрегатные

Обзор – День #1 Организационные вопросы Введение в SQL Извлечение информации из
функции
Соединение таблиц

SQL Fundamentals, Performance Lab

Слайд 3

Обзор – День #2

Вложенные запросы
Соотнесенные запросы
Изменение содержимого таблиц
Создание таблиц
Поддержка целостности данных

SQL Fundamentals,

Обзор – День #2 Вложенные запросы Соотнесенные запросы Изменение содержимого таблиц Создание
Performance Lab

Слайд 4

Введение

Организационные вопросы
Что такое реляционная БД
Стандарт ANSI и Oracle SQL
Интерактивный и встраиваемый SQL
Способы

Введение Организационные вопросы Что такое реляционная БД Стандарт ANSI и Oracle SQL
доступа к БД
Знакомство с Toad

SQL Fundamentals, Performance Lab

Слайд 5

Доступ к удаленным станциям

Нажать: windows+R
Ввести: mstsc

Вести компьютер:
rdp.pflb.ru:56920

Login\pass: UserX\UserSQLX, где X это номер

Доступ к удаленным станциям Нажать: windows+R Ввести: mstsc Вести компьютер: rdp.pflb.ru:56920 Login\pass:
от 1 до 15

В Toad for Oracle выбрать learn/learn

SQL Fundamentals, Performance Lab

Слайд 6

Классификации СУБД по модели данных

Иерархические

Сетевые

Реляционные

Объектно-ориентированные

SQL Fundamentals, Performance Lab

Классификации СУБД по модели данных Иерархические Сетевые Реляционные Объектно-ориентированные SQL Fundamentals, Performance Lab

Слайд 7

Реляционная БД

SQL Fundamentals, Performance Lab

Реляционная БД SQL Fundamentals, Performance Lab

Слайд 8

Стандарт ANSI и Oracle SQL

SQL Fundamentals, Performance Lab

Стандарт ANSI и Oracle SQL SQL Fundamentals, Performance Lab

Слайд 9

Интерактивный и встраиваемый SQL

Интерактивный SQL
Непосредственно в БД используется;
После ввода команды, она сразу

Интерактивный и встраиваемый SQL Интерактивный SQL Непосредственно в БД используется; После ввода
выполнится;
Встраиваемый SQL
Команды помещённых внутри программ на других языках программирования;

SQL Fundamentals, Performance Lab

Слайд 10

Подразделы SQL

DDL (Язык Определения Данных)
DML (Язык Манипулирования Данными)
DCD (Язык Управления Данными)

SQL

Подразделы SQL DDL (Язык Определения Данных) DML (Язык Манипулирования Данными) DCD (Язык
Fundamentals, Performance Lab

Слайд 11

Способы доступа к БД

Способ доступа
Файл серверные
Клиент серверные
Встраиваемые

SQL Fundamentals, Performance Lab

Способы доступа к БД Способ доступа Файл серверные Клиент серверные Встраиваемые SQL Fundamentals, Performance Lab

Слайд 12

Знакомство с Toad

Поддерживает: Oracle Database, Microsoft SQL Server, Adaptive Server Enterprise, DB2,

Знакомство с Toad Поддерживает: Oracle Database, Microsoft SQL Server, Adaptive Server Enterprise,
MySQL , Hadoop, MongoDB, SimpleDB, Apache Cassandra и Windows Azure
TOAD содержит три основных компонента: Database Browser, SQL Editor и PL/SQL Procedure Editor и SQL Modeller.
Официально работает на 32-битных Windows-платформах: Windows 95, 98, NT, 2000, XP и Vista.
https://www.toadworld.com/

SQL Fundamentals, Performance Lab

Слайд 13

Извлечение информации

Оператор SELECT
Ключевое слово DISTINCT
Ключевое слово WHERE
Столбцы упорядочены, строки – нет
Ключевое слово

Извлечение информации Оператор SELECT Ключевое слово DISTINCT Ключевое слово WHERE Столбцы упорядочены,
ORDER BY
Что такое предикат
Условия в предикатах: сравнения, логические (=, >, <. =>, <=, <>, and, or, not)
Ключевые слова IN, BETWEEN, LIKE
NULL-значения
Псевдостолбцы ROWID, LEVEL, ROWNUM

SQL Fundamentals, Performance Lab

Слайд 14

Задание #1

Написать запрос, выводящий...
дату заказа, номер заказа и его стоимость для всех

Задание #1 Написать запрос, выводящий... дату заказа, номер заказа и его стоимость
заказов (всех строк таблицы Orders)
всех продавцов с номером, большим 1005 (таблица Sales)
все заказы, оформленные в промежутке с ‘10/03/1990’ по ‘10/04/1990’ (таблица Orders)
в алфавитном порядке всех покупателей из города ‘SanJose’ (таблица Clients)
заказы с номером 3000, 3004 или 3005 (таблица Orders)
всех покупателей, проживающих в городах, не начинающихся с R, чей рейтинг больше 130 (таблица Clients)

SQL Fundamentals, Performance Lab

Слайд 15

Формирование вывода

Именование столбцов AS
Использование констант
Использование скалярных функций
Функции LENGTH, UPPER, LOWER, INITCAP,

Формирование вывода Именование столбцов AS Использование констант Использование скалярных функций Функции LENGTH,
CONCAT, SUBSTR, INSTR
Функции ROUND, TRUNC, REMAINDER, MOD
Функции NVL, NULLIF, DECODE, CASE
Таблица DUAL
Вложенные функции

SQL Fundamentals, Performance Lab

Слайд 16

Задание #2

Написать запрос, выводящий…
стоимости (amt) всех заказов, округленные до целого
имя и город

Задание #2 Написать запрос, выводящий… стоимости (amt) всех заказов, округленные до целого
проживания продавцов, причем если город не задан (т.е. null), выводить «не задан» вместо null
один столбец со строками вида "Рейтинг покупателя cname равен rating (высокий, средний или низкий)" для всех записей таблицы Clients, при этом имя покупателя должно быть выведено большими буквами. В конце строки в скобках указать «высокий» - если рейтинг выше 200, «средний» - если равен 200 и «низкий» – во всех остальных случаях.

SQL Fundamentals, Performance Lab

Слайд 17

Агрегатные функции

Функции COUNT, SUM, AVG, MAX, MIN
Различия *, DISTINCT, ALL в агрегатных

Агрегатные функции Функции COUNT, SUM, AVG, MAX, MIN Различия *, DISTINCT, ALL
функциях
Вложенные агрегатные функции
Ключевое слово GROUP BY
Ключевое слово HAVING

SQL Fundamentals, Performance Lab

Слайд 18

GROUP BY

В конструкции GROUP BY можно указать сколько угодно выражений, в том

GROUP BY В конструкции GROUP BY можно указать сколько угодно выражений, в
числе – названия столбцов;
Обычно GROUP BY используется для указания столбцов, значения в которых должны быть одинаковыми для того, чтобы соответствующие строки вошли в группу;
Если в теле запроса есть GROUP BY, то в селект-листе этого запроса допускается использовать только:
Выражения, использованные в GROUP BY;
Агрегатные функции;
Константы;
Выражения из GROUP BY необязательно подставлять в селект-лист.

SQL Fundamentals, Performance Lab

Слайд 19

Порядок обработки операторов

Логический порядок

Синтаксический порядок

SQL Fundamentals, Performance Lab

FROM
WHERE
GROUP BY
HAVING
SELECT
ORDER BY
SELECT [DISTINCT |

Порядок обработки операторов Логический порядок Синтаксический порядок SQL Fundamentals, Performance Lab FROM
ALL]{*
| [<выражение для столбца> [[AS] <псевдоним>]] [,…]}
FROM <имя таблицы> [[AS] <псевдоним>] [,…]
[WHERE <предикат>]
[[GROUP BY <список столбцов>]
[HAVING <условие на агрегатные значения>] ]
[ORDER BY <список столбцов>]

Слайд 20

ORDER BY совместно с GROUP BY

Если в теле запроса есть GROUP BY,

ORDER BY совместно с GROUP BY Если в теле запроса есть GROUP
то в конструкции ORDER BY можно указывать только:
Выражения, указанные в GROUP BY;
Выражения, указанные в селект-листе (можно использовать порядковый номер столбца, его имя или алиас);
Агрегатные функции (независимо от того, присутствуют ли они где-то еще в теле запроса);
Если в теле запроса есть GROUP BY, то в конструкции ORDER BY нельзя указывать:
Столбцы таблицы, которые не присутствуют в GROUP BY.

SQL Fundamentals, Performance Lab

Слайд 21

Задание #3

Написать запрос, выводящий…
общее количество сделанных заказов
среднюю длину имени покупателя
дату и максимальную

Задание #3 Написать запрос, выводящий… общее количество сделанных заказов среднюю длину имени
стоимость заказа за эту дату, отсортированные по убыванию максимальной стоимости заказа
названия городов, в которых суммарный рейтинг покупателей превышает 100

SQL Fundamentals, Performance Lab

Слайд 22

Соединение таблиц

Разница между INNER и OUTER JOIN
Разница между LEFT OUTER, RIGHT OUTER

Соединение таблиц Разница между INNER и OUTER JOIN Разница между LEFT OUTER,
и FULL OUTER JOIN
NATURAL JOIN
Ключевое слово USING
Ключевое слово CROSS JOIN
Соединение более двух таблиц
«Самосоединение» таблиц

SQL Fundamentals, Performance Lab

Слайд 23

Различный виды операции JOIN

SQL Fundamentals, Performance Lab

Различный виды операции JOIN SQL Fundamentals, Performance Lab

Слайд 24

Задание #4

Написать запрос, выводящий…
имена продавцов и соответствующие им имена клиентов, в том

Задание #4 Написать запрос, выводящий… имена продавцов и соответствующие им имена клиентов,
числе для продавцов без клиентов
имена и номера продавцов, имеющих клиентов в Лондоне (London), Москве (Moscow) или Сочи (Sochi)
строки, показывающие всю информацию о тех продавцах и их клиентах , которые живут в одном и том же городе
имя продавца и сумму всех совершенных его клиентами заказов, отсортированные по убыванию суммы

SQL Fundamentals, Performance Lab

Слайд 25

Вложенные запросы

Что такое подзапрос
Принцип работы вложенного запроса
Single- и multirow подзапросы
Использование IN в

Вложенные запросы Что такое подзапрос Принцип работы вложенного запроса Single- и multirow
подзапросах
Ключевые слова ALL, ANY, SOME
Операции над множествами: UNION, INTERSECT, MINUS
Операции над множествами: ORDER BY
Использование агрегатных функций в подзапросах
Запросы с WITH

SQL Fundamentals, Performance Lab

Слайд 26

Задание #5

Написать запрос, выводящий…
все заказы, оформленные продавцами из Лондона (London) без использования

Задание #5 Написать запрос, выводящий… все заказы, оформленные продавцами из Лондона (London)
join
всех продавцов, имеющих комиссию выше средней
общее количество продавцов и покупателей из каждого города, отсортированное по убыванию количества
2, 3, и 4 строки таблицы Sales, отсортированной по возрастанию имени продавца

SQL Fundamentals, Performance Lab

Слайд 27

Соотнесенные запросы

Принцип работы соотнесенного запроса
Ключевое слово EXISTS
Скалярные подзапросы

SQL Fundamentals, Performance Lab

Соотнесенные запросы Принцип работы соотнесенного запроса Ключевое слово EXISTS Скалярные подзапросы SQL Fundamentals, Performance Lab

Слайд 28

Принцип работы соотнесенного подзапроса

Выбрать строку из таблицы, именованной во внешнем запросе. Это

Принцип работы соотнесенного подзапроса Выбрать строку из таблицы, именованной во внешнем запросе.
будет текущая строка-кандидат.
Сохранить значения из этой строки-кандидата в псевдониме с именем в предложении FROM внешнего запроса.
Выполнить подзапрос. Везде, где псевдоним, заданный для внешнего запроса, найден, использовать значение текущей строки-кандидата. (Использование значения из строки-кандидата внешнего запроса в подзапросе называется внешней ссылкой.)
Оценить предикат внешнего запроса на основе результатов подзапроса, выполняемого в шаге 3. Он определяет, выбирается ли строка-кандидат для вывода.
Повторить процедуру для следующей строки-кандидата таблицы, и так далее, пока все строки таблицы не будут проверены.

SQL Fundamentals, Performance Lab

Слайд 29

Скалярные подзапросы

Это single-row subquery, в которой только 1 столбец;
Скалярные подзапросы обязательно заключаются

Скалярные подзапросы Это single-row subquery, в которой только 1 столбец; Скалярные подзапросы
в скобки;
Могут быть соотнесенными;
Могут быть использованы почти в любом месте, где может быть использовано выражение, за исключением:
В конструкции GROUP BY
В прочих случаях (не исследуются в рамках этого курса)

SQL Fundamentals, Performance Lab

Слайд 30

Задание #6

Написать запрос, выводящий…
имена и номера всех продавцов, которые имеют не менее

Задание #6 Написать запрос, выводящий… имена и номера всех продавцов, которые имеют
одного заказчика
всех продавцов, имеющих комиссию не ниже средней по своему городу
[подзапросом] номера и имена всех продавцов, имеющих в своем городе заказчиков, которых они не обслуживают
[join’ом] номера и имена всех продавцов, имеющих в своем городе заказчиков, которых они не обслуживают
номера всех заказов, а также разницу между стоимостью каждого заказа и средней стоимостью заказа за тот же день

SQL Fundamentals, Performance Lab

Слайд 31

Изменение содержимого таблиц

Операторы INSERT, UPDATE, DELETE
Использование подзапросов при изменении содержимого
Понятие транзакции, ключевые

Изменение содержимого таблиц Операторы INSERT, UPDATE, DELETE Использование подзапросов при изменении содержимого
слова COMMIT, ROLLBACK
Типы запросов: DML, DDL, TCL

SQL Fundamentals, Performance Lab

Слайд 32

Порядок выполнения INSERT

Проверка, что таблица, указанная в INTO, существует
Проверка, что колонки указанные

Порядок выполнения INSERT Проверка, что таблица, указанная в INTO, существует Проверка, что
в INSERT, существуют в таблице
Выражения, указанные в списке VALUES, вычисляются
Проверяется совместимость типов выражений в VALUES и типов соответствующих колонок таблицы
Выражения в VALUES проверяются на соответствие имеющимся в таблице ограничениям целостности (они будут рассмотрены позднее)

SQL Fundamentals, Performance Lab

Слайд 33

ACID

Atomicity (Атомарность)
Consistency (Согласованность)
Isolation (Изолированность)
Durability (Надежность)

SQL Fundamentals, Performance Lab

ACID Atomicity (Атомарность) Consistency (Согласованность) Isolation (Изолированность) Durability (Надежность) SQL Fundamentals, Performance Lab

Слайд 34

Многопользовательские коммиты

SQL Fundamentals, Performance Lab

Многопользовательские коммиты SQL Fundamentals, Performance Lab

Слайд 35

Задание #7

Написать запрос, который…
делает все города проживания клиентов, начинающиеся с S, написанными

Задание #7 Написать запрос, который… делает все города проживания клиентов, начинающиеся с
большими буквами, затем откатывает изменения
добавляет нового продавца (некоторые из полей можно оставить пустыми), причем новый продавец должен стать видимым для остальных слушателей курса
удаляет всех продавцов, у которых не указан город проживания и чьи имена длиннее восьми символов

SQL Fundamentals, Performance Lab

Слайд 36

Создание таблиц

Правила именования объектов БД
Основные типы данных: NUMBER, CHAR, VARCHAR2, DATE
Оператор CREATE,

Создание таблиц Правила именования объектов БД Основные типы данных: NUMBER, CHAR, VARCHAR2,
оператор DESC
Неявные коммиты
Использование подзапросов для создания таблиц
Операторы ALTER, DROP
Создание и модификация представлений (VIEW)

SQL Fundamentals, Performance Lab

Слайд 37

Правила именования объектов БД

Длина имени – хотя бы один символ, но не

Правила именования объектов БД Длина имени – хотя бы один символ, но
больше 30 символов;
Первый символ в имени должен быть буквой (латинского алфавита);
После первого символа могут идти любые буквы, цифры, а также знаки $, _, # в любом порядке (никаких других символов в имени не допускается);
Имена не могут быть зарезервированными словами языка SQL (такими как SELECT, CREATE и т.д.)

SQL Fundamentals, Performance Lab

Слайд 38

Пространства имен

SQL Fundamentals, Performance Lab

Пространства имен SQL Fundamentals, Performance Lab

Слайд 39

NUMBER(n, m)

Синоним DECIMAL(n, m)
Параметры n и m – опциональные
n ∈ [1, 38]

NUMBER(n, m) Синоним DECIMAL(n, m) Параметры n и m – опциональные n
– максимальное количество значащих цифр. Значение по умолчанию = 38.
m ∈ [-84, 127] – количество цифр справа от запятой. Значение по умолчанию = 0.
x ∈ NUMBER ⇒ |x| ∈ [1*10-130, 1*10126)

SQL Fundamentals, Performance Lab

Слайд 40

NUMBER(n, m)

SQL Fundamentals, Performance Lab

NUMBER(n, m) SQL Fundamentals, Performance Lab

Слайд 41

CHAR(n)

Строка фиксированной длины, состоящая из букв и цифр;
n ∈ [1, 2000] –

CHAR(n) Строка фиксированной длины, состоящая из букв и цифр; n ∈ [1,
длина строки. Необязательный параметр. Значение для n по умолчанию = 1;
В столбцах типа CHAR(3) значения из двух символов ( например, ‘r2’) будут храниться как ‘r2 ‘, т.е. дополняться пробелами справа (до длины n)

SQL Fundamentals, Performance Lab

Слайд 42

DATE

Хранит информацию о дате и времени
Примеры форматирования дат (функции TO_CHAR, TO_DATE)

SQL Fundamentals,

DATE Хранит информацию о дате и времени Примеры форматирования дат (функции TO_CHAR,
Performance Lab

TIMESTAMP(n)

Расширение DATE – хранит также доли секунд
n ∈ [1, 9] – количество цифр после запятой (точность). Значение по умолчанию = 9.

Слайд 43

Преобразование типов

Некоторые правила:
Неявное преобразование в целевой тип при INSERT и UPDATE, вызове

Преобразование типов Некоторые правила: Неявное преобразование в целевой тип при INSERT и
функций
Операции над типом NUMERIC производятся с максимально возможной точностью
При сравнении CHAR* vs NUMERIC значение CHAR* преобразуется в NUMERIC
При сравнении CHAR* vs DATE значение CHAR* преобразуется в DATE
В операциях присваивания выражение справа от = преобразуется в тип переменной слева от =

SQL Fundamentals, Performance Lab

Слайд 44

Функции конвертации типов

TO_NUMBER(e1[, format_model[, nls_params]])
Для CHAR*: TO_CHAR(c)
Для NUMBER: TO_CHAR(n[, format_model[, nls_params]])
Для DATE:

Функции конвертации типов TO_NUMBER(e1[, format_model[, nls_params]]) Для CHAR*: TO_CHAR(c) Для NUMBER: TO_CHAR(n[,
TO_CHAR(d[, format_model[, nls_params]])
TO_DATE(c[, format_model[, nls_params]])
TO_TIMESTAMP(c[, format_model[, nls_params]])

SQL Fundamentals, Performance Lab

Слайд 45

Задание #8

Написать запрос, который…
создает новую таблицу, содержащую только те строки из таблицы

Задание #8 Написать запрос, который… создает новую таблицу, содержащую только те строки
клиентов, в каждой из которых нет значений null
создает представление на основе таблицы из п.1, включающее только столбцы cname и city
удаляет таблицу из п.1
пробует запросить содержимое из представления из п.2
выполнить п.1, затем снова п.4

SQL Fundamentals, Performance Lab

Слайд 46

Поддержка целостности данных

Ограничения (constraints): UNIQUE, NOT NULL, CHECK
Вспомним про свойство транзакций «Consistency»
Просмотр

Поддержка целостности данных Ограничения (constraints): UNIQUE, NOT NULL, CHECK Вспомним про свойство
ограничений таблицы
Изменение ограничений
Первичные и внешние ключи
Inline- и out-of-line-синтаксис описания ограничений
Создание последовательностей (SEQUENCE)

SQL Fundamentals, Performance Lab

Слайд 47

Поддержка целостности данных

Ограничения (constraints): UNIQUE, NOT NULL, CHECK
Просмотр ограничений таблицы
Изменение ограничений
Первичные и

Поддержка целостности данных Ограничения (constraints): UNIQUE, NOT NULL, CHECK Просмотр ограничений таблицы
внешние ключи
Inline- и out-of-line-синтаксис описания ограничений

SQL Fundamentals, Performance Lab

Слайд 48

Синтаксис

SQL Fundamentals, Performance Lab

Синтаксис SQL Fundamentals, Performance Lab

Слайд 49

Синтаксис

SQL Fundamentals, Performance Lab

Синтаксис SQL Fundamentals, Performance Lab

Слайд 50

UNIQUE

Может быть применено к одному или более столбцам;
Допускаются значения null;
Создание – in-line

UNIQUE Может быть применено к одному или более столбцам; Допускаются значения null;
либо out-of-line синтаксис;
ALTER TABLE table_name DROP UNIQUE (column1, column2, . . . )

SQL Fundamentals, Performance Lab

Слайд 51

NOT NULL

Может быть применено только к одному столбцу;
Не допускает значения null в

NOT NULL Может быть применено только к одному столбцу; Не допускает значения
столбце;
Создание – только in-line синтаксис;
ALTER TABLE table_name MODIFY column_name NOT NULL;
ALTER TABLE table_name MODIFY column_name NULL;

SQL Fundamentals, Performance Lab

Слайд 52

CHECK

Позволяет использовать сложные выражения для описания нетривиальных правил для добавляемых строк, например:
Хотя

CHECK Позволяет использовать сложные выражения для описания нетривиальных правил для добавляемых строк,
бы одна из n колонок is not null;
Значения в столбце должны быть больше x;
Значения в столбце должны быть из некого предопределенного набора;
Создание – in-line либо out-of-line синтаксис;
ALTER TABLE table_name DROP CONSTRAINT name;
ALTER TABLE table_name RENAME CONSTRAINT name TO new_name;

SQL Fundamentals, Performance Lab

Слайд 53

PRIMARY KEY

Один или более столбцов, однозначно идентифицирующий каждую строку в таблице;
В любой

PRIMARY KEY Один или более столбцов, однозначно идентифицирующий каждую строку в таблице;
таблице может быть не более одного первичного ключа;
PRIMARY KEY = UNIQUE + NOT NULL;
Создание – in-line либо out-of-line синтаксис;
ALTER TABLE table_name DROP CONSTRAINT name;
ALTER TABLE table_name RENAME CONSTRAINT name TO new_name;

SQL Fundamentals, Performance Lab

Слайд 54

FOREIGN KEY

Применяется к одному или нескольким столбцам в таблице;
Поддерживает ссылочную целостность БД

FOREIGN KEY Применяется к одному или нескольким столбцам в таблице; Поддерживает ссылочную
– гарантирует, что для каждого столбца (столбцов) таблицы существует соответствующий столбец (столбцы) в другой таблице;
FOREIGN KEY одной таблицы может ссылаться только на PRIMARY KEY (или UNIQUE) другой таблицы.

SQL Fundamentals, Performance Lab

Слайд 55

SEQUENCE

Объект в БД, который используется (в основном) для генерации значений первичных ключей;
NEXTVAL

SEQUENCE Объект в БД, который используется (в основном) для генерации значений первичных
– переводит сиквенс на следующее значение и возвращает это (новое) значение;
Сиквенс передвинется на следующее значение даже в случае, если использовавший его запрос не выполнится (из-за ошибки);
CURRVAL – возвращает текущее значение сиквенса. CURRVAL нельзя вызывать, если еще ни разу (в текущей сессии) не вызывался NEXTVAL.

SQL Fundamentals, Performance Lab

Слайд 56

Задание #9

(все названия каждый придумывает самостоятельно, т.е. у каждого должен быть свой

Задание #9 (все названия каждый придумывает самостоятельно, т.е. у каждого должен быть
объект БД)
Создать новую таблицу (таблица C), содержащую только уникальные строки таблицы Clients
Создать новую таблицу (таблица S), содержащую только уникальные строки таблицы Sales
Добавить PRIMARY KEY на столбец snum таблицы S (при необходимости удалить повторяющиеся snumы и null-значения)
Добавить FOREIGN KEY на столбец snum таблицы С (при необходимости из C удалить строки с такими snum, которых нет в S)

SQL Fundamentals, Performance Lab

Слайд 57

Индексы

Неявное создание
Явное создание
Модификация и удаление

SQL Fundamentals, Performance Lab

Индексы Неявное создание Явное создание Модификация и удаление SQL Fundamentals, Performance Lab

Слайд 58

Индексы

Неявное создание
Явное создание
Модификация и удаление
Понятия SELECTIVITY, CARDINALITY

SQL Fundamentals, Performance Lab

Индексы Неявное создание Явное создание Модификация и удаление Понятия SELECTIVITY, CARDINALITY SQL Fundamentals, Performance Lab

Слайд 59

Индексы

SQL Fundamentals, Performance Lab

Индексы SQL Fundamentals, Performance Lab

Слайд 60

Индексы

SQL Fundamentals, Performance Lab

Индексы SQL Fundamentals, Performance Lab

Слайд 61

Индексы

SQL Fundamentals, Performance Lab

Пример поиска по индексу: отбираем строки со значением 57

Индексы SQL Fundamentals, Performance Lab Пример поиска по индексу: отбираем строки со
в индексированном столбце

Слайд 62

B+ tree index

SQL Fundamentals, Performance Lab

B+ tree index SQL Fundamentals, Performance Lab

Слайд 63

Преимущества B+ tree index

Высота дерева фиксированная ⇒ поиск любой записи в индексе

Преимущества B+ tree index Высота дерева фиксированная ⇒ поиск любой записи в
занимает примерно одинаковое время
Автоматически балансируются
Ускоряют большинство запросов, включая запросы с предикатами, содержащими равенство либо диапазон значений
Быстрые операции UPDATE, INSERT, DELETE
Обеспечивают приемлемую производительность для таблиц больших и малых объемов
Скорость поиска записей в индексе не падает с ростом числа записей (строк в таблице)

SQL Fundamentals, Performance Lab

Слайд 64

Composite Index

SQL Fundamentals, Performance Lab

Composite Index SQL Fundamentals, Performance Lab

Слайд 65

Задание #10

SQL Fundamentals, Performance Lab

Задание #10 SQL Fundamentals, Performance Lab
Имя файла: SQL-Fundamentals.pptx
Количество просмотров: 118
Количество скачиваний: 0