|
Программирование >> Создание клиентов mysql
Поскольку некоторые символы имеют специальное назначение, для включения их в строку необходимо применять управляющие последовательности. Как правило, обратная косая черта заставляет синтаксический анализатор проигнорировать следующий символ. Есть также ряд управляющих последовательностей, начинающихся с обратной косой черты и заменяющих собой непечатаемые символы наподобие символа новой строки (\п). Однако вполне допускается вводить символы новой строки и табуляции нажатием клавиш <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 назначает переменной тип лишь в момент инициализации, поэтому нужно внимательно следить за соответствием типов. Даже если переменная содержит число, но ее тип был определен как строковый, в ходе числовых операций потребуется выполнять преобразование типов, что может сказаться на производительности.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |