360 likes | 786 Views
Базы данных. Тема 5 . Средства поддержания интерфейса с различными категориями пользователей. Лекция 10 . Основы языка SQL. План лекции. История возникновения и развития языка SQL. Стандарты и расширения Структура языка SQL Структура команд SQL Основные типы данных SQL
E N D
Базы данных Тема 5.Средства поддержания интерфейса с различными категориями пользователей Лекция 10. Основы языка SQL
План лекции • История возникновения и развития языка SQL. Стандарты и расширения • Структура языка SQL • Структура команд SQL • Основные типы данных SQL • Основные компоненты базы данных
Вопрос 1 История возникновения и развития языка SQL. Стандарты и расширения
Название • SQL(Structured Query Language) – стандартный язык запросов для работы с реляционными базами данных • Прототипом SQL является язык SEQUEL (Structured English Query Language), разработанный компанией IBM в середине 70-х в рамках проекта System R
Стандартизация (1/2) • SQL/89 – первый стандарт. Поддерживается чистая реляционная модель. Из-за столкновения интересов производителей оставлен незавершенным, многие аспекты отнесены к разряду "определяемых при реализации" • SQL/92 – устранены основные недостатки SQL/89. Существенно более полный и точный. Изменения в основном количественные (размер порядка 600 стр., в 6 раз длиннее предшественника)
Стандартизация (2/2) • SQL/99 – качественные изменения. Добавлены объектные возможности, введены спецификации событий и триггеров • SQL/2003 –качественные изменения. Более тесная интеграция с Java, интеграция SQL и XML • SQL/2008 –функциональность работы с XML-данными значительно расширена. Появилась возможность совместно использовать в запросах SQL и XQuery
Диалекты • Производители, как правило, поддерживают собственные диалекты SQL ("надмножество подмножества стандарта SQL") • Среди известных процедурных расширений можно упомянуть PL/SQL(Oracle), Transact-SQL(Microsoft SQL Server), ESQL/C (Informix, PostgreSQL)
Вопрос 2 Структура языка SQL
Вопрос 3 Структура команд SQL
Анатомия команд • Команда SQL всегда начинается с действия – слова или группы слов, описывающих выполняемую операцию • Кроме того, команда обычно содержит одну или несколько секций (разделов), уточняющих ее смысл
Примеры команд SELECT Name FROM Student INSERT INTO Student VALUES (1, ‘Иванов’, 7333) DELETE FROM Student
Отличие от процедурных языков • В отличие от команд обычных языков программирования, команды SQL указывают СУБД какие данные необходимо найти, но не сообщают, как это должно происходить • Хорошо написанный запрос SQL читается почти также легко, как и обычное предложение (на английском языке)
Типы лексем • Ключевое слово (зарезервированные слова: названия команд, функций и т.п.) • Идентификатор (имена таблиц, столбцов и др. объектов БД) • Константа (данные, интерпретируемые буквально) • Специальный символ (скобки и т.п.)
Символы-разделители • Пробел • Символ табуляции • Разрыв строки Из последнего следует, что команда не обязательно должна располагаться на одной строке
Комментарии • Однострочные комментарии начинаются с двух дефисов -- • Многострочные – начинаются с последовательности /* и завершаются последовательностью */
Идентификаторы • Идентификаторы могут начинаться с любой буквы английского алфавита или с символа подчеркивания, далее следует любое сочетание букв, цифр и символов подчеркивания • Регистр ввода незащищенных идентификаторов не играет роли – в соответствии со стандартом SQL/92 при выполнении команды они должны преобразовываться к верхнему регистру
Ограничения • Идентификаторы не могут содержать символов-разделителей • Идентификаторы не могут начинаться с цифры • Идентификаторы не должны совпадать с ключевыми словами
Примеры • Правильные: Group7333 g7334 group_7334 • Неправильные: 7333 Table Группа 7334
Защищенные идентификаторы • Идентификаторы, заключенные в двойные кавычки, называют защищенные идентификаторами. Например: "Группа 7334" • Использование защищенных идентификаторов позволяет преодолеть рассмотренные ограничения • Защищенные идентификаторы интерпретируются буквально – т.е. являются регистрозависимыми
Числовые константы Числовые константы (целочисленные и вещественные) задаются в SQL так же, как и большинстве обычных языков программирования: 12 –134 1.5
Строковые константы • Строковые константы представляют собой произвольную совокупность символов, заключенную апострофы (в одинарные кавычки) • Если в самой константе встречается апостроф, при ее определении следует его удвоить • В MS SQL Server при задании строковых констант допустимо использование двойных кавычек • Если строковая константа представлена в кодировке Unicode, то ей должна предшествовать буква N
Примеры 'SQL/92' 'O''Reilly' N'Иванов' "SQL Server"
Вопрос 4 Основные типы данных SQL
Вопрос 5 Основные компоненты базы данных
Данные • Таблица (TABLE) является базовой структурой реляционной модели • Индекс (INDEX) это объект базы данных, создаваемый для повышения производительности выборки данных • Представление (VIEW) это поименованная, динамически поддерживаемая сервером выборка из одной или нескольких таблиц
Действия • Процедура (PROCEDURE) это поименованный, структурированный набор переменных, операторов SQL и языка процедурных расширений, предназначенный для решения конкретной задачи • Триггер(TRIGGER) это хранимая процедура, которая запускается (автоматически выполняется) тогда, когда происходит связанное с триггером событие. Обычно события связаны с выполнением операторов INSERT, UPDATE или DELETE в некоторой таблице
Доступ • Пользователь (USER) объект, обладающий возможностью создавать и использовать другие объекты, а также запрашивать выполнение функций сервера • Роль (ROLE) именованная совокупность привилегий, которые могут быть предоставлены пользователям или другим ролям
Литература • Мамаев Е.В. Microsoft SQL Server 2000. СПб.:БХВ-Петербург, 2001 • Тихомиров Ю. В. Microsoft SQL Server 7.0 М.:БХВ, 1999