СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Реляционные языки запросов. Язык SQL

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Реляционные языки запросов. Язык SQL»

Лекция 8. Реляционные языки запросов. Язык SQL

Лекция 8. Реляционные языки запросов. Язык SQL

 Существуют языки: ISBL - язык системы PRTV , QUEL -язык системы INGRES , SQL - язык системы System R ; QBE - язык интерфейса высокого уровня в ряде СУБД, PIQUE - язык экспериментальной системы PITS . ISBL основан на реляционной алгебре. QUEL и SQL - на исчислении кортежей. QBE -язык, основанный на исчислении доменов. PIQUE - похож на исчисление кортежей, но обеспечивает интерфейс со схемой помощью  W-функций. В реляционных системах выполняются как минимум 2 условия:   1. Данные воспринимаются пользователем как таблицы.   2. В распоряжении пользователя имеются операторы (например, для выборки данных), среди которых есть операторы SELECT , PROJECT и JOIN .  - Операция SELECT предназначена для извлечения определенных строк из таблицы.    - Операция PROJECT предназначена для извлечения определенных столбцов из таблицы.   - Операция JOIN предназначена для соединения двух таблиц на основе общих значений в общих столбцах.

Существуют языки: ISBL - язык системы PRTV , QUEL -язык системы

INGRES , SQL - язык системы System R ; QBE - язык интерфейса высокого уровня

в ряде СУБД, PIQUE - язык экспериментальной системы PITS . ISBL основан на

реляционной алгебре. QUEL и SQL - на исчислении кортежей. QBE -язык,

основанный на исчислении доменов. PIQUE - похож на исчисление кортежей, но

обеспечивает интерфейс со схемой помощью W-функций.

В реляционных системах выполняются как минимум 2 условия:

1. Данные воспринимаются пользователем как таблицы.

2. В распоряжении пользователя имеются операторы (например, для выборки

данных), среди которых есть операторы SELECT , PROJECT и JOIN .

- Операция SELECT предназначена для извлечения определенных строк из таблицы.

- Операция PROJECT предназначена для извлечения определенных столбцов из таблицы.

- Операция JOIN предназначена для соединения двух таблиц на основе общих значений в общих столбцах.

400р. 2 . PROJECT: SELECT № отдела , Бюджет FROM ОТДЕЛЫ 3. JOIN: SELECT ОТДЕЛЫ.*, СЛУЖАЩИЕ.* FROM ОТДЕЛЫ, СЛУЖАЩИЕ WHERE ОТДЕЛЫ. № отдела = СЛУЖАЩИЕ. № отдела " width="640"

Пример 6.1. Пусть имеются 2 таблицы:

ОТДЕЛЫ (№ отдела, Наименование, Бюджет)

СЛУЖАЩИЕ (№ служащего, № отдела, Оклад)

1. SELECT :

SELECT № отдела, Наименование, Бюджет

FROM ОТДЕЛЫ

WHERE Оклад 400р.

2 . PROJECT:

SELECT № отдела , Бюджет

FROM ОТДЕЛЫ

3. JOIN:

SELECT ОТДЕЛЫ.*, СЛУЖАЩИЕ.*

FROM ОТДЕЛЫ, СЛУЖАЩИЕ

WHERE ОТДЕЛЫ. № отдела = СЛУЖАЩИЕ. № отдела

 Функции определения данных: CREATE  TABLE - оператор создания таблицы ; CREATE  INDEX - оператор создания индексной таблицы; DROP  TABLE - оператор удаления таблицы ; DROP  INDEX - оператор удаления индексной таблицы. 8 .2. Операторы манипулирования данными SELECT (выдать, выбрать),  UPDATE (обновить),  DELETE (удалить) INSERT (включить). Создадим БД Поставщиков ( S ) . CREATE TABLE S ( НОМЕР _ ПОСТАВЩИКА CHAR (5), ИМЯ CHAR (20), СОСТОЯНИЕ SMALLINT, ГОРОД CHAR (15));

Функции определения данных:

CREATE TABLE - оператор создания таблицы ;

CREATE INDEX - оператор создания индексной таблицы;

DROP TABLE - оператор удаления таблицы ;

DROP INDEX - оператор удаления индексной таблицы.

8 .2. Операторы манипулирования данными

SELECT (выдать, выбрать), UPDATE (обновить), DELETE (удалить)

INSERT (включить).

Создадим БД Поставщиков ( S ) .

CREATE TABLE S

( НОМЕР _ ПОСТАВЩИКА CHAR (5),

ИМЯ CHAR (20),

СОСТОЯНИЕ SMALLINT,

ГОРОД CHAR (15));

 8 .3.Выборки  SELECT – FROM - WHERE (выбрать – из – где). Структура оператора SELECT : SELECT [DISTINCT] элементы FROM таблица [WHERE предикат ] [GROUP BY поле [HAVING [ предикат ]] [ORDER BY поле ] Пример 6. 2 .  Простая выборка. Выдать номера для всех поставляемых деталей: SELECT НОМЕР _ ДЕТАЛИ FROM SP Пример 6. 3 . Выборка с исключением дубликатов. SELECT DISTINCT НОМЕР _ ДЕТАЛИ  FROM SP Пример 6. 4 . Выборка вычисляемых значений. Выдать номер и вес каждой детали SELECT НОМЕР_ДЕТАЛИ, ВЕС FROM  P   Фраза SELECT (и фраза WHERE ) может включать арифметические выражения, а также прочие имена полей. Можно, кроме того, осуществлять выборку просто констант. SELECT НОМЕР_ДЕТАЛИ, 'Вес в граммах  =', ВЕС FROM  P

8 .3.Выборки

SELECT – FROM - WHERE (выбрать – из – где).

Структура оператора SELECT :

SELECT [DISTINCT] элементы

FROM таблица

[WHERE предикат ]

[GROUP BY поле [HAVING [ предикат ]]

[ORDER BY поле ]

Пример 6. 2 . Простая выборка. Выдать номера для всех поставляемых деталей:

SELECT НОМЕР _ ДЕТАЛИ

FROM SP

Пример 6. 3 . Выборка с исключением дубликатов.

SELECT DISTINCT НОМЕР _ ДЕТАЛИ

FROM SP

Пример 6. 4 . Выборка вычисляемых значений. Выдать номер и вес каждой детали

SELECT НОМЕР_ДЕТАЛИ, ВЕС

FROM P

Фраза SELECT (и фраза WHERE ) может включать арифметические выражения, а также

прочие имена полей. Можно, кроме того, осуществлять выборку просто констант.

SELECT НОМЕР_ДЕТАЛИ, 'Вес в граммах =', ВЕС

FROM P

20 Условие или предикат, следующий за ключевым словом WHERE , может включать операторы сравнения =,  = (не равно), ,  , =, ,  и операторы AND (и), OR (или) и NOT (нет), а скобки указывают требуемый порядок вычислений. Пример 6. 8 . Выборка с упорядочением. Выдать номера и состояния поставщиков, находящихся в Перми, в порядке убывания их состояния: SELECT НОМЕР_ПОСТАВЩИКА FROM S WHERE ГОРОД=’Пермь’ ORDER BY СОСТОЯНИЕ DESC " width="640"

Пример 6. 6 . Выдать полные характеристики для всех поставщиков:

SELECT *

FROM S

Пример 6. 7 . Ограниченная выборка. Выдать номера поставщиков, которые

находятся в Перми и имеют состояние больше, чем 20.

SELECT НОМЕР_ПОСТАВЩИКА

FROM S

WHERE ГОРОД=’Пермь’ AND СОСТОЯНИЕ 20

Условие или предикат, следующий за ключевым словом WHERE , может

включать операторы сравнения =,  = (не равно), ,, =, , и

операторы AND (и), OR (или) и NOT (нет), а скобки указывают требуемый

порядок вычислений.

Пример 6. 8 . Выборка с упорядочением. Выдать номера и состояния поставщиков,

находящихся в Перми, в порядке убывания их состояния:

SELECT НОМЕР_ПОСТАВЩИКА

FROM S

WHERE ГОРОД=’Пермь’

ORDER BY СОСТОЯНИЕ DESC

 Параметры :  ASC – возрастание, DECS – убывание, ORDER BY – упорядочить.  При упорядочивании необходимо указать номер столбца: SELECT НОМЕР_ДЕТАЛИ, ВЕС FROM P ORDER BY 2, НОМЕР _ ДЕТАЛИ   В строке ORDER BY … цифра 2 означает ссылку на второй столбец результирующей таблицы. Пример 6. 9 . Выборка с использованием BETWEEN (между). Выдать сведения деталях, вес которых находится в диапазоне от 16 до 19 включительно: SELECT НОМЕР_ДЕТАЛИ, НАЗВАНИЕ, ЦВЕТ, ВЕС, ГОРОД FROM P WHERE ВЕС BETWEEN 16 AND 19 Может также использоваться NOT BETWEEN .  Пример 6.1 0 . Выборка с использованием IN .Выдать детали, вес которых 12,16,17. SELECT НОМЕР _ДЕТАЛИ, НАЗВАНИЕ, ВЕС, ГОРОД FROM P WHERE ВЕ GIN (12, 16,17) Существует также предикат NOT IN (не принадлежит).

Параметры : ASC – возрастание, DECS – убывание, ORDER BY – упорядочить.

При упорядочивании необходимо указать номер столбца:

SELECT НОМЕР_ДЕТАЛИ, ВЕС

FROM P

ORDER BY 2, НОМЕР _ ДЕТАЛИ

В строке ORDER BY … цифра 2 означает ссылку на второй столбец

результирующей таблицы.

Пример 6. 9 . Выборка с использованием BETWEEN (между). Выдать сведения

деталях, вес которых находится в диапазоне от 16 до 19 включительно:

SELECT НОМЕР_ДЕТАЛИ, НАЗВАНИЕ, ЦВЕТ, ВЕС, ГОРОД

FROM P

WHERE ВЕС BETWEEN 16 AND 19

Может также использоваться NOT BETWEEN .

Пример 6.1 0 . Выборка с использованием IN .Выдать детали, вес которых 12,16,17.

SELECT НОМЕР _ДЕТАЛИ, НАЗВАНИЕ, ВЕС, ГОРОД

FROM P

WHERE ВЕ GIN (12, 16,17)

Существует также предикат NOT IN (не принадлежит).

Пример 6.12. Выборка с использованием предиката LIKE (похоже на).Выдать все детали, название которых начинается с буквы  В: SELECT НОМЕР_ДЕТАЛИ, НАЗВАНИЕ, ЦВЕТ, ВЕС, ГОРОД FROM P WHERE НАЗВАНИЕ LIKE 'B%'  Обычно предикат LIKE имеет форму: Имя столбца LIKE литерная строковая константа,  где имя столбца имеет тип CHAR .  Литеры:  - Литера

Пример 6.12. Выборка с использованием предиката LIKE (похоже на).Выдать все

детали, название которых начинается с буквы В:

SELECT НОМЕР_ДЕТАЛИ, НАЗВАНИЕ, ЦВЕТ, ВЕС, ГОРОД

FROM P

WHERE НАЗВАНИЕ LIKE 'B%'

Обычно предикат LIKE имеет форму:

Имя столбца LIKE литерная строковая константа,

где имя столбца имеет тип CHAR .

Литеры:

- Литера " _ " (разрыв или подчеркивание) - обозначает любую одиночную литеру.

- Литера " %" (процент) - обозначает любую последовательность из п литер.

- Все другие литеры обозначают просто сами себя.