Тема I. Введение в язык SQL.
SQL это язык структурированных запросов, он является стандартным языком управления реляционными базами данных архитектуры «Клиент-сервер». Основное достоинство SQL заключается в том, что он унифицирован: стандартный набор инструкций можно использовать в любой системе управления базами данных, которая совместима с SQL.
Язык SQL был создан в начале 70-х годов в результате исследовательского проекта IBM, целью которого было создание языка манипуляции реляционными данными. Официально стандарт был опубликован ANSI (Национальный институт стандартизации США) в 1986 году (это наиболее часто используемая ныне реализация SQL).
ANSI-это организация, которая занимается созданием и обновлением научных и инженерных стандартов. ANSI стандарт SQL был принят в качестве всемирного стандарта отделом ООН Международной организации стандартизации (ISO) в 1997 году.
SQL – язык, ориентированный на работу с множествами, в этом языке отсутствуют алгоритмические конструкции, такие как метки, операторы цикла, условные переходы и др. Он не включает ни средств управления выполнением программы (ветвлений и циклов), ни средств для создания форм или отчетов. Функции управления реализуются в языках программирования. Реализация ANSI/ ISO SQL не зависит от используемого системного языка.
ANSI SQL включает набор стандартных команд, сгруппированных по шести категориям:
Язык SQL- состоит из набора операторов, которые можно разделить на несколько категорий:
· Data Definition Language (DDL) – язык определения данных, позволяющий создавать, удалять и изменять объекты в базе данных;
· Data Manipulation Language (DML) – язык управления данными, позволяющий модифицировать, добавлять и удалять данные в имеющихся объектах базы данных;
· Data Control Language (DCL) – язык, используемый для управления пользовательскими привилегиями;
· Transaction Control Language (TCL) - язык для управления изменениями, сделанными группами операторов;
· Cursor Control Language (CCL)- операторы для определения курсора , подготовки операторов SQL к выполнению и некоторых других операций.
SQL непроцедурный язык, используемый для управления данными реляционных СУБД. Термин «непроцедурный» означает, что на данном языке можно сформулировать, что нужно сделать с данными, но нельзя проинструктировать, как именно это следует сделать. Иными словами в этом языке отсутствуют алгоритмические конструкции, такие как метки, операторы цикла, условные переходы и др.
Данный стандарт был расширен в 1989 и 1992 годах, поэтому последний стандарт SQL носит название SQL92. В настоящее время ведется работа над стандартом SQL3, содержащим некоторые объектно-ориентированные расширения.
Существует три уровня соответствия стандарту ANSI-начальный, промежуточный и полный. Многие производители серверных СУБД, такие как IBM, Informix, Microsoft, Oracle и Sybase, применяют собственные реализации SQL основанные на стандарте ANSI (отвечающие как минимум начальному уровню соответствия стандарту) и содержащие некоторые расширения, специфические для данной СУБД.
Более подробную информацию о соответствии стандарту версии SQL, используемой в конкретной СУБД, можно найти в документации, поставляемой с этой СУБД.
Учебная база данных
STUDENT (Студент)
STUDENT ID | SURNAMEAMEME | NAME | STIPEND | KURS | CITY | BIRTHDAY | UNIV ID |
Иванов | Иван | Орел | 3/12/1982 | ||||
Петров | Петр | Курск | 1/12/1980 | ||||
Сидоров | Вадим | Москва | 7/06/1979 | ||||
Кузнецов | Борис | Брянск | 8/12/1981 | ||||
Зайцева | Ольга | Липецк | 1/05/1981 | ||||
Павлов | Андрей | Воронеж | 5/11/1979 | ||||
Котов | Павел | Белгород | NULL | ||||
Лукин | Артем | Воронеж | 1/12/1981 | ||||
Петров | Антон | NULL | 5/08/1981 | ||||
Белкин | Вадим | Воронеж | 7/01/1980 |
student_id — числовой код, идентифицирующий студента,
surname — фамилия студента,
name — имя студента,
stipend — стипендия, которую получает студент,
kurs — курс, на котором учится студент,
city — город, в котором живет студент,
birthday — дата рождения студента,
UNIV id —числовой код, идентифицирующий университет, в котором учится студент.
Выборка данных оператор SELECT
ПростейшиеSELECT-запросы
Оператор SELECT(выбрать) языка SQL является самым важным и самым часто используемым оператором. Он предназначен для выборкиинформации из таблиц базы данных. Упрощенный синтаксис оператора select выглядит следующим образом.
select [distinct] <список атрибутов> FROM <список таблиц>
[where<условие выборки>]
[ORDER BY <список атрибутов>]
[group by <список атрибутов>]
[HAVING <условие>]
[UNION <выражение с оператором SELECT>];
В квадратных скобках указаны элементы, которые могут отсутствовать в запросе.
Ключевое слово SELECTсообщает базе данных, что данное предложение является запросом на извлечениеинформации. После слова SELECTчерез запятую перечисляются наименования полей(список атрибутов), содержимое которых запрашивается.
Обязательным ключевым словом в предложении-запросе selectявляется слово from(из). За ключевым словом fromуказывается список разделенных запятыми имен таблиц, из которых извлекается информация.
Например,
SELECTNAME, SURNAME FROMSTUDENT;
Любой SQL-запрос должен заканчиваться символом «;» (точка с запятой).
Приведенный запрос осуществляет выборку всех значений полей NAME и SURNAME из Таблицы STUDENT.
Его результатом является таблица следующего вида:
NAME | SURNAME |
Иван | Иванов |
Петр | Петров |
Вадим | Сидоров |
Борис | Кузнецов |
Ольга | Зайцева |
Андрей | Павлов |
Павел | Котов |
Артем | Лукин |
Антон | Петров |
Вадим | Белкин |
Порядок следования столбцов в этой таблице соответствует порядку полей name и surname, указанному в запросе, а не их порядку во входной таблице student.
Если необходимо вывести значения всехстолбцов таблицы, то можно вместо перечисления их имен использовать символ «*».
SELECT * FROMSTUDENT;
В данном случае результатом выполнения запроса будет вся таблица student.
Запрос «Получить список названий городов, где проживают студенты, сведения о которых находятся в таблице student», можно записать в следующем виде.
SELECTCITY FROMSTUDENT;
Его результатом будет таблица
CITY
Орел
Курск
Москва
Брянск
Липецк
Дата добавления: 2015-08-26; просмотров: 690;