Язык SQL Последовательности Представления Индексы.

Презентация:



Advertisements
Похожие презентации
Введение в SQL (НЕ select) Затрагиваемые темы Роль языка SQL. Части SQL Роль языка SQL. Части SQL Администрирование БД: привилегии (DCL) Администрирование.
Advertisements

Создание таблиц. А.М. Гудов 2Заключение Имеется несколько способов соединения таблиц: –Эквисоединение –Не-эквисоединение –Внешнее соединение –Соединение.
Выражения унарные (унарный минус) арифметические (+, -, *, /) сравнения (, =, =, , LIKE, BETWEEN...) конкатенации (||) логические (NOT, AND, OR)
«ИЗМЕНЕНИЕ ДАННЫХ В БД» Выполнил: студент 722 группы Специальности Информационные системы (по отрослям) Токарев Виктор.
Базы данных Язык запросов SQL. Команда SELECT (продолжение)
БАЗЫ ДАННЫХ ЛЕКЦИЯ 12. тема: ОСНОВЫ ЯЗЫКА SQL Общие сведения SQL структурированный язык запросов (Structured Query Language)
Бланк запроса. Создание списка специальностей Вид при конструирования запросов.
Вставка INSERT INTO table (column, column,...) VALUES (expr, expr...) LOAD DATA INFILE "C:\\tmp\\file.txt" INTO TABLE table.
А.М. Гудов 1 Выборка данных ПОДЗАПРОСЫ. А.М. Гудов 2 Что такое подзапрос? Синтаксис команды SELECT SELECT...FROM...WHERE... Синтаксис SELECT (SELECT...FROM...WHERE...);
1 TRANSACT-SQL. Лекция 3. © Куркурин Николай Дмитриевич. (906) Microsoft SQL Server 2000.
1 БАЗЫ ДАННЫХ Использование SQL для построения запросов. ЗАНЯТИЕ 6 ПУГАЧЁВ Ю.В. Учитель информатики Харьковская общеобразовательная школа І-ІІІ ступеней.
СУБД Access Запросы Автор: Тутыгин В.С.. Назначение запросов Запросы обеспечивают простой доступ к определенному подмножеству записей одной или нескольких.
SQL SQL (Structured Query Language Структурированный язык запросов) язык управления базами данных для реляционных баз данных.
PL/SQL Взаимодействие с СУБД. Специальные типы Имя_таблицы.имя_столбца%TYPE Имя_таблицы%ROWTYPE; Имя_курсора%ROWTYPE;
5.2. Представление о мире (VIEW)Представления предназначены для сохранения результатов выполнения запросов в виде таблиц. В отличие от хранимых процедур.
Администрирование и безопасность MySQL. Создание и удаление пользователей Под учетной записью пользователя MySQL подразумевается строка в таблице user.
Базы данных Язык запросов SQL. Команда SELECT. Команда SELECT – выборка данных Общий синтаксис: SELECT [{ ALL | DISTINCT }] { список_вывода | * } FROM.
CREATE TABLE Ident_table ( ID int IDENTITY(1, 1), some_values varchar(50)); IDENTITY [ ( seed, increment ) ]
Основы SQL Запросы к базе данных. Что такое база данных SQL? SQL (Structured Query Language - «Структурированный язык запросов») - универсальный компьютерный.
1 Основы SQL: MySQL Будем использовать MySQL СУБД с открытым кодом Бесплатная версия (Community Edition) – на В Linux-дистрибутивах.
Транксрипт:

Язык SQL Последовательности Представления Индексы

Последовательность Последовательность – это объект базы данных, предназначенный для генерации последовательных целых чисел. SEQUENCE

Создание CREATE SEQUENCE имя [INCREMENT BY n] [START WITH n] [CACHE n | NOCACHE];

Пример CREATE SEQUENCE seq1; CREATE SEQUENCE seq2 INCREMENT BY -3 START WITH 25 CACHE 5;

Последовательность Иногда бывают zЦиклические (CYCLED) zС мин и макс значениями (MINVALUE, MAXVALUE) Данные хранятся: zUSER_SEQUENCES (ORACLE) zINFORMATION_SCHEMA.SEQUENCES (H2)

Использование zCURVAL zNEXTVAL Можно: z в списке SELECT команды SELECT; zв предложении VALUES команды INSERT; zв предложении SET команды UPDATE.

Использование CURVAL, NEXTVAL НЕЛЬЗЯ: z в подзапросе; z в запросе к представлению; z SELECT с ключевым словом DISTINCT; z SELECT с предложением GROUP BY, HAVING или ORDER BY; z WHERE команды SELECT; z в (DEFAULT) значении столбца в предложении CREATE TABLE или ALTER TABLE; zв условии ограничения CHECK.

Пример SELECT seq2.CURRVAL FROM dual; Ошибка или предыдущее значение (СУБД !?!?) SELECT seq2.NEXTVAL FROM dual; В следующий раз вернет 22.

Пример В таблице s_emp все значения столбца id обновить, используя последовательность seq1. UPDATE s_emp SET id=seq1.nextval;

Каждый раз или один раз ??? SELECT seq1.CURRVAL, seq1.NEXTVAL, seq1.NEXTVAL, seq1.NEXTVAL*3, seq1.CURRVAL*3, id FROM s_region; SELECT seq1.CURRVAL, seq1.NEXTVAL, seq1.NEXTVAL, seq1.NEXTVAL*3, seq1.CURRVAL*3, id FROM s_region; (5 строки, 0 ms) N1 N2 N3 N4 N5 ID

Изменение ALTER SEQUENCE имя [RESTART WITH long] [INCREMENT BY n]

Пример: Созданную ранее последовательность seq2 нужно изменить таким образом, чтобы следующий элемент был 100 а интервал –4. ALTER SEQUENCE seq2 RESTART WITH 100 INCREMENT BY -4; Проверим: SELECT seq2.NEXTVAL FROM dual;

Удаление DROP SEQUENCE имя; Пример: DROP SEQUENCE seq2;

Индексы zИндекс – объект базы данных, с помощью которого можно ускорить выполнение некоторых запросов. INDEX

Создание индекса zиндекс в Вашей схеме и индексируется таблица Вашей схемы привилегия CREATE INDEX. z индекс в Вашей схеме, но индексируется таблица схемы другого пользователя, CREATE INDEX и INDEX по индексируемой таблице. zиндексы в своей схеме, индексируя при этом таблицы любых пользователей CREATE ANY INDEX. zиндекс в другой схеме CREATE ANY INDEX.

Создание индекса CREATE INDEX индекс ON таблица (столбец, …); CREATE INDEX s_emp_dept_id_idx ON s_emp (dept_id);

Когда и зачем? z Столбец часто используется в предложении WHERE или условии соединения. z Столбец имеет широкий диапазон значений. zСтолбец содержит большое количество неопределенных значений. zТаблица большого размера.

Когда не стОит? z Таблица небольшого размера. z Столбцы не очень часто используются как условие в запросе. z Таблица часто обновляется.

Удаление индекса DROP INDEX имя_индекса; DROP INDEX s_emp_dept_id_idx;

Представления Представление (view – представление, обзор, вид) – логическая таблица, созданная на основе реальных таблиц или других представлений, называемых базовыми таблицами представления. VIEW

Создание CREATE [FORCE | NOFORCE] VIEW представление [(псевдоним, …)] AS подзапрос;

Пример CREATE VIEW dept_45 AS (SELECT * FROM s_emp WHERE dept_id=45);

Пример CREATE VIEW dept_sal (name, minsal, maxsal, avgsal) AS (SELECT d.name, MIN(e.salary), MAX(e.salary), AVG(e.salary) FROM s_emp e, s_dept d WHERE e.dept_id=d.id GROUP BY d.name); SELECT * FROM dept_sal;

Создать представление, содержащее номер, фамилию, имя, зарплату и номер начальника для каждого подчиненного сотрудника 1. CREATE VIEW man_1 AS (SELECT id, last_name, first_name, salary, manager_id FROM s_emp WHERE manager_id=1);

Изменение данных Можно удалять и обновлять строки, если нет: z условий соединения; z групповых функций и предложения GROUP BY; zключевого слова DISTINCT. Можно добавлять если нет NOT NULL*

Всем сотрудникам, имеющим зарплату 1400 через представление man_1 увеличить ее до UPDATE man_1 SET salary=1800 WHERE salary=1400;

Служащих с зарплатой 1450 посредством представления man_1 перевести к начальнику 2. UPDATE man_1 SET manager_id=2 WHERE salary=1450;

Удаление представления DROP VIEW имя; Удалить представление man_1: DROP VIEW man_1;