Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Bazy_dannykh.doc
Скачиваний:
11
Добавлен:
07.08.2019
Размер:
293.89 Кб
Скачать
  1. Общие сведения о языке sql

SQL (обычно произносимый как "СИКВЭЛ" или “ЭСКЮЭЛЬ”) символизирует собой Структурированный Язык Запросов. Это - язык, который дает Вам возможность создавать и работать в реляционных базах данных, являющихся наборами связанной информации, сохраняемой в таблицах.

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

Стандарт SQL определяется ANSI (Американским Национальным Институтом Стандартов) и в данное время также принимается ISO (Международной Организацией по Стандартизации). Однако большинство коммерческих программ баз данных расширяют SQL без уведомления ANSI, добавляя различные особенности в этот язык, которые, как они считают, будут весьма полезны.

Точное описание особенностей языка приводится в документации на используемую СУБД.

  1. Состав языка sql

Язык SQL предназначен для манипулирования данными в реляционных базах данных, определения структуры баз данных и для управления правами доступа к данным в многопользовательской среде.

Поэтому, в язык SQL в качестве составных частей входят:

  • язык манипулирования данными (Data Manipulation Language, DML)

  • язык определения данных (Data Definition Language, DDL)

  • язык управления данными (Data Control Language, DCL).

Язык манипулирования данными состоит из 4 основных команд:

SELECT (выбрать)

INSERT (вставить)

UPDATE (обновить)

DELETE (удалить).

Язык определения данных используется для создания и изменения структуры базы данных и ее составных частей - таблиц, индексов, представлений (виртуальных таблиц), а также триггеров и сохраненных процедур. Основными его командами являются:

CREATE DATABASE (создать базу данных)

CREATE TABLE (создать таблицу)

CREATE INDEX (создать индекс)

ALTER DATABASE (модифицировать базу данных)

ALTER TABLE (модифицировать таблицу)

ALTER INDEX (модифицировать индекс)

DROP DATABASE (удалить базу данных)

DROP TABLE (удалить таблицу)

DROP INDEX (удалить индекс)

Язык управления данными используется для управления правами доступа к данным и выполнением процедур в многопользовательской среде. Более точно его можно назвать “язык управления доступом”. Он состоит из двух основных команд:

GRANT (дать права)

REVOKE (забрать права)

Пример:

SELECT * FROM country Получить все строки таблицы Country

SELECT * FROM country

WHERE currency = “Dollar”

Получить подмножество строк таблицы Country, удовлетворяющее условию Currency = “Dollar”

  1. Команды языка манипулирования данными: выборка данных

Оператор выборки записей имеет формат вида:

SELECT [ALL|DISTINCT] <список данных>

FROM<список таблиц>

[WHERE<условие выборки>]

[GROUP BY<имя столбца> [, <имя столбца>]…]

[HAVING<условие поиска>]

[ORDER BY<спецификация>[, <спецификация>]…]

Это наиболее важный оператор из всех операторов SQL функциональные возможности его огромны. Рассмотрим основные из них.

Оператор SELECT позволяет производить выборку и вычисление над данными из одной или нескольких таблиц. Результатом выполнения оператора является ответная таблица, которая может иметь (ALL), или не иметь (DISTINCT) повторяющиеся строки. По умолчанию в ответную таблицу включаются все строки, в том числе и повторяющиеся. В отборе данных участвуют записи одной или нескольких таблиц, перечисленных в списке оператора FROM.

Список данных может содержать имена столбцов, участвующих в запросе, а также выражения над столбцами. В простейшем случае в выражениях можно записывать имена столбцов, знаки арифметических операций (+,-,*,/), константы и круглые скобки. Если в списке данных записано выражение, то наряду с выборкой данных выполняются вычисления, результаты которого попадают в новый (создаваемый) столбец ответной таблицы. При использовании в списках данных имен столбцов нескольких таблиц для указания принадлежности столбца некоторой таблице применяют конструкцию вида: <имя таблицы>.<имя столбца>.

Операнд WHERE задает условие, которым должны удовлетворять записи в результирующей таблице. Выражение <условие выборки> является логическим. Его элементами могут быть имена столбцов, операции сравнения, арифметические операции, логические связки (И, ИЛИ, НЕТ), скобки, специальные функции LIKE, NULL, IN и т.д.

Операнд GROUP BY позволяет выделять в результирующем множестве записей группы. Группой являются записи с совпадающими значениями в столбцах, перечисленных за ключевыми словами GROUP BY. Выделение групп требуется для использования в логических выражениях операндов WHERE и HAVING, а также для выполнения операций (вычислений) над группами.

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

Операнд HAVING действует совместно с операндом GROUP BY и используется для дополнительной селекции записей во время определения групп. Правила записи знак <условие поиска> аналогичны правила формирования <условия выборки> операнда WHERE.

Операнд ORDER BY задает порядок сортировки результирующего множества. Обычно каждая <спецификация> аналогично соответствующей конструкции оператора GREATE INDEX и представляет собой пару вида <имя столбца>[ASC|DESC].

Замечание.

Оператор SELECT может иметь и другие более сложные синтаксические конструкции, которые мы подробно рассматривать не будем, а поясним их смысл.

Одной из таких конструкций, например, является так называемые подзапросы.

Они позволяют формировать вложенные запросы, когда результаты одного оператора SELECT используются в логическом выражении условия выборки операнда WHERE другого оператора SELECT.

Вторым примером более сложной формы оператора SELECT является оператор, в котором отобранные записи в дальнейшем предполагается модифицировать (конструкция FOR UPDATE OF). СУБД после выполнения такого оператора обычно блокирует (защищает) отобранные записи от модификации их другими пользователями.

Еще один случай специфического использования оператора SELECT – выполнение объединений результирующих таблиц при выполнении нескольких операторов SELECT (операнд UNION).

Пример. Выбор записей.

Для таблицы EMP, имеющей поля: NAME (имя), SAL (зарплата), MGR (руководитель) и DEPT (отдел), требуется вывести имена сотрудников и размер их зарплаты, увеличенный на 100 единиц. Оператор выбора можно записать следующим образом:

SELECT name, sal+100

FROM emp.

Пример. Выбор с условием.

Вывести названия таких отделов таблицы EMP, в которых в данный момент отсутствуют руководители. Оператор SELECT для этого запроса можно записать так:

SELECT dept

FROM emp

WHERE mgr is NULL.

Пример. Выбор с группированием.

Пусть требуется найти минимальную и максимальную зарплаты для каждого из отделов (по таблице EMP). Оператор SELECT для этого запроса имеет вид:

SELECT dert, MIN (sal), MAX (sal)

FROM emp

GROUP BY dept.

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