Программирование >>  Создание клиентов mysql 

1 ... 34 35 36 [ 37 ] 38 39 40 ... 201


Поскольку некоторые символы имеют специальное назначение, для включения их в строку необходимо применять управляющие последовательности. Как правило, обратная косая черта заставляет синтаксический анализатор проигнорировать следующий символ. Есть также ряд управляющих последовательностей, начинающихся с обратной косой черты и заменяющих собой непечатаемые символы наподобие символа новой строки (\п). Однако вполне допускается вводить символы новой строки и табуляции нажатием клавиш <Enter> и <ТаЬ> соответственно. Оба варианта продемонстрированы в табл. 10.1. Обратите внимание на то, что в обоих случаях строка Line One Line Two разбивается на две части.

С помощью управляющей последовательности \п Путем нажатия клавиши <Enter>

mysql> SELECT Lin nLine Two mysql> SELECT Line One + + > Line TWO ;

I Line One + ь

Line Two I Line One

+ + Line Two I

I Line One + +

Line Two I Line One

+- + Line Two I

1 row in set (0.00 sec) + +

1 row in set (0.00 sec)

Если одним из символов строки является кавычка, то в соответствии со стандартом SQL ее нужно удвоить. В MySQL то же самое применимо и в отношении двойных кавычек.

При работе со строками важно помнить о таком символе, как NUL (ASCII-код - 0). Он обозначает конец строки в C++ - языке, на котором написана программа MySQL. Включение его в середину строки может привести к непредсказуемым последствиям.

Допустимые управляющие последовательности перечислены в табл. 10.2.

Код Описание

V ил Позволяет поставить двойные кавычки внутри строки, которая сама заключена в двойные кавычки

или Позволяет поставить одинарную кавычку внутри строки, заклю-

ченной в одинарные кавычки

\% Используется в выражениях оператора ШКЕ для отмены специаль-

ного назначения символа %

\ 0 Соответствует символу NUL (ASCII-код О)

Соответствует символу возврата на одну позицию ( забой )

\п Соответствует символу перевода строки (ASCII-код 10)

\г Соответствует символу возврата каретки (ASCII-код 13)



Типы данных 123

\t \\

Соответствует символу горизонтальной табуляции (ASCII-код 11) Отменяет специальное назначение символа \

Используется в выражениях оператора ЫКЕ для отмены специаль-

ного назначения символа

Те, кто знакомы сязыко С, могу мать, что вместо управляющих последовательностей можно использовать теричные ASCII-коды. Но это не так. Программа MySQL воспринимает только те коды, которые перечислены в табл. 10.2.

Допускается запись строк цатеричном виде. Такие строки не нужно брать в кавычки. Нужно лишь добавить к строке префикс Ох (большая буква X интерпретируется неправильно). Пример такой строки показан в листинге 10.2. В MySQL версии 4.0 будет поддерживаться форма записи строк, соответ-

ствующая стандарту ANSI: прописная литера X, за которой следует строка шестнадца-теричных символов, заключенная в одинарные кавычки, например X 4CG5GFGE .

mysql> SELECT Ox4C656F6E AS Hex String;


Числа

Числовые литералы записываются в виде цепочек цифр без каких-либо кавычек. Числу может предшествовать знак минус, а если это дробное число, то оно будет содержать десятичную точку. Максимальная разрядность целых чисел - 64 бита, т.е. числа, большие чем будут представляться неправильно.

MySQL понимает научную запись дробныхчисел. Это означает, что после мантиссы числа можно указывать символ экспоненты и показатель степени. Например, запись 1.2е+3 соответствует числу 120 10*). Чтобы не возникало неоднозначности, показателю степени должен предшествовать знак плюс или минус .

Шестнадцатеричные литералы, участвующие в числовых операциях, будут интерпретироваться как числа. Для этого они приводятся к целочисленному типу (листинг 10.3).





124 Главно. Типы данных, переменные и выражения


Значения NULL

В язык SQL введено понятие отсутствующего значения, записываемого как NULL. Это не то же самое, что 0 или пустая строка. Если одним из операндов выражения является значение NULL, результат также будет равен NULL. Отсюда следует, что проверку на равенство значению NULL необходимо выполнять с помощью специальных операторов IS NULL или <=>либо функции ISNULL {), но нестандартного оператора =.

Переменные

Переменные - это символические имена, ссылающиеся на изменяемые значения. Имя переменной может состоять из чисел, букв, знаков подчеркивания и доллара, а также точек. К нему всегда добавляется символ @, чтобы не возникала путаница с именами столбцов и ключевыми словами.

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

Переменные могут использоваться везде, где допускается имя столбца, в том числе в предложениях SELECT и WHERE. Соответствующий пример показан в листинге 10.4. Запрещается указывать переменные в предложениях LIMIT и IGNORE, а также использовать переменные для именования столбцов.

mysql> SE l Item = 2;

Query OK, 0 rows affected (0.00 sec)

mysql> SELECT ID, Name -> FROM item

-> WHERE ID = especial Item;


Программа MySQL назначает переменной тип лишь в момент инициализации, поэтому нужно внимательно следить за соответствием типов. Даже если переменная содержит число, но ее тип был определен как строковый, в ходе числовых операций потребуется выполнять преобразование типов, что может сказаться на производительности.



1 ... 34 35 36 [ 37 ] 38 39 40 ... 201

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика