
- •Введение в sql
- •1. Введение в реляционную базу данных
- •2.Sql: Обзор
- •3. Использования sql для извлечения информации из таблиц
- •4. Использование реляционный и булевых операторов для создания более изощренных предикатов
- •5. Использование специальных операторов в условиях
- •6. Обобщение данных с помощью агрегатных функций
- •7. Формирование выводов запросов
- •8. Запрашивание многочисленных таблиц также как одной
- •9. Объединение таблицы с собой
- •10. Вставка одного запроса внутрь другого
- •11. Соотнесенные подзапросы
- •12. Использование оператора exists
- •13. Использование операторов any, all, и some
- •14. Использование предложения union
- •15. Ввод, удаление и изменение значений полей
- •16. Использование подзапросов с коммандами модификации
- •17. Создание таблиц
- •19. Поддержка целостности ваших данных
- •20. Введение: Представления
- •21. Изменение значей с помощью представлений
- •22. Кто что может делать в базе данных
- •Глава 23 продолжит обсуждение о выводах в sql, таких как сохранение
- •23. Глобальные аспекты sql
- •24. Как данные sql содержатся в упорядоченом виде
- •25. Использование sql с другим языком (вложенный sql)
- •Глава 1
- •Глава 2
- •Глава 3
- •Глава 4
- •Глава 5
- •Глава 6
- •Глава 7
- •Глава 8
- •Глава 9
- •Глава 10
- •Глава 11
- •Глава 12
- •Глава 13
- •Глава 14
- •Глава 15
- •Глава 16
- •Глава 17
- •Глава 18
- •Глава 19
- •Глава 20
- •Глава 21
- •Глава 22
- •Глава 23
- •Глава 24
- •Глава 25
- •Приложение b Тиры данных в sql
- •Приложение c Некоторые общие нестандартные средства sql
- •Intersect и minus
- •Приложение d Синтаксис и команда ссылки
Приложение b Тиры данных в sql
ТИПЫ ДАННЫХ РАСПОЗНАВАЕМЫЕ С ПОМОЩЬЮ ANSI, состоят из символов и
различных типов чисел, которые могут классифицироваться как точные
числа и приблизительные числа. Точные числовые типы - это номера, с
десятичной точкой или без десятичной точки. Приблизительные числовые
типы - это номера в показательной (экспоненциальной по основанию - 10)
записи.
Для все прочих типов, отличия слишком малы чтобы их как-то классифи-
цировать.
Иногда типы данных используют аргумент, который я называю размером
аргумента, чей точный формат и значение меняется в зависимости от
конкретного типа. Значения по умолчанию обеспечены для всех типов, ес-
ли размер аргумента отсутствует.
Типы ANSI
Ниже представлены типы данных ANSI ( имена в круглых скобках - это
синонимы ):
TEXT ТЕКСТ
----------------------------------------------------------------------
CHAR 1 0Строка текста в реализационно-определенном фор-
(или CHARACTER) мате. Размер агрумента здесь это единственное
неотрицательное целое число которое ссылается к
максимальной длине строки. Значения этого типа,
должны быть заключены в одиночные кавычки, нап-
ример 'text'. Две рядом стоящие одиночные кавыч-
ки ('') внутри строки будет пониматься как одна
одиночная кавычка (').
ПРИМЕЧАНИЕ:
Здесь и далее, фраза Реализационно-Определенный или Реализацион-
но-Зависимый, указывает, что этот аргумент или формат зависит от
конкретной программы в которой реализуются данные.
EXACT NUMERIC 1 0ТОЧНОЕ ЧИСЛО
----------------------------------------------------------------------
DEC Десятичное число; то есть, число которое может
(или DECIMAL) иметь десятичную точку. Здесь аргумент размера
имеет две части: точность и масштаб. Масштаб не
может превышать точность. Сначала указывается
точность, разделительная запятая и далее аргу-
мент масштаба.
Точность указывает сколько значащих цифр имеет
число. Максимальное десятичное число составляю-
щее номер - реализационно-определенное значение,
равное или большее чем этот номер. Масштаб ука-
зывает максимальное число цифр справо от деся-
тичной точки. Масштаб = нулю делает поле эквива-
лентом целого числа.
NUMERIC Такое же как DECIMAL за исключением того, что
максимальное десятичное не может превышать аргу-
мента точности.
INT Число без десятичной точки. Эквивалентно DECI-
(или INTEGER) MAL, но без цифр справа от десятичной точки,
то-есть с масштабом равным 0. Аргумент размера
не используется (он автоматически установливает-
ся в реализационно-зависимое значение).
SMALLINT Такое же как INTEGER, за исключением того, что,
в зависимости от реализации, размер по умолчанию
может ( или не может ) быть меньшее чем INTEGER.
APPROXIMATE NUMERIC ПРИБЛИЗИТЕЛЬНОЕ ЧИСЛО
----------------------------------------------------------------------
FLOAT Число с плавающей запятой на основе 10 показа-
тельной функции. Аргумент размера состоит из од-
ного числа определяющего минимальную точность.
REAL Такое же как FLOAT, за исключением того, что ни-
какого аргумента размера не используется. Точ-
ность установлена реализационно-зависимую по
умолчанию.
DOUBLE Такое же как REAL, за исключением того, что реа-
PRECISION лизационно-определяемая точность для DOUBLE PRE-
( или DOUBLE ) CISION должна превышать реализационно-определяе-
мую точность REAL.
Эквивалентные типы данных в других языках
Когда используется вложение SQL в другие языки, значения используе-
мые и произведенные командами SQL, обычно сохраняются в переменных
главного языка( см. Главу 25 ). Эти переменные должны иметь тип данных
совместимый со значениями SQL, которые они будут получать. В дополне-
ниях, которые не являются частью официального SQL стандарта, ANSI
обеспечивает поддержку при использовании вложения SQL в четыре языка:
Паскаль, PL/I, КОБОЛ, и ФОРТРАН. Между прочим, он включает определение
эквивалентов SQL, для данных типов переменных используемых в этих язы-
ках.
Эквиваленты типов данных четырех языков определенных ANSI:
ПЛ/I
SQL ТИП ЭКВИВАЛЕНТ ПЛ/I
--------------------------------------
CHAR CHAR
DECIMAL FIXED DECIMAL
INTEGER FIXED BINARY
FLOAT FLOAT BINARY
КОБОЛ
SQL ТИП ЭКВИВАЛЕНТ КОБОЛА
------------------------------------------
CHAR () PIC X ()
INTEGER PIC S () USAGE
COMPUTTATIONAL
NUMERIC PIC S ( < nines with embedded V > )
DISPLAY SING LEADING SEPERATE
ПАСКАЛЬ
SQL ТИП ЭКВИВАЛЕНТ ПАСКАЛЯ
------------------------------------
INTEGER INTEGER
REAL REAL
CHAR () PACKED ARRAY [1..] OF CHAR
ФОРТРАН
SQL ТИП ЭКВИВАЛЕНТ ФОРТРАНА
------------------------------------------
CHAR CHAR
INTEGER INTEGER
REAL REAL
DOUBLE PRECISION DOUBLE PRECISION