рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Язык реляционных баз данных SQL

Язык реляционных баз данных SQL - раздел Информатика, ИНФОРМАЦИЯ И ИНФОРМАТИКА. АЛГЕБРА ЛОГИКИ. СИСТЕМЫ СЧИСЛЕНИЯ Из Рассмотрения Реляционной Модели Известно, Что Двумя Фундаментальными Языка...

Из рассмотрения реляционной модели известно, что двумя фундаментальными языками запросов к реляционным базам данных являются языки реляционной алгебры и реляционного исчисления. При всей своей строгости и теоретической обоснованности, эти языки не стали стандартными языками реляционных СУБД. Юридическим и фактическим стандартом стал язык SQL (Structured Query Language – «язык структурированных запросов»).

 

SQL представляет собой некоторую комбинацию реляционного исчисления кортежей и реляционной алгебры, и был разработан в середине 70-х годов в компании IBM в рамках проекта экспериментальной реляционной СУБД System R. Деятельность по стандартизации SQL началась практически одновременно с появлением его первых коммерческих реализаций. В 1986 г. был принят стандарт ANSI, а в 1987 г. Этот стандарт был одобрен международной организацией по стандартизации (ISO). Время от времени выпускается пересмотренная версия этого стандарта; наиболее свежее обновление было выпущено в 2008 г. Формальное название стандарта SQL – ISO/IEC 9075 «Database Language SQL».

 

Несмотря на наличие международного стандарта, многие производители СУБД вносят изменения в язык SQL, тем самым отступая от стандарта. В результате у разных производителей СУБД в ходу разные диалекты SQL, в общем случае между собой несовместимые. В настоящее время проблема совместимости решается так: описание языка имеет модульную структуру, основная часть стандарта вынесена в раздел «SQL/Foundation», все остальные выведены в отдельные модули, остался только один уровень совместимости – «Core», что означает поддержку этой основной части. Поддержка остальных возможностей оставлена на усмотрение производителей СУБД.

 

При всех своих изменениях, SQL остаётся единственным механизмом связи между прикладным программным обеспечением и базой данных. В тоже время, современные СУБД предоставляют пользователю развитые средства визуального построения запросов. Хотя SQL и задумывался как средство работы конечного пользователя, в конце концов, он стал настолько сложным, что превратился в инструмент профессионального программиста.

 

Все операторы, составляющие основу SQL с момента его появления, можно разделить на следующие группы:

· операторы определения данных (Data Definition Language – DDL)

o CREATE создает объект базы данных

o ALTER изменяет объект

o DROP удаляет объект

· операторы манипуляции данными (Data Manipulation Language – DML)

o SELECT считывает данные, удовлетворяющие заданным условиям

o INSERT добавляет новые данные

o UPDATE изменяет существующие данные

o DELETE удаляет данные

· операторы определения доступа к данным (Data Control Language – DCL)

o GRANT предоставляет пользователю (группе) разрешения на определенные операции с объектом

o REVOKE отзывает ранее выданные разрешения

o DENY задает запрет, имеющий приоритет над разрешением

· операторы управления транзакциями (Transaction Control Language – TCL)

o COMMIT применяет транзакцию.

o ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции.

o SAVEPOINT делит транзакцию на более мелкие участки.

 

Не вдаваясь в детали синтаксиса, в качестве примера приведем сценарий создания базы данных «Поставщики и детали», схема которой была рассмотрена ранее.

 

USE master

IF DB_ID (N'Поставщики и детали') IS NOT NULL

DROP DATABASE [Поставщики и детали]

GO

CREATE DATABASE [Поставщики и детали]

GO

USE [Поставщики и детали]

CREATE TABLE S

(

Sno INT IDENTITY(1,1) NOT NULL,

Sname VARCHAR(20) NOT NULL,

Status INT,

City VARCHAR(15)

)

CREATE TABLE P

(

Pno INT IDENTITY(1,1) NOT NULL,

Pname VARCHAR(20) NOT NULL,

Color CHAR(10),

Weight REAL,

City VARCHAR(15)

)

CREATE TABLE SP

(

Sno INT NOT NULL,

Pno INT NOT NULL,

Qty INT

)

ALTER TABLE S

ADD

CONSTRAINT PK_S PRIMARY KEY (Sno),

CONSTRAINT UK_S UNIQUE (Sname)

ALTER TABLE P

ADD

CONSTRAINT PK_P PRIMARY KEY (Pno)

ALTER TABLE SP

ADD

CONSTRAINT PK_SP PRIMARY KEY (Sno, Pno),

CONSTRAINT FK_SP_S FOREIGN KEY (Sno) REFERENCES S (Sno),

CONSTRAINT FK_SP_P FOREIGN KEY (Pno) REFERENCES P (Pno)

 

К приведенному сценарию можно дать следующие комментарии.

1) Сценарий написан на диалекте SQL компании Microsoft (для Microsoft SQL Server), известном под названием Transact-SQL (T-SQL).

2) Сценарии состоит из трех пакетов. Конец пакета отмечается командой GO.

3) Специальная команда USE меняет контекст на указанную базу данных.

4) Если идентификационный номер базы данных «Поставщики и детали» не NULL, то такая база данных уже существует и ее надо предварительно уничтожить. Для этой цели в начале сценария используется оператор IF.

5) Свойство IDENTITY используется для получения автоматически увеличивающегося идентификационного номера поставщика и детали.

6) Операторы CREATE TABLE и ALTER TABLE, включат в себя такие ограничения целостности, как ограничение целостности NULL, ограничение первичного ключа (PRIMARY КЕУ), ограничение уникальности (UNIQUE), ограничение внешнего ключа (FOREIGN КЕУ).

7) Сценарий можно расширить, добавив значения по умолчанию (DEFUULT), ограничения общего вида (CHECK) и команды импорта файла данных в таблицы базы данных (BULK INSERT).

 

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

 

[ WITH общее_табличное_выражение]

SELECT [ DISTINCT | ALL ] [ TOP выражение [ PERCENT ] ] { * | список_выбора } [ INTO новая_таблица ]

[ FROM список_табличных_источников ]

[ WHERE условие_поиска ]

[ GROUP BY group_by_выражение ]

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

[ ORDER BY order_by_выражение [ ASC | DESC ] ]

 

Предложения, составляющие оператор SELECT, имеют следующий смысл:

· WITH задает временно именованный результирующий набор, который используется для организации рекурсивного запроса.

· SELECT определяет столбцы, возвращаемые запросом.

· DISTINCT указывает на то, что только уникальные строки могут появляться в результирующем наборе.

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

· TOP указывает на то, что только заданное число или процент строк будет возвращен из результирующего набора.

· * указывает на то, что все столбцы из всех таблицв предложении FROM должны быть возвращены.

· INTO создает новую таблицу и вставляет в нее строки результата выполнения запроса.

· FROM указывает таблицы или табличные выражения, которые используются в операторе SELECT.

· WHERE определяет условия поиска строк, возвращаемых запросом.

· GROUP BY задает группы, в которые должны быть помещены строки вывода.

· HAVING определяет условие поиска для группы.

· ORDER BY указывает порядок сортировки для столбцов, возвращаемых оператором SELECT.

 

Из перечисленных предложений оператора SELECT наиболее часто используются SELECT, FROM и WHERE. Если исключить все опции предложения SELECT, то получается такая простая конструкция:

 

SELECT { * | список_выбора }

FROM список_табличных_источников

WHERE условие_поиска

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

 

1) Получить имена поставщиков, которые поставляют деталь под номером 2.

 

SELECT DISTINCT S.Sname

FROM S

WHERE EXISTS ( SELECT *

FROM SP

WHERE SP.Sno = S.Sno AND SP.Pno = 2)

 

2) Получить имена поставщиков, которые поставляют, по крайней мере, одну красную деталь.

 

SELECT DISTINCT S.Sname

FROM S

WHERE S.Sno IN ( SELECT SP.Sno

FROM SP

WHERE SP.Pno IN ( SELECT P.Pno

FROM P

WHERE P.Color = 'Красный'))

 

3) Получить имена поставщиков, которые поставляют все типы деталей.

 

SELECT DISTINCT S.Sname

FROM S

WHERE NOT EXISTS (SELECT *

FROM P

WHERE NOT EXISTS (SELECT *

FROM SP

WHERE SP.Sno = S.Sno AND SP.Pno = P.Pno))

 

4) Получить номера поставщиков, поставляющих, по крайней мере, все те детали, которые поставляет поставщик под номером 2.

 

5) Получить все пары номеров поставщиков, размещенных в одном городе

 

SELECT A.Sno AS SA, B.Sno AS SB

FROM S AS A, S AS B

WHERE A.City = B.City AND A.Sno < B.Sno

 

6) Получить имена поставщиков, которые не поставляют деталь под номером 2.

 

SELECT DISTINCT S.Sname

FROM S

WHERE NOT EXISTS (SELECT *

FROM SP

WHERE SP.Sno = S.Sno AND SP.Pno = 2)

 

– Конец работы –

Эта тема принадлежит разделу:

ИНФОРМАЦИЯ И ИНФОРМАТИКА. АЛГЕБРА ЛОГИКИ. СИСТЕМЫ СЧИСЛЕНИЯ

Ассоциация московских вузов... Московский государственный технический университет...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Язык реляционных баз данных SQL

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

ПОНЯТИЕ ИНФОРМАЦИИ
  Слово «Информация» происходит от латинского слова informatio – сведение, разъяснение, ознакомление. Строгого научного определения информации в настоящее время не су

АЛГЕБРА ЛОГИКИ
Высказывание – повествовательное предложение, относительно которого определенно и объективно можно сказать истинно оно или ложно (ЛОЖЬ или ИСТИНА, 0 или 1, TRUE или FALSE). Алгебра логики

СИСТЕМЫ СЧИСЛЕНИЯ
  Под системой счисления понимается совокупность приемов и правил представления чисел в виде конечного числа символов. Система счисления имеет свой алфавит – упорядоченный набор симво

НА СИНТАКСИЧЕСКОМ УРОВНЕ
  Существуют меры информации синтаксического, семантического и прагматического уровней. В нашем курсе нас будет интересовать прежде всего мера информации синтаксического уровня.

ИСТОРИЧЕСКАЯ СПРАВКА
  Компьютер – это электронное устройство для автоматизации процессов создания, хранения, воспроизведения, обработки и транспортировки данных. Компьютер представляет собо

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

Клавиатура.
Клавиатура представляет собой набор переключателей, объединенных в матрицу. При нажатии на клавишу, контроллер, установленный в самой клавиатуре, определяет координаты нажатой клавиши и в виде скэн

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

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

Матричные принтеры.
Изображение получается как совокупность точек, образующихся на бумаге как следы от удара по красящей ленте иголок печатающей головки. Количество иголок

Струйные принтеры.
В одно и то же время независимо друг от друга HP и Canon разработали технологию термической печати с помощью чернил. Они вывели на рынок свои разработки под марками IncJet — термоструйная (НР) и Bu

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

Реляционная модель данных
Основоположником теории реляционных баз данных является британский учёный Эдгар Кодд, который в 1970 году опубликовал первую работу по реляционной модели данных. Наиболее распространенная трактовка

UNION|INТERSECT|MINUS|TIМES|JOIN|DIVIDEBY
По приведенной грамматике можно сделать следующие замечания. 1) Реляционные операторы UNION, INTERSECT и MINUS требуют, чтобы отношени

RANGE OF SY IS
(SX) WHERE SX.City = 'Смоленск', (SX) WHERE EXISTS SPX (SPX.Sno = SX.Sno AND SPX.Pno = 1)   Здесь переменная корте

Проектирование реляционных баз данных
При проектировании базы данных решаются две основные проблемы: · Каким образом отобразить объекты предметной области в абстрактные объекты модели данных, чтобы это отображение не противоре

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги