Язык SQL

Содержание

Слайд 2

SQL – это язык программирования, применяемый для создания, модификации, поиска и извлечения

SQL – это язык программирования, применяемый для создания, модификации, поиска и извлечения
информации, хранящейся в произвольной реляционной базе данных, управляемой соответствующей системой управления базами данных (СУБД).

непроцедурный;
встроенный или интерактивный;
стандартизованный;
используемый для управления данными и объектами баз данных.

S

Q

L

Слайд 3

В SQL определены два подмножества языка:
SQL-DDL (Data Definition Language) — язык определения

В SQL определены два подмножества языка: SQL-DDL (Data Definition Language) — язык
данных. Сюда относятся команды создания и удаления баз данных; создания, изменения и удаления таблиц; управления пользователями и т.д.
SQL-DML (Data Manipulation Language) — язык манипулирования (управления) данными: добавление, изменение, удаление и извлечение данных, управления транзакциями.

Слайд 4

Операторы языка SQL

Операторы языка SQL

Слайд 5

Оператор создания таблицы CREATE TABLE
CREATE TABLE <имя таблицы>
(<имя столбца> <тип данных> [NOT

Оператор создания таблицы CREATE TABLE CREATE TABLE ( [NOT NULL] [, [NOT
NULL]
[,<имя столбца> <тип данных> [NOT NULL]]... )

Пример создания таблицы.
Пусть требуется создать таблицу goods описания товаров, имеющую поля: type — вид товара, comp_id — идентификатор компании-производителя, name — название товара и price — цена товара. Оператор определения таблицы может иметь следующий вид:
CREATE TABLE goods (type SQL_CHAR(8) NOT NULL, comp_id SQL_CHAR(10) NOT NULL, name SQL_VARCHAR(20), price SQL_DECIMAL(8,2)).

Слайд 6

Оператор изменения структуры таблицы ALTER TABLE
ALTER TABLE <имя таблицы>
( {ADD, MODIFY, DROP}

Оператор изменения структуры таблицы ALTER TABLE ALTER TABLE ( {ADD, MODIFY, DROP}
<имя столбца> [<тип данных>]
[NOT NULL]
[,{ADD, MODIFY, DROP} <имя столбца> [<тип данных>]
[NOT NULL]]...)

Пример добавление поля таблицы.
Пусть в созданной ранее таблице goods необходимо добавить поле number, отводимое для хранения величины запаса товара. Для этого следует записать оператор вида:
ALTER TABLE goods (ADD number SQL_INTEGER).

ADD добавление;
MODIFY изменение;
DROP удаление.

Слайд 7

Оператор создания индекса CREATE INDEX
CREATE [UNIQUE] INDEX <имя индекса>
ON <имя таблицы>
(<имя столбца>

Оператор создания индекса CREATE INDEX CREATE [UNIQUE] INDEX ON ( [ ASC
[ ASC | DESC ]
[,<имя столбца> [ ASC | DESC ]... )

Пример создания индекса.
Пусть для таблицы ЕМР, имеющей поля: NAME (имя), SAL (зарплата), MGR (руководитель) и DEPT (отдел), нужно создать индекс main_indx для сортировки имен в алфавитном порядке и убыванию размеров зарплаты. Оператор создания индекса может иметь вид:
CREATE INDEX main_indx
ON emp (name, sal DESC).

ASC сортировка по возрастанию
DESC сортировка по убыванию

Слайд 8

Оператор удаления таблицы DROP TABLE
DROP TABLE <имя таблицы>

Пример удаления таблицы.
Для удаления таблицы

Оператор удаления таблицы DROP TABLE DROP TABLE Пример удаления таблицы. Для удаления
с именем items достаточно записать оператор вида:
DROP TABLE items.

Оператор удаления индекса DROP INDEX
DROP INDEX <имя индекса>

Пример удаления индекса.
Для уничтожения индекса main_indx к таблице emp достаточно записать оператор:
DROP INDEX main_indx.

Слайд 9

Оператор формирования запросов SELECT
SELECT [ALL | DISTINCT]
<список данных>
FROM <список таблиц>
[WHERE <условие выборки>]
[GROUP

Оператор формирования запросов SELECT SELECT [ALL | DISTINCT] FROM [WHERE ] [GROUP
BY <имя столбца> [,<имя столбца>] ... ]
[HAVING <условие поиска>]
[ORDER BY <спецификация> [,<спецификация>] ...]

DISTINCT исключение повторяющихся строк

ORDER BY задает порядок сортировки

GROUP BY группировка по списку

Слайд 10

Пример выбора записей.
Для таблицы ЕМР, имеющей поля: NAME (имя), SAL (зарплата), MGR

Пример выбора записей. Для таблицы ЕМР, имеющей поля: NAME (имя), SAL (зарплата),
(руководитель) и DEPT (отдел), требуется вывести имена сотрудников и размер их зарплаты, увеличенный на 100 единиц. Оператор выбора можно записать следующим образом:
SELECT name, sal+100
FROM emp.
Пример выбора с условием.
Вывести названия таких отделов таблицы ЕМР, в которых в данный момент отсутствуют руководители. Оператор SELECT имеет вид:
SELECT dept
FROM emp
WHERE mgr is NULL.
Пример выбора с группированием.
Пусть требуется найти минимальную и максимальную зарплаты для каждого из отделов (по таблице ЕМР). Оператор SELECT для этого запроса имеет вид:
SELECT dept, MIN(sal), MAX(sal)
FROM emp
GROUP BY dept.

Слайд 11

Предложение ORDER BY

В общем случае строки в результирующей таблице SQL- запроса

Предложение ORDER BY В общем случае строки в результирующей таблице SQL- запроса
никак не упорядочены. Однако их можно требуемым образом отсортировать, для чего в оператор SELECT помещается фраза ORDER BY, которая сортирует данные выходного набора в заданной последовательности.
ASC – сортировка по возрастанию (реализуется по умолчанию);
DESC – сортировка по убыванию.
! Фраза ORDER BY всегда должна быть последним элементом в операторе SELECT

Слайд 12

Оператор изменения записей UPDATE
UPDATE <имя таблицы>
SET <имя столбца> = {<выражение> , NULL

Оператор изменения записей UPDATE UPDATE SET = { , NULL } [,
}
[, SET <имя столбца> = {<выражение> , NULL }... ]
[WHERE <условие>]

Пример изменения записей.
Пусть необходимо увеличить на 500 единиц зарплату тем служащим, которые получают не более 6000 (по таблице ЕМР). Запрос, сформулированный с помощью оператора SELECT, может выглядеть так:
UPDATE emp
SET sal = 6500
WHERE sal <= 6000.

Слайд 13

Оператор вставки новых записей INSERT INTO

Пример ввода записей.
Ввести в таблицу ЕМР запись

Оператор вставки новых записей INSERT INTO Пример ввода записей. Ввести в таблицу
о новом сотруднике. Для этого можно записать такой оператор вида:
INSERT INTO emp
VALUES («Ivanov», 7500, «Lee», «cosmetics»).

Слайд 14

Оператор удаления записей DELETE FROM
DELETE FROM <имя таблицы>
[WHERE <условие>]

Пример удаления записей.
В связи

Оператор удаления записей DELETE FROM DELETE FROM [WHERE ] Пример удаления записей.
с ликвидацией отдела игрушек (toy), требуется удалить из таблицы ЕМР всех сотрудников этого отдела. Оператор DELETE для этой задачи будет выглядеть так:
DELETE FROM emp
WHERE dept = «toy».

Слайд 15

Оператор создания представления CREATE VIEW
CREATE VIEW <имя представления>
[(<имя столбца> [,<имя столбца> ]...)]
AS

Оператор создания представления CREATE VIEW CREATE VIEW [( [, ]...)] AS Пример
<оператор SELECT>

Пример создание представления.
Пусть имеется таблица companies описания производителей товаров с полями: comp_id (идентификатор компании), comp_name (название организации), comp_address (адрес) и phone (телефон), а также таблица goods производимых товаров с полями: type (вид товара), comp_id (идентификатор компании), name (название товара) и price (цена товара). Таблицы связаны между собой по полю comp_id. Требуется создать представление repr с краткой информацией о товарах и их производителях: вид товара, название производителя и цена товара. Оператор определения представления может иметь следующий вид:

Слайд 16

CREATE VIEW
герг
AS
SELECT
goods.type, companies.comp_name, goods.price
FROM
goods, companies
WHERE
goods.comp_id = companies.comp_id

Оператор удаления представления DPOP VIEW
DROP VIEW

CREATE VIEW герг AS SELECT goods.type, companies.comp_name, goods.price FROM goods, companies WHERE
<имя представления>
Пример удаления представления.
Удаление представления герг производится оператором вида:
DROP VIEW герг.

Слайд 17

Понятие подзапроса

! Подзапрос – это инструмент создания временной таблицы, содержимое которой извлекается

Понятие подзапроса ! Подзапрос – это инструмент создания временной таблицы, содержимое которой
и обрабатывается внешним оператором. Текст подзапроса должен быть заключен в скобки.
К подзапросам применяются следующие правила и ограничения:
Фраза ORDER BY не используется, хотя и может присутствовать во внешнем подзапросе;
Список в предложении SELECT состоит из имен отдельных столбцов или составленных из них предложений – за исключением случая, когда в запросе присутствует ключевое слово EXISTS;
По умолчанию имена столбцов в подзапросе относятся к таблице, имя которой указано в предложении FROM
Если подзапрос является одним из двух операндов, участвующих в операции сравнения, то запрос должен указываться в правой части этой операции.

Слайд 18

Существует два типа подзапросов:
Скалярный подзапрос возвращает единственное значение;
Табличный подзапрос возвращает множество значений,

Существует два типа подзапросов: Скалярный подзапрос возвращает единственное значение; Табличный подзапрос возвращает
т.е. значения одного или нескольких столбцов таблицы, размещенные в более чем одной строке.

Пример использования подзапросов.
Определить по какому предмету сдается последний экзамен. Оператор SELECT для этой задачи будет выглядеть так:
SELECT subj_name, date FROM exams, subject
WHERE date= (SELECT max (dat) FROM exams)