Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory_po_BD.doc
Скачиваний:
20
Добавлен:
25.09.2019
Размер:
587.78 Кб
Скачать

18. Язык структурированных запросов sql. Основные положения.

Язык SQL – структурированный язык запросов, который дает возможность работать в БД.

Разделяют 2 вида использования: 1)интерактивные – пользователь пишет запрос и получает на него ответ; 2) вложенные – элементы языка встраиваются внутрь другого языка.

SQL имеет несколько частей:

-DDL – язык определения данных,

-DML – язык манипулирования данными,

-DCD – язык управления данными.

Основные термины:

ключевые слова – слова, которые имеют специальное значение SQL.

команды – инструкция с которой мы обращаемся к БД .

Команды состоят из 1 или более логических частей – предложений.

Предложение начинается ключевым словом и состоит из ключевых слов и аргументов.

Объекты – структуры в БД, которые имеют имена.

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

19. Язык структурированных запросов sql. Установка критериев выбора.

Язык SQL – структурированный язык запросов, который дает возможность работать в БД.

Salespeople:

Snum

Sname

city

comn

Customers:

Cnum

Cname

city

rating

Snum

Orders:

Onum

amt

Odate

Cnum

Snum

Выводит все данные из таблицы Salespeople:

SELECT Snum, Sname, city, comn

FROM Salespeople

или:

SELECT * FROM Salespeople

Устраняет дублирующее значение из предложения, указывается только один раз:

SELECT city FROM Salespeople

SELECT DISTINCT city FROM Salespeople

ALL – указывает ,что нужно выводить дублирующие значения; пояснительное ключевое слово.

WHERE – предложение команды SELECT, которое позволяет установить условия для вывода строк. Если строка удовлетворяет заданное условие, то она выводится:

SELECT Sname, city FROM Salespeople

WHERE city = ‘Брянск’

или:

WHERE rating > 100

Условия могут быть очень сложные и представлять разные возможности.

Для символьных элементов сравнив. их значения по таблице ASCII кода. Для создания сложных выражений используются логические операции AND, OR, NOT.

INоператор, определяющий набор значений в который, данное значение может или не может быть включено.

SELECT * FROM Salespeople

WHERE city IN (“Брянск”, “Москва”)

или:

WHERE city = “Брянск” OR city = “Москва”

BETWEENопределяет диапазон в который должно попасть значение.

SELECT * FROM Salespeople

WHERE comn BETWEEN 0,1 AND 0,12

или:

WHERE Cname BETWEEN “A” AND “E” /от А до D/

LIKEприменяется к символьным полям и используется чтобы находить подстроки.

(_) любой единичный символ ?

(%) любое количество символов *

SELECT * FROM Customers

WHERE Cname LIKE “B%” /все имена покупателей на букву В/

IS NULLиспользуется для поиска пустых значений поля.

WHERE NOT city IS NULL

20. Язык структурированных запросов sql. Обобщение данных с помощью агрегатных функций.

Запросы могут производить обобщенное групповое значение полей точно также как и значение одного пол. Это делает с помощью агрегатных функций. Агрегатные функции производят одиночное значение для всей группы таблицы. Имеется список этих функций: * COUNT - производит номера строк или не - NULL значения полей которые выбрал запрос. * SUM - производит арифметическую сумму всех выбранных значений данного пол. * AVG - производит усреднение всех выбранных значений данного пол. * MAX - производит наибольшее из всех выбранных значений данного пол. * MIN - производит наименьшее из всех выбранных значений данного пол.

Функция COUNT несколько отличается от всех. Она считает число значений в данном столбце, или число строк в таблице. Когда она считает значения столбца, она используется с DISTINCT чтобы производить счет чисел различных значений в данном поле:

SELECT COUNT ( DISTINCT snum )

FROM Orders;

DISTINCT может использоваться таким образом, с любой функцией агрегата, но наиболее часто он используется с COUNT. С MAX и MIN, это просто не будет иметь никакого эффекта, а SUM и AVG, вы обычно применяете для включения повторяемых значений, так как они законно эффективнее общих и средних значений всех столбцов.

Чтобы подсчитать общее число строк в таблице, используйте функцию COUNT со звездочкой:

SELECT COUNT (*)

FROM Customers

Агрегатные функции могут также ( в большинстве реализаций ) использовать аргумент ALL, который помещается перед именем пол, подобно DISTINCT, но означает противоположное: - включать дубликаты. ANSI технически не позволяет этого для COUNT, но многие реализации ослабляют это ограничение. Различи между ALL и * когда они используются с COUNT - * ALL использует имя_поля как аргумент. * ALL не может подсчитать значения NULL. Пока * является единственным аргументом который включает NULL значения, и он используется только с COUNT; функции отличные от COUNT игнорируют значения NULL в любом случае.

До этого, вы использовали агрегатные функции с одиночными полями как аргументами. Вы можете также использовать агрегатные функции с аргументами которые состоят из скалярных выражений включающих одно или более полей.

SELECT MAX ( blnc + (amt) )

FROM Orders;

GROUP BY применяет агрегатные функции независимо от серий групп которые определяются с помощью значения поля в целом. GROUP BY используется с многочисленными полями. Предложение GROUP BY позволяет создавать итоговый запрос, который вначале группирует строки базы данных по определенному признаку, а затем включает в результаты запроса одну итоговую строку для каждой группы.

Предложение HAVING показывает, что в результаты запроса следует включать только те некоторые из групп, созданных с помощью предложения GROUP BY.

Предложение HAVING определяет критерии используемые чтобы удалять определенные группы из вывода, точно также как предложение WHERE делает это для индивидуальных строк. Аргументы в предложении HAVING следуют тем же самым правилам что и в предложении SELECT, состоящей из команд использующих GROUP BY. Они должны иметь одно значение на группу вывода. Следующая команда будет запрещена:

SELECT snum, MAX (amt)

FROM Orders

GROUP BY snum

HAVING odate = 10/03/1988;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]