Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МДК02.02 Лекция 2_1.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
61.71 Кб
Скачать

Мдк 02.02. Технология разработки и защиты баз данных Лекция № 2.1. Основы sql. Типы данных sql.

План лекции:

  1. Введение в SQL.

  2. Типы данных.

    1. Строки.

    2. Числа.

    3. Логические данные.

    4. Дата и время.

    5. Интервалы.

    6. Специальные типы данных.

  1. Неопределенные значения.

  2. Преобразование типов.

1.Введение в sql

Первые разработки реляционных СУБД были выполнены в компании IBM в начале 1970-х годов. Тогда же был создан язык данных, предна­значенный для работы в этих системах. Экспериментальная вер­сия этого языка называлась SEQUEL - структурированный английский язык запросов. Официальная версия была названа - SQL (Structured Query Language). SQL- это подъязык данных, поскольку СУБД содержит и другие языковые средства.

В 1981 году IВМ выпускает реляционную СУБД SQL/DS. К этому времени компания Relation Software Inc. (сегодня это Oracle Cor­poration) уже выпустила свою реляционную СУБД. Эти продукты сразу же стали стандартом систем, предназначенных для управ­ления базами данных. В состав этих продуктов вошел и SQL, ко­торый фактически стал стандартом для подъязыков данных. Про­изводители других СУБД выпустили свои версии SQL- некоторые расширения SQL, чтобы получить некоторое преимущество для "своей" СУБД. Вместе с тем, начались работы по созданию общепризнанного стандарта SQL.

В 1986 году Американский национальный институт стандартов (American National Standards Institute, ANSI) выпустил официаль­ный стандарт SQL-86, который в 1989 году был обновлен и получил новое название SQL-89. В 1992 году этот стандарт был назван SQL-92. Последней версией стандарта SQL является SQL: 2003.

Любая реализация SQL в конкретной СУБД несколько отлича­ется от стандарта, соответствие которому объявлено произво­дителем. Так, многие СУБД (например, Microsoft Access 2003, PostgreSQL 7.3) поддерживают SQL-92 не в полной мере, а лишь с некоторым уровнем соответствия. Кроме того, они поддержива­ют и элементы, которые не входят в стандарт. Однако разработчи­ки СУБД стремятся к тому, чтобы новые версии их продуктов как можно в большей степени соответствовали стандарту SQL.

ПРИМЕЧЕНИЕ: Будем рассматривать элементы SQL:2003, не все из которых поддерживаются существующими СУБД. Прежде чем применять их на практике, следует убедиться, что они будут работать в ва­шей СУБД. Об этом можно узнать из технической документации. Большинство описанных элементов соответствуют и более ранним версиям SQL, в частности, широко распространенному SQL-92.

SQL задумывался как простой язык запросов к реляционной базе данных, близкий к естественному (точнее, к английскому) языку. Предполагалось, что близость по форме к естественному языку сделает SQL средством, доступным для широкого применения обычными пользователями баз данных, а не только программи­стами. Первоначально SQL не содержал никаких управляющих структур, свойственных обычным языкам программирования. Запросы, синтаксис которых довольно прост, вводились прямо с консоли последовательно один за другим и в этой же последо­вательности выполнялись. Однако SQL так и не стал инструмен­том простых служащих, для них простой SQL оказался слишком сложным и неудобным. На практике с базой данных обычно работают посредством при­ложений, написанных программистами на процедурных языках, например, на С, Visual Basic, Pascal, Java и др. Часто приложения создаются в специальных средах визуальной разработки, таких как Delphi, Microsoft Access, Visual dBase и т. п. При этом разра­ботчику приложения практически не приходится писать коды программ, поскольку за него это делает система разработки. Во всяком случае, работа с программным кодом оказывается мини­мальной. Эти приложения имеют удобный графический интер­фейс, не вынуждающий пользователя непосредственно вводить запросы на языке SQL. Вместо него это делает приложение. Впрочем, приложение может как использовать, так и не исполь­зовать SQL для обращения к базе данных. SQL не единственное, хотя и очень эффективное средство получения, добавления и из­менения данных, и если есть возможность использовать его в приложении, то это следует делать.

Реляционные базы данных могут существовать и действительно существуют вне зависимости от приложений, обеспечивающих пользовательский интерфейс. Если по каким-либо причинам тако­го интерфейса нет, то доступ к базе данных можно осуществить с помощью SQL, используя консоль или какое-нибудь приложе­ние, с помощью которого можно соединиться с базой данных, вве­сти и отправить SQL-запрос (например, Borland SQL Explorer). Язык SQL считают декларативным (описательным) языком, в отличие от языков, на которых пишутся программы. Это озна­чает, что выражения на языке SQL описывают, что требуется сде­лать, а не каким образом.

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

SELECT Фамилия, Должность FROM Сотрудники WHERE Отдел=102;

По-русски данное выражение звучит так:

ВЫБРАТЬ Фамилия, Должность ИЗ Сотрудники ПРИ УСЛОВИИ, ЧТО отдел = 102;

Например, чтобы изменить значение "Иванов" на "Петров" столбца Фамилия, достаточно выполнить следующий запрос:

UPDATE Сотрудники SET Фамилия='Петров' WHERE Фамилия= 'Иванов';

По-русски данное выражение выглядит так:

ОБНОВИТЬ Сотрудники УСТАНОВИВ Фамилия РАВНЫМ 'Петров' ГДЕ Фамилия = 'Иванов';

Не нужно подробно описывать действия, которые должна выполнить СУБД, чтобы выбрать из таблицы указанные в запро­се данные. Вы просто описываете, что желаете получить. В ре­зультате выполнения запроса СУБД возвращает таблицу, содер­жащую запрошенные вами данные. Если в базе данных не оказалось данных, соответствующих запросу, то будет возвраще­на пустая таблица.

Однако последние версии SQL поддерживают операторы управ­ления вычислениями, свойственные процедурным языкам управ­ления (операторы условного перехода и цикла). Поэтому SQL сейчас это не чисто декларативный язык.

Кроме выборки, добавления, изменения и удаления данных из таблиц, SQL позволяет выполнять все необходимые действия по созданию, модификации и обеспечению безопасности баз дан­ных. Все эти возможности распределены между тремя компонен­тами SQL:

DML (Data Manipulation Language - язык манипулирования данными) предназначен для поддержки базы данных: выбора (select), добавления (insert), изменения (update) и удаления (delete) данных из таблиц. Эти операторы (команды) могут со­держать выражения, в том числе и вычисляемые, а также подза­просы - запросы, содержащиеся внутри другого запроса. В об­щем случае выражение запроса может быть настолько сложным, что сразу и не скажешь, что он делает. Однако слож­ный запрос можно мысленно разбить на части, которые легче анализировать. Аналогично, сложные запросы создаются из от­носительно простых для понимания выражений (подзапросов).

DDL (Data Definition Language - язык определения данных) предназначен для создания, модификации и удаления таблиц и всей базы данных. Примерами операторов, входящих в DDL, являются CREATE TABLE (создать таблицу), CREATE VIEW (создать представление), CREATE SHEMA (создать схему), ALTER TABLE (изменить таблицу), DROP (удалить) и др.

. СУБД предусматривает некото­рую защиту данных автоматически. Однако в ряде случаев следует предусмотреть дополнительные меры, предоставляе­мые DCL.

ПРИМЕЧАНИЕ: Ключевые слова в выражениях на языке SQL могут записываться как прописными, так и строчными буквами, в одну или несколько строк. В конце выражения должна стоять точка с запятой. Од­нако во многих системах, обеспечивающих ввод, редактирование и отправку на выполнение SQL-выражений, в случае ввода одного такого выражения допускается не указывать признак окончания. Если же требуется выполнить блок из нескольких SQL-выражений, то они обязательно должны быть разделены точкой с запятой.

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