Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
L12_SQL.doc
Скачиваний:
54
Добавлен:
15.02.2016
Размер:
159.74 Кб
Скачать

Лекция 12. Введение в sql

Цель занятия: усвоить знания о назначении языка SQL; об основных командах языка.

План

  1. Назначение языка, классификация операторов.

  2. Структура команды языка.

  3. Работа SQL со множеством пользователей.

1. Назначение языка, классификация операторов

Большинство современных СУБД содержат средства генерации запросов, позволяющих изменять данные (и др. операции). Один из способов манипулирования данными – QBE (queries by example), запрос по образцу. Это средство для визуального связывания таблиц и выбора полей, которые надо отобразить в результате выполнения запроса.

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

Язык SQL был создан в начале 70-х годов в результате исследовательского проекта IBM, целью которого была разработав языка манипуляции реляционными данными. Первоначально он назывался SEQUEL (Structured English Query Language), затем — просто SQL. Официальный стандарт SQL был опубликован ANSI (American National Standards Institute - Американский национальный институт стандартизации) в 1981 году, и это наиболее часто используемая ныне реализация SQL. Данный стандарт был расширен в 1989 и 1992 годах, поэтому последний стандарт SQL носит название SQL92. В настоящее время ведется работа над стандартом SQL3, содержащим некоторые объектно-ориентированные расширения.

Существует три уровня соответствия стандарту ANSI: начальный, промежуточный и полный. Многие производители серверных СУБД такие как IBM, Informix, Microsoft, Oracle и Sybase, применяют собственные реализации SQL, основанный на стандарте ANSI (отвечающие как минимум начальному уровню соответствия стандарту) и содержащие некоторые расширения, специфические для той или иной СУБД.

Классификация операторов языка

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

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

Data Definition Language (DDL) содержит операторы, позволяющие создавать, изменять и уничтожать базы данных и объекты внутри них (таблицы, представления и др)

Create Table - Добавление новой таблицы к базе

Drop Table - Удаление таблицы из базы данных

Alter Table - Изменение структуры имеющейся таблицы

Create View - Добавление нового представления к базе данных

Drop View - Удаление представления из базы данных

Create Index - Создание индекса для данного поля

Drop Index - Удаление существующего индекса

CREATE SCHEMA - Создание новой схемы в базе данных

Data Manipulation Language (DML) содержит операторы, позволяющие выбирать, добавлять, удалять и модифицировать данные. Обратите внимание на то, что эти операторы не обязательно должны завершать транзакцию, внутри которой or. вызваны.

Insert - Добавление строк к таблице

Delete - Удаление строк из таблицы

Update - Изменение данных

Иногда оператор SELECT относят к отдельной категории, называемой Data Query Language (DQL).J

Data Control Language (DCL), иногда называемые операторами Access Control Language, применяются для осуществления административных функций, присваивающих или отменяющих право (привилегию) использовать базу данных, таблицы в базе данных, а также выполнять те или иные операторы SQL.

Grant - Присвоение привилегии.

Revoke - Отмена привилегии.

Транзакция – группа операций над данными, которые либо выполняются, либо отменяются все вместе. Завершение транзакции означает, что все ее операции завершены, и результат их работы сохранен в базе данных. Откат транзакции означает, что все уже выполненные операции, входящие в состав транзакции, отменяются, и все объекты базы данных возвращаются в исходное состояние (для этого СУБД ведет журнал транзакций). Транзакция может состоять из нескольких вложенных транзакций. Некоторые СУБД поддерживают двухфазное завершение транзакций – процесс, позволяющий осуществлять транзакции над несколькими БД, относящимися к одной и той же СУБД. Для поддержки распределенных транзакций (над базами данных, управляемых разными СУБД) используются мониторы транзакций.

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