Определение значений
Литеральные значения
В SQL значение может быть представлено или переменной, или константой. Было бы логично считать, что значение переменной время от времени меняется, а значение константы (т.е. постоянной величины) не меняется никогда. Важной разновидностью констант является литеральное значение. Литерал можно считать WYSIWYG-значением, потому что "то, что вы видите, то вы и получаете" (What Kou See Is What Кои Get). Представление литерального значения как раз и является этим самым значением.
Так как в языке SQL имеется много разных типов данных, то в нем имеется и много разных типов литералов. Некоторые примеры литералов разных типов данных приведены в табл. 7.1.
Обратите внимание, что литералы нечисловых типов заключены в апострофы. Эти знаки помогают избежать путаницы, хотя, впрочем, могут и привести к трудностям.
Таблица 7.1. Примеры литералов различных типов данных.
Тип данных | Пример литерала |
---|---|
BIGINT | 8589934592 |
INTEGER | 186282 |
SMALLINT | 186 |
NUMERIC | 186282.42 |
DECIMAL | 186282.42 |
REAL | 6.02257e23 |
DOUBLE PRECISION | 3.1415926535897e00 |
FLOAT | 6.02257e23 |
CHARACTER (15) Примечание: в строке в одинарные кавычки заключено пятнадцать символов и пробелов | 'GREECE' |
VARCHAR (CHARACTER VARYING) | 'lepton' |
NATIONAL CHARACTER(15) Примечание:в строке в одинарные кавычки заключено пятнадцать символов и пробелов | 'EΛΛAΣ' Примечание:Этот термин является словом, которым греки называют Грецию на своем языке. (Если написать его по-английски, то получится "Hellas", а по-русски – "Эллада".) |
NATIONAL CHARACTER VARYING | 'λεπτον' Этот термин является словом "lepton " (лептон), написанным буквами греческого алфавита. |
CHARACTER URGE OBJECT (CLOB) | Очень длинная символьная стока |
BINARY LARGE OBJECT (BLOB) | Очень длинная строка, состоящая из нулей и единиц (0и1) |
DATE | DATE '1969-07-20' |
TIME(2) | TIME '13.41.32.50' |
TIMESTAMP(O) | TIMESTAMP '1998-05-17-13.03.16.000000' |
TIME WITH TIMEZONE(4) | TIME '13.41.32.5000-08.00' |
TIMESTAMP WITH TIMEZONE(4) | TIMESTAMP '1998-05-17-13.03.16.0000+02.00' |
INTERVAL DAY | INTERVAL '7 DAY' |
А если литерал является символьной строкой, содержащей символ одинарной кавычки? В таком случае вместо одного этого символа в литерале должны быть две одинарные кавычки подряд, чтобы показать, что кавычка является частью строки и не указывает на ее завершение. Таким образом, чтобы получился символьный литерал 'Earth's atmosphere', необходимо ввести 'Earth''s atmosphere'.