W Cat - SQL за 24 часа
- Название:SQL за 24 часа
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
W Cat - SQL за 24 часа краткое содержание
SQL за 24 часа - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
DATE TIME
INTERVAL ТIMESTAMP
Тип данных TIMESTAMP состоит из следующих элементов:
YEAR
MONTH
DAY
HOUR
MINUTE
SECOND
Элемент SECOND содержит также доли секунды. Диапазон его изменения от 00.000 до 61.999, хотя отдельные реализации SQL могут поддерживать другой диапазон.
Запомните, что каждая реализация SQL может иметь свои собственные типы данных для значений дат и времени. Приведенные выше типы данных и элементы являются стандартами, которых должны придерживаться все производители реализаций SQL, но мы обращаем ваше внимание на то, что большинство реализаций предлагают свои типы данных для хранения значений даты и времени, отличающиеся как по форме, так и по способу внутреннего представления хранимых данных.
Для типов данных даты и времени длина обычно пользователем не задается. Немного позже мы обсудим представление дат подробнее, и вы узнаете о том, в каком виде хранят значения дат некоторые реализации, как работать со значениями дат и времени с помощью функций преобразования и на примерах вам будет показано, как используются значения дат и времени на практике.
Буквальное значение - это последовательность символов (например, фамилия или телефонный номер), явно заданная пользователем или программой. Буквальные значения могут представлять данные любого из обсуждавшихся выше типов, но в данном случае значение предполагается известным. Значения в столбцах обычно не предполагаются заранее известными, поскольку в разных строках таблицы обычно хранят разные значения.
Обычно для буквальных значений тип данных не объявляется - просто указывается нужная строка. Вот несколько примеров:
'Hello'
45000
"45000"
3.14
' 1 ноября 1997'
Здесь буквенно-числовые строки заключены в одиночные кавычки, а, например, значение 45000 - нет. Обратите также внимание на то, что второе значение 45000 заключено в обычные кавычки. Вообще говоря, строки символов требуют заключения их в кавычки, а числовые значения - нет. Позже вы узнаете, как используются буквальные значения в запросах к базе данных.
Как вы уже знаете из урока 1, значение NULL означает пропущенное значение или поле в строке данных, которому не было присвоено значения. Значение NULL используется в SQL почти повсюду - при создании таблиц, условий поиска в запросах и даже в буквальных строках.
Для значения NULL можно использовать следующие две формы ссылки на него.
• NULL (ключевое слово NULL)
• ' ' (два знака одиночной кавычки и ничего между ними)
Следующая строка не представляет значения NULL, а представляет строку, содержащую символы N-U-L-L:
'NULL'
Значения типа BOOLEAN (логические значения) могут принимать значения TRUE (истина), FALSE (ложь) или NULL. Значения типа BOOLEAN используются для сравнения данных. Например, если в запросе заданы несколько критериев, каждое из заданных условий оценивается и им присваиваются значения TRUE, FALSE или NULL. Соответствующие данные включаются в ответ на запрос только тогда, когда для всех условий возвращается логическое значение TRUE. Если же среди возвращенных значений будут либо FALSE, либо NULL, данные в ответ на запрос могут не"включаться.
Рассмотрим следующий пример.
WHERE NAME = 'SMITH'
Такая строка вполне может быть одним из условий в запросе. Тогда условие оценивается для каждой строки данных той таблицы, которой адресован запрос, и если оказывается, что значением NAME является SMITH, условие получает значение TRUE, и запрос возвращает ассоциированные с соответствующей записью данные.
Пользовательский тип данных - это тип данных, определяемый пользователем. Пользовательские типы данных дают возможность строить свои типы данных на основе уже имеющихся. Для создания такого типа данных используется оператор CREATE TYPE. Например,
CREATE TYPE PERSON AS OBJECT
(NAME VARCHAR2(30),
SSN VARCHAR2(9));
Ссылаться на определенный таким образом пользовательский тип данных можно так:
CREATE TABLE EMP_PAY (EMPLOYEE PERSON, SALARY NUMBER(10,2), HIRE_DATE DATE);
Обратите внимание на то, что для первого столбца с именем EMPLOYEE задан тип данных PERSON, являющийся пользовательским типом данных, созданным в первом примере.
ALTER DOMAIN MONEY_D
ADD CONSTRAINT MONEY__CON1
CHECK (VALUE > 5};
Сослаться на домен можно так:
CREATE TABLE EMP__PAY
(EMP_ID NUMBER(9),
EMP_NAME VARCHAR2(30),
PAY_RATE MONEY_D);
Некоторые из приведенных в тексте этого урока типов данных в разных реализациях SQL могут иметь различные имена. Несмотря на различия в именах, лежащий в основе создания типов данных подход всегда одинаков. Большинство из указанных типов данных, если не все они, поддерживаются большинством реляционных баз данных.
SQL предлагает несколько типов данных. Если у вас есть опыт программирования на других языках, многие из этих типов данных покажутся вам знакомыми. Типы данных позволяют хранить в базе данных различные по своей природе данные от любых символов до десятичных чисел, значений дат и времени. Подход к разделению данных на типы во всех языках одинаков - и при работе с переменными в языках третьего поколения типа С, и при работе с реляционными базами данных с помощью SQL. Хотя в каждой реализации SQL для стандартных типов данных используются разные имена, работают они практически одинаково.
И при краткосрочном планировании, и с точки зрения перспективы, нужно с особой тщательностью выбирать типы данных, их длину, масштаб и точность. При этом нужно принять во внимание и сложившиеся правила соответствующего бизнеса, и то, каким образом должны предоставляться данные конечному пользователю. Для этого вы должны понимать природу самих данных и то, как эти данные связаны внутри базы данных.
Почему можно вводить числа (например, идентификационный код) в поля, определенные как строки символов?
Числовые значения являются также и буквенно-числовыми, а последние вполне допустимы для символьных типов данных. Обычно в виде числовых хранятся только те значения, которые предполагается использовать в вычислениях. Но иногда оказывается удобным назначить числовым полям числовые типы данных с целью контроля вводимых в эти поля данных.
Я никак не могу понять разницу между типами данных фиксированной длины и переменной длины. Можно ли получить более подробные объяснения?
Скажем, фамилия некой персоны определена как тип данных фиксированной длины с заданной длиной 20 байт. Предположим также, что это фамилия Смит. После ввода данных в таблицу окажутся занятыми все 20 байт: 4 займет фамилия и 16 - пробелы (так как тип данных предполагается фиксированной длины). Если же использовать тип данных переменной длины с максимальной длиной 20 байт, то введенная фамилия Смит займет ровно 4 байта.
Читать дальшеИнтервал:
Закладка: