Файл: Российский экономический университет.docx

ВУЗ: Не указан

Категория: Реферат

Дисциплина: Не указана

Добавлен: 30.10.2023

Просмотров: 31

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


6. Cубподразделения SQL
И в интерактивной, и во вложенной формах SQL, имеются многочисленные части, или субподразделения. К сожалению, эти термины не используются повсеместно во всех реализациях. Они подчеркиваются ANSI и полезны на концептуальном уровне, но большинство SQL программ практически не обрабатывающих отдельно, так что они по существу становятся функциональными категориями команд SQL.(Язык Определения Данных) - так называемый Язык Описания Схемы в ANSI, состоит из команд, которые создают объекты (таблицы, индексы, просмотры, итак далее) в базе данных.(Язык Манипулирования Данными) - это набор команд, которые определяют, какие значения представлены в таблицах в любой момент времени.(Язык Управления Данными) состоит из средств, которые определяют, разрешить ли пользователю выполнять определенные действия или нет.

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

7. DML
SQL символизирует собой Структурированный Язык Запросов. Запросы - вероятно, наиболее часто используемый аспект SQL. Фактически, для категории SQL пользователей, маловероятно чтобы кто-либо использовал этот язык для чего-то другого.

Запрос - команда, которую вы даете вашей программе базы данных, и которая сообщает ей, чтобы она вывела определенную информацию из таблиц в память. Эта информация обычно посылается непосредственно на экран компьютера или терминала, которым вы пользуетесь, хотя, в большинстве случаев, ее можно также послать принтеру, сохранить в файле (как объект в памяти компьютера), или представить как вводную информацию для другой команды или процесса.

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

Все запросы в SQL состоят из одиночной команды. Эта команда называется - SELECT (ВЫБОР).

Синтаксис команды:{IDISTINCT | ALL] < value expression>..}/*

[INTO (*embedded only*)]< table reference>.

[WHERE
]

[GROUP BY ..]

[HAVING
]

[ORDER BY [ASC | DESC]..];

Применяются следующие правила:

Если ни ALL, ни DISTINCT - не указаны, принимается - ALL.

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

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

Значения могут быть помещены и удалены из полей, тремя командами языка DML (Язык Манипулирования Данными):

INSERT (ВСТАВИТЬ),

UPDATE (МОДИФИЦИРОВАТЬ),

DELETE (УДАЛИТЬ).

INSERT (ВСТАВКА)

СинтаксисINTO
() VALUES () | ;

INSERT создает одну или больше новых строк в таблице с именем
.

Если используется предложение VALUES, их значения вставляются в таблицу с именем
. Если запрос указан, каждая строка вывода будет вставлена втаблицу с именем
. Если список столбцов отсутствует, все столбцы таблицы
, принимаются в упорядоченном виде.(МОДИФИКАЦИЯ)

Синтаксис


SET { = }.

{[WHERE
];} | {[WHERE CURRENT OF ] ]}

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

При отсутствия предложения WHERE - все строки меняются.
8. DDLпрос язык структурированный

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

Таблицы создаются командой CREATE TABLE. Эта команда создает пустую таблицу - таблицу без строк. Значения вводятся с помощью DML команды INSERT

Команда ALTER TABLE не часть стандарта ANSI; но это - широко доступная, и довольно содержательная форма, хотя ее возможности несколько ограничены. Она используется, чтобы изменить определение существующей таблицы. Обычно, она добавляет столбцы к таблице. Иногда она может удалять столбцы или изменять их размеры, а также в некоторых программах добавлять или удалять ограничения. Типичный синтаксис чтобы добавить столбец к таблице:

ALTER TABLE
ADD ;

Синтаксис для удаления вашей таблицы, если конечно она является пустой, следующая:

DROP TABLE
;

(УДАЛИТЬ)

СинтаксисFROM
{[WHERE
];} | WHERE CURRENT OF



Если предложение WHERE отсутствует, ВСЕ строки таблицы удаляются. Если

предложение WHERE использует предикат
, строки, которые удовлетворяют условию этого предиката
удаляются. Если предложение WHERE имеет аргумент CURRENT OF (ТЕКУЩИЙ) в имени курсора , строка из таблицы
на которую в данный момент имеется ссылка с помощью имени курсора будет удалена. Форма WHERE CURRENT может использоваться только во вложенном SQL, и только с модифицируемыми курсорами.
9. DCD

Операторы DCD, иногда называемые операторами Access Control Language, применяются для осуществления административных функций, присваивающих или отменяющих право (привилегию) использовать базу данных, таблицы в базе данных, а также выполнять те или иные операторы SQL.используется обычно в средах, которые требуют распознавания пользователей и различия между различными пользователями систем. Вообще говоря, администраторы баз данных, сами создают пользователей и дают им привилегии. С другой стороны пользователи которые создают таблицы, сами имеют права на управление этими таблицами. Привилегии - это то, что определяет, может ли указанный пользователь выполнить данную команду. Имеется несколько типов привилегий, соответствующих нескольким типам операций. Привилегии даются и отменяются двумя командами SQL: - GRANT (ДОПУСК) и REVOKE (ОТМЕНА).

Каждый пользователь в SQL базе данных имеет набор привилегий. Это-то, что пользователю разрешается делать (возможно это - файл регистрации, который может рассматриваться как минимальная привилегия). Эти привилегии могут изменяться со временем - новые добавляться, старые удаляться. Некоторые из этих привилегий определены в ANSI SQL, но имеются и дополнительные привилегии, которые являются также необходимыми.

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

В таблице.Пользователь с этой привилегией может выполнять команду UPDATE на таблице. Вы можете ограничить эту привилегию для определенных столбцов таблицы.Пользователь с этой привилегией может выполнять команду DELETE в таблице.Пользователь с этой привилегией может определить внешний ключ, который использует один или более столбцов этой таблицы, как родительский ключ. Иногда, создателю таблицы хочется чтобы другие пользователи могли получить привилегии в его таблице. Обычно это делается в системах, где один или более людей создают несколько (или все) базовые таблицы в базе данных а затем передают ответственность за них тем кто будет фактически с ними работать. SQL позволяет делать это с помощью предложения WITH GRANT OPTION.

GRANT (ПЕРЕДАТЬ ПРАВА)

СинтаксисALL [PRIVILEGES] | {SELECT | INSERT | DELETE | UPDATE [()] | REFERENCES [() l}.. ON
.. TO| .. [WITH GRANT OPTION];

Аргумент ALL (ВСЕ), PRIVILEGES (ПРИВИЛЕГИИ), включает каждую привилегию в список привилегий. PUBLIC (ОБЩИЙ) включает всех существующих пользователей и всех созданных в будущем.

Эта команда дает возможность передать права для выполнения действий в таб-лице с указанным именем. REFERENCES позволяет дать права чтобы использовать столбцы в списке столбцов как родительский ключ для внешнего ключа.

Другие привилегии состоят из права выполнять команды, для которых привилегии указаны их именами в таблице. UPDATE подобен REFERENCES и может накладывать ограничения на определенные столбцы. GRANT OPTION дает возможность передавать эти привилегии другим пользователям.

Также как ANSI предоставляет команду CREATE TABLE чтобы создать таблицу, но не DROP TABLE чтобы от нее избавиться, так и команда GRANT позволяет вам давать привилегии пользователям, не предоставляя способа, чтобы отобрать их обратно. Потребность удалять привилегии сводится к команде REVOKE, фактически стандартному средству с достаточно понятной формой записи.

Синтаксис команды REVOKE - похож на GRANT, но имеет обратный смысл.(ОТМЕНИТЬ ПОЛНОМОЧИЯ)

Синтаксис

REVOKE {ALL [PRIVILEGES] |
..} [ON
] FROM {| ..};

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

Другие операторы SQL

Кроме операторов рассмотренных выше и указанных в приложение А существует множество других, среди них:

средства управления транзакциями (см. таблицу 1)

средства администрирования данных (см. таблицу 2)

программный SQL (см. таблицу 3)

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

Оператор

Смысл

Действие

COMMIT

Завершить транзакцию

Завершить комплексную взаимосвязанную обработку информации, объединенную в транзакцию

ROLLBACK

Откатить транзакцию

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

SAVEPOINT

Сохранить промежуточную точку выполнения транзакции

Сохранить промежуточное состояние БД, пометить его для того, чтобы можно было в дальнейшем к нему вернутся


Таблица 2 - средства администрирования данных

Оператор

Смысл

Действие

ALTER DATABASE

Изменить БД

Изменить набор основных объектов в базе данных, ограничении.

ALTER DBAREA

Изменить область хранения БД

Изменить ранее созданную область хранения

ALTER PASSWORD

Изменить пароль

Изменить пароль для всей базы данных

CREAT DBAREA

Создать БД

Создать новую базу данных, определив основные параметры для нее

CREAT DATABASE

Создать область хранения

Создать новую область хранения и сделать ее доступной для размещения данных

DROP DATABASE

Удалит БД

Удалить существующую базу данных (

DROP DBAREA

Удалить область хранения БД

Удалить соответствующую область


Таблица 3 - программный SQL

Оператор

Смысл

Действие

DECLARE

Определяет курсор для запроса

Задает некоторое имя и определяет связанный с ним запрос к БД, который соответствует виртуальному набору данных

OPEN

Открыть курсор

Формирует виртуальный набор данных, соответствующий описанию указанного курсора и текущего состоянию БД

FETCH

Считать строку из множества строк, определенных курсором

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

CLOSE

Закрыть курсор

Прекращает доступ к виртуальному набору данных, соответствующему указанному курсору

PREPARE

Подготовить оператор SQL к динамическому выполнению

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

EXECUTE

Выполнить оператор SQL ранее подготовленный к динамическому выполнению

Выполняет ранее подготовленный план запроса



Заключение

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

Недаром теперь все чаще название языка понимается как Standard Query Language.

К достоинствам языка SQL можно отнести:

  • реляционный язык БД;

  • операторы манипулирования БД;

  • наличие международных стандартов SQL;

  • средства определения и манипулирования схемой БД;

  • определение ограничений целостности;

  • определение представлений;

  • определение индексов;

  • авторизация доступа к отношениям и их полям;

  • точки сохранения транзакций и откаты;

  • повсеместная распространенность;

  • быстрое обучение в простых случаях;

  • связывание с различными языками программирования;

поддержка ODBC и JDBC.

К недостаткам языка SQL можно отнести:

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

  • недостаточно продуманный механизм неопределенных значений;

сложность формулировок и громоздкость.

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

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

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

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

  1. Глушаков С.В. Базы данных, Харрингтон Джен Л. Проектирование реляционных баз данных

  2. Робинсон С. Microsoft Access 2000, Хомоненко А.Д., Цыганков В.М., Мальцев М.Г., Хомоненко А.Д. Базы данных.

  3. Дейт К. Введение в системы баз данных

  4. Грей Д. Управление данными Журнал «Системы управления базами данных»,

  5. Груббер М. Понимание SQL

  6. Сайт http://www.compress.ru

  7. Сайт http://www.MYSQL.ru

  8. Сайт http://www.SQL.ru