Автор: Пользователь скрыл имя, 13 Ноября 2011 в 17:04, реферат
Неотъемлемая и важнейшая часть любой системы, применяющей базы данных, языковые средства, обеспечивающие возможность доступа и действий над данными, определения их структур, способов использования и интерпретации. Язык SQL появился в 1970-е годы как одно из таких средств. Его прототип был разработан фирмой IBM и известен под названием SEQUEL (Structured English Query Language). SQL вобрал в себя достоинства реляционной модели, в частности достоинства лежащего в ее основе математического аппарата реляционной алгебры и реляционного исчисления, используя при этом сравнительно небольшое число операторов и относительно простой синтаксис.
Неотъемлемая
и важнейшая часть любой
Говоря о стандарте языка SQL, следует заметить, что большинство его коммерческих реализаций имеют некоторые, большие или меньшие, отличия от стандарта. Это, конечно, ухудшает совместимость систем, использующих различные "диалекты" SQL. Но, с другой стороны, полезные расширения реализаций языка обеспечивают его развитие и со временем включаются в новые редакции стандарта. Учитывая место, занимаемое SQL в современных информационных технологиях, его знание необходимо любому специалисту, работающему в этой области.
Язык работы с данными, который способна воспринимать СУБД, состоит из двух частей: язык определения данных (DDL) и язык манипулирования данными (DML).
DDL используется для определения схемы БД, а язык DML - для чтения и обновления данных, хранимых в базе. Эти языки называются подъязыками данных, т.к. в них нет конструкций для выполнения вычислительных операций, условных операторов и операторов цикла.
Во многих СУБД предусмотрена возможность включения операторов подъязыка данных в программы, написанные на языках программирования высокого уровня. Кроме того предусмотрены средства интерактивного выполнения операторов, вводимых пользователем непосредственно с компьютера.
Унификация полных языков современных профессиональных СУБД достигается за счет внедрения объектно-ориентированного языка четвертого поколения 4GL. Последний позволяет организовывать циклы, условные предложения, меню, экранные формы, сложные запросы к базам данных с интерфейсом, ориентированным как на алфавитно-цифровые терминалы, так и на оконный графический интерфейс (X-Windows, MS-Windows).
Непроцедурный язык SQL (Structured Query Language - структурированный язык запросов) ориентирован на операции с данными, представленными в виде логически взаимосвязанных совокупностей таблиц.
Реализация в
SQL концепции операций, ориентированных
на табличное представление
В нем существуют:
Кроме того, он предоставляет возможность выполнять в этих предложениях:
Создание SQL-запросов
SQL-запрос –
это структурированный язык выбора данных
из одной или нескольких таблиц.
Команда
SELECT
Для формирования запроса используется команда SELECT.
Обобщенный синтаксис:
SELECT [DISTINCT] Список Выбираемых Полей
FROM Список Таблиц
[WHERE Условие Выборки]
[GROUP BY Условие Группировки]
[HAVING Условие ограничения, накладываемое на группу]
[ORDER BY Условие
Упорядочивания]
Обозначения: Необязательные опции заключаются в квадратные скобки. Вертикальная черта обозначает, что может быть выбрана одна из опций, которые стоят слева и справа от черты, но не обе сразу.
По умолчанию в выборку включаются все строки, опция DISTINCT (отличный от других) отображает только неповторяющиеся строки. Применяется в команде SELECT только один раз ко всему списку выбора.
Команда INTO направляет запрос в новую таблицу.
В списке выбираемых
полей необходимо перечислить поля
разделять запятой. В конце запроса ставится
точка с запятой. При выборке всех полей
ставится *.
Дано:
Таблица "Pokup" (Покупатели), с полями:
Фамилия Cfam
Код товара Nkod
Вид оплаты Cvid
Стоимость товара Ntov
Стоимость доставки Ndos
Дата поступления заявки Dpos
Дата и время выполнения Tvip
Pokup
Cfam | Nkod | Cvid | Ntov | Ndos | Dpos | Tvip |
Гребенев А. Н. | 441 | безналичный | 389.00 | 12.00 | 12/04/98 | 13/04/98 10:40:00 |
Степанова Е. Д. | 321 | наличный | 124.00 | 8.00 | 11/04/98 | 13/04/98 09:15:00 |
Гребенев А. Н. | 910 | безналичный | 500.00 | 56.00 | 12/04/98 | 12/04/98 03:10:00 |
Акимченко В. Г. | 310 | безналичный | 560.00 | 20.00 | 13/04/98 | 15/04/98 02:50:00 |
Звягинцев Р. Т. | 910 | безналичный | 125.00 | 23.00 | 15/04/98 | 15/04/98 09:30:00 |
Шараева Е. Н. | 315 | наличный | 875.00 | 100.00 | 10/04/98 | 12/04/98 10:10:00 |
Денисов А. В. | 360 | наличный | 1200.00 | 267.00 | 14/04/98 | 15/04/98 09:30:00 |
Скрынников Е. В. | 321 | безналичный | 498.00 | 19.00 | 12/04/98 | 13/04/98 10:25:00 |
Таблица "Tovary" (Товары):
Код товара Nkod
Наименование товара Cnaim
Цена Nzena
Сорт Nsort
Tovary
Nkod | Cnaim | Nzena | Nsort |
441 | Лак паркетный | 38.90 | 1 |
321 | Кафель отделочный | 124.00 | 1 |
910 | Обои | 23.00 | 2 |
310 | Зеркало | 560.00 | 1 |
315 | Краска | 25 | 3 |
360 | Натяжной потолок | 200 | 1 |
520 | Клеенка | 24 | 1 |
Импортировать заданные таблицы в новую базу данных.
Создать
запросы к таблицам
Pokup и Tovary, используя
команду SELECT
SELECT Cfam, Dpos
FROM Pokup;
SELECT Pokup.*
FROM Pokup;
Итоговые запросы
Список выбираемых полей может содержать "выражения от полей": сумму, разность, произведение, частное от деления значений полей или сложное выражение в комбинации с числовыми константами. Помимо математических операций можно применять агрегатные функции.
В качестве агрегатных функций можно использовать:
SUM() вычисляет сумму всех значений, содержащихся в столбце;
MIN() Минимальное значение;
MAX() Максимальное значение;
AVG() Среднее значение;
SUM() Сумма;
COUNT() подсчитывает количество значений, содержащихся в столбце;
COUNT(*) подсчитывает
количество строк в таблице результатов
запроса.
Новому полю, являющемуся выражением от других полей присваивается имя:
AS
имя поля. Ключевое
слово AS можно использовать для присваивания
псевдонимов столбцам.
SELECT Pokup.Cfam, Pokup.Nkod, Ntov+Ndos AS s_m
FROM Pokup;
3_1. Выбрать поля "Cnaim", "Nzena" из 2 таб, вывести новую цену , увеличенную в 3 раза, название поля «НоваяЦена».
SELECT tovary.Cnaim, tovary.Nzena, nzena*3 AS НоваяЦена
FROM tovary;
SELECT COUNT(cfam) AS kol_vo, AVG(ntov) AS sred, max(ntov) AS m_x, min(ndos) AS m_n
FROM
Pokup;
Применение
ключевого слова DISTINCT, записанного
перед аргументом
агрегатной функции к столбцу, приводит
к удалению из него повторяющихся значений.
Отбор строк с использованием условий поиска
SELECT cfam, nkod, ntov
FROM Pokup
WHERE nkod>400;
Условие может
строиться с использованием логической
операции AND (И), OR
(ИЛИ), NOT (НЕ), включать в себя операции
сравнения: <, <=, >, >=, =.