Автор: Пользователь скрыл имя, 13 Ноября 2011 в 17:04, реферат
Неотъемлемая и важнейшая часть любой системы, применяющей базы данных, языковые средства, обеспечивающие возможность доступа и действий над данными, определения их структур, способов использования и интерпретации. Язык SQL появился в 1970-е годы как одно из таких средств. Его прототип был разработан фирмой IBM и известен под названием SEQUEL (Structured English Query Language). SQL вобрал в себя достоинства реляционной модели, в частности достоинства лежащего в ее основе математического аппарата реляционной алгебры и реляционного исчисления, используя при этом сравнительно небольшое число операторов и относительно простой синтаксис.
SELECT cfam, nkod, ntov
FROM Pokup
WHERE nkod>400
And nkod<700;
6_1. Выберем из «Pokup» всех кроме Гребенева
SELECT cfam
FROM Pokup
WHERE NOT Cfam="Гребенев
А. Н.";
В условиях выборки можно использовать ключевые слова: BETWEEN, IN, LIKE, IS NULL
BETWEEN – задает диапазон значений, из которого отбираются данные, верхний и нижний пределы считаются частью диапазона.
NOT BETWEEN – значения не ходят в диапазон.
IN – задает список значений, с которым сравниваются отбираемые данные.
NOT IN – отбираются значения не входящие в список
LIKE – проверка на соответствие шаблону значений столбца. Шаблон - строка символ, в которую входят подстановочные знаки (* – один произвольный символ; ?-любой одиночный символ, #- любое одиночное число).
NOT LIKE – выбирает строки, которые не соответствуют шаблону.
NULL
– пустое поле, проверка на содержание
в столбце значения
NULL
При выборке
пустых полей или непустых используется
условие IS NULL или
IS NOT NULL
SELECT cfam, nkod, ntov
FROM Pokup
WHERE nkod BETWEEN
300 AND 400;
7_1. Выбрать все поля из таблицы "Pokup", при условии, что код товара должен быть равен 310, 600 или 910.
SELECT *
FROM Pokup
WHERE Pokup.Nkod IN (310,360,910);
7_2. С помощью проверки NOT IN получить значения данных, не являющихся членами заданного списка.
SELECT *
FROM Pokup
WHERE
Pokup.Nkod NOT IN (310,360,910);
7_3. Выбрать все поля из таблицы "Pokup", при условии, что фамилия клиента должна начинаться с буквы "С".
SELECT *
FROM Pokup
WHERE cfam LIKE
'С*';
Запросы с группировкой
Условие группировки
GROUP BY используется в том случае, если
какое-либо поле содержит повторяющиеся
значения. В этом случае записи с каждым
повторяющимся значением будут выделены
в отдельные группы, к которым можно
применить агрегатные функции. Применение
ключевого слова DISTINCT, записанного
перед аргументом
агрегатной функции к столбцу, приводит
к удалению из него повторяющихся значений.
SELECT cvid, SUM(ntov+ndos)
FROM Pokup
GROUP BY cvid;
9_1. Можно использовать группировку по нескольким полям. Выбрать из таблицы "Pokup" поля "Вид оплаты" и "Код товара", сгруппировать по этим полям, рассчитать сумму стоимости товара и доставки для каждого товара и вида оплаты.
SELECT cvid, nkod, SUM(ntov+ndos)
FROM Pokup
GROUP BY Pokup.Cvid,
Pokup.Nkod;
9_2. применение агрегатной функции к группе
SELECT cvid, SUM(ntov)
FROM Pokup
GROUP BY Pokup.Cvid;
Условие поиска, используемое в предложении HAVING накладываемое на группу, применяется не к отдельным строкам, а к группе в целом. В условие поиска может входить:
На практике
HAVING должно включать как минимум одну
агрегатную функцию.
SELECT Pokup.Cvid, Sum(Ntov+Ndos) AS Цена, Nkod
FROM Pokup
GROUP BY Pokup.Cvid, Nkod
HAVING (Sum([Ntov]+[Ndos])>500);
Сортировка таблицы результатов запроса
Условие упорядочивания позволяет задать порядок следования записей в столбце. В качестве такового задается одно или несколько полей. По умолчанию записи располагаются в порядке возрастания. Для размещения в порядке убывания необходимо указывать ключевое слово DESC.
Использование ключевого поля TOP n , n – числовое значение, позволяет отобрать только n первых строк, причем набор строк зависит от порядка сортировки.
SELECT *
FROM Tovary
ORDER BY nzena;
10_1. Выбрать все поля из таблицы "Tovary" в порядке убывания сорта.
SELECT *
FROM Tovary
ORDER BY nsort DESC;
10_2.
и 10_3. Выбрать
5 первых строк из таблицы Tovary,
отсортировать по убыванию Nkod и выбрать
опять 5 первых строк.
SELECT TOP 5 *
FROM Tovary;
При выборке
из двух таблиц необходимо указывать
список таблиц через запятую и
задать условие связи таблиц по совпадению
одноименных полей (WHERE Pokup.nkod = Tovary.nkod)
Запросы
на создание таблицы,
на добавление, модификацию
и удаление строк
Выборку, полученную в результате запроса можно сохранить в новой таблице. Для этого используется ключевое слово INTO.
SELECT Список Выбираемых Полей INTO новая таблица
FROM Список Таблиц
1. Выбрать поля "Фамилия",
"Дата поступления заявки", "Стоимость
товара" и направить результат в новую
таблицу “tab_new”.
SELECT cfam, dpos, ntov INTO tab_new
FROM Pokup;
Операторы
добавления, изменения
и удаления данных:
INSERT - добавляет новые строки в таблицы
UPDATE – изменяет в таблице существующие строк
DELITE – удаляет
строки из таблиц
Команда INSERT позволяет добавить запись и присвоить ее полям необходимые значения. Требуется определить только ключевые поля и поля, которые не могут принимать пустые значения. Остальные поля можно оставить незаполненными.
VALUES – значения
полей
Формат команды INSERT:
INSERT INTO Имя Таблицы (ИмяПоля1, ИмяПоля2, …)
VALUES
(ЗначениеПоля1, ЗначениеПоля2, …)
2. Добавим в таблицу Pokup" новую запись содержащую фамилию (Кондратенко) и код товара (321).
INSERT INTO Pokup ( cfam, nkod )
VALUES ('Кондратенко
А. В.', 321);
3. Добавим в таблицу "Pokup" запись, используя запрос с параметром (можно не все поля)
INSERT INTO Pokup ( cfam, nkod, cvid, dpos )
VALUES ([cfam],[nkod],[cvid],[dpos]);
Команда UPDATE используется для изменения записей, которые уже существуют в таблице. Можно изменить любое количество записей в таблице, при этом указываются имя таблицы и столбца, в которых меняются данные, а также их новые значения и условия изменения.
Формат команды UPDATE:
UPDATE Имя Таблицы
SET ИмяПоля1=Новое ЗначениеПоля1, ИмяПоля2= Новое ЗначениеПоля2, …
WHERE Условие Отбора Записей
В качестве значения поля можно использовать любое выражение.
4. Изменим инициалы Гребнева, при условии совпадения кода товара
UPDATE tab_new SET cfam = 'Гребенев Н.А.'
WHERE ntov=389;
5. Команда без условия отбора изменит значение всех записей таблицы, в таблице Pokup изменить значения поля Ndos
UPDATE Pokup SET
Ndos = '45';
Команда DELETE очень похожа на UPDATE, за исключением того, что в ней нет опции SET, и все записи, соответствующие условию отбора удаляются, а не модифицируются. Если использовать команду DELETE без условия, то удалятся все данные из таблицы.
Формат команды:
DELETE FROM Имя Таблицы
WHERE Условие Отбора
6. Удалим из таблицы все записи, которые соответствуют условию ntov>500
DELETE *
FROM Pokup
WHERE ntov>500;
Многотабличные
запросы. Выборка из
нескольких таблиц
Для вывода связанной
информации, хранящейся в нескольких
таблицах, в SQL используются операция
соединения отношений.
Соединение отношений имеют два типа синтаксиса:
Синтаксис операции соединения FROM, WHERE:
SELECT [DISTINCT] Список Выбираемых таблиц и Полей
FROM Список таблиц
WHERE
имя таблицы1. имя столбца = имя таблицы2.
имя столбца
Где имя столбца является Первичным ключом таблицы1 и внешним ключом таблицы2
Выберем из таблицы "Pokup" фамилию покупателя и стоимость товара, а из таблицы "Tovary" – наименование товара.