Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СУБД (Лазицкас Екатерина Александровна).docx
Скачиваний:
30
Добавлен:
25.02.2016
Размер:
104.02 Кб
Скачать

Элементы языка sql

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

Язык SQLпоявился в 70-е годы, как одно из таких средств. Его прототипом был языкSEQUEL, разработанныйIBM. Вобрал в себя достоинства реляционной модели, в частности, достоинства математического аппарата реляционной алгебры и исчисления, используя при этом сравнительно небольшое число операторов и относительно простой синтаксис.

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

Использование стандартного языка позволило обеспечить высокую степень независимости разрабатываемых прикладных системы от конкретного типа используемой СУБД. Однако большинство коммерческих реализаций языка SQLимеют большие или меньшие отличия от стандарта. С одной стороны это уменьшает переносимость приложений, а с другой – полезное расширение реализации языка обеспечивают его развитие и со временем включаются в новые редакции стандарта. В настоящее время ни одна система не реализует стандартSQLв полном объеме. Кроме того, во всех диалектах языка имеются возможности, не являющиеся стандартами.

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

Существуют 2 формы языка SQL:

1 – интерактивный язык SQL– используется для заданияSQLзапросов пользователем и получения результатов в интерактивном режиме.

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

Язык SQLимеет 2 составные части:

1 – язык определения данных– дает возможность создания, изменения и удаления различных объектов БД (таблицы, индексы, пользователи). В число дополнительных функций могут быть включены и средства ограничения целостности данных, определение порядка структур и хранения, описание элементов физического уровня хранения данных.

2 – язык манипулирования данными– дает возможность выборки информации из БД и её преобразования.

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

Тип данных строка символов:

Стандарт поддерживает только 1 тип – представление текста CHAR [длина] – представляет строки фиксированной длины (от 1 от 255). Если во вводимое поле фактическое число символов меньше числа определенного параметромдлина, то константа автоматически дополняется справа пробелами до заданного числа символов.

Некоторые реализации языка SQLподдерживают в качестве символьного типа строковый тип переменной длиныVARCHAR[длина]. В отличие от типаCHARпри вводе значения меньше заданного, не производится её дополнения пробелами. В случае если длина не указана явно, она полагается равной одному символу ровно во всех случаях.

Константы, имеющие тип CHARилиVARCHARзаключаются в одинарные кавычки.

Числовые типы данных:

INTEGER - используется для представления целых чисел в диапазоне от -2^31 до 2^31.

SMALLINTиспользуется для представления целых чисел в диапазоне от -2^15 до 2^15.

DECIMAL (точность, [масштаб]) – десятичное число с фиксированной точкой.Точностьопределяет количество значащих цифр в числе.Масштабуказывает максимальное число цифр справа от точки.

NUMERIC (точность, [масштаб]).

FLOAT (точность) – число с плавающей точкой с указанной минимальной точностью.

REAL– число с плавающей точкой, точность определена по умолчанию.

DOUBLE PRECISION– число, аналогичноеREAL, но точность в 2 раза выше.

Тип данных для представления даты и времени:

Является не стандартным и определяется конкретной реализацией СУБД. В наиболее частом случае используется тип DATEиTIME.

Для обозначения пропущенных, неопределенных значений атрибута используется ключевое слово NULL. Это приводит к ряду особенностей, которые нужно учитывать при работе с такими значениями:

1 – в агрегирующих функциях, позволяющих получать сводную информацию, для обеспечения точности и однозначного толкования результатов NULL-значения игнорируются.

2 – условные операторы от булевой двузначной логики расширяется до трехзначной.

3 – все операторы, за исключением оператора конкатенации (объединения) строк, возвращают пустое значение.

4 – для проверки на пустое значение используется оператор IS NULL.

5 – функции преобразования типа, имеющие NULLв качестве аргумента, возвращают пустое значение.