Читайте также:
|
|
Если приложение предполагается применять в разных странах, стро_ ки могут включать символы, которых нет на клавиатуре разработчи_ ка. Например, при работе с французским и немецким языками может понадобиться включать символы с диакритическими знаками, такие
..
как eЂили o. Серверы SQL Server и MySQL включают встроенную функ_ цию char(), позволяющую создавать строки из всех 255 символов набо_ ра ASCII (пользователи Oracle Database могут применять функцию
126 Глава 7. Создание, преобразование и работа с данными
chr()). Для примера следующий фрагмент кода извлекает напечатан_ ную строку и ее эквивалент, собранный из отдельных символов:
mysql> SELECT 'abcdefg', CHAR(97,98,99,100,101,102,103);
+_________+________________________________+ | abcdefg | CHAR(97,98,99,100,101,102,103) | +_________+________________________________+ | abcdefg | abcdefg | +_________+________________________________+ 1 row in set (0.01 sec)
Таким образом, 97_й символ набора символов ASCII – это буква a. При_ веденные выше символы не являются специальными, а вот следую_ щий пример показывает местоположение символов с диакритически_ ми знаками и других специальных символов, таких как знаки валют:
mysql> SELECT CHAR(128,129,130,131,132,133,134,135,136,137);
+_______________________________________________+ | CHAR(128,129,130,131,132,133,134,135,136,137) | +_______________________________________________+
| |
+_______________________________________________+ 1 row in set (0.01 sec)
mysql> SELECT CHAR(138,139,140,141,142,143,144,145,146,147);
+_______________________________________________+ | CHAR(138,139,140,141,142,143,144,145,146,147) | +_______________________________________________+
| |
+_______________________________________________+ 1 row in set (0.01 sec)
mysql> SELECT CHAR(148,149,150,151,152,153,154,155,156,157);
+_______________________________________________+ | CHAR(148,149,150,151,152,153,154,155,156,157) | +_______________________________________________+
| |
+_______________________________________________+ 1 row in set (0.00 sec)
mysql> SELECT CHAR(158,159,160,161,162,163,164,165);
+_______________________________________+ | CHAR(158,159,160,161,162,163,164,165) | +_______________________________________+
| |
+_______________________________________+ 1 row in set (0.01 sec)
В примерах данного раздела используется набор символов latin1. Если сеанс cконфигурирован под другой набор, вы уви_ дите символы, отличные от приведенных здесь. Идея та же, но, чтобы находить определенные символы, вам придется освоить расположение символов своего набора.
Строковые данные | |
Построение строк символ за символом может быть достаточно утоми_ тельным, особенно если в строке всего лишь несколько символов с диа_ критическими знаками. К счастью, можно воспользоваться функцией concat() и соединить отдельные строки, часть которых можно ввести с клавиатуры, а другие – сформировать с помощью функции char(). Например, следующий фрагмент кода показывает, как построить фра_
..
зу danke schon с помощью функций concat() и char():
mysql> SELECT CONCAT('danke sch', CHAR(148), 'n');
+_____________________________________+ | CONCAT('danke sch', CHAR(148), 'n') | +_____________________________________+
.. | | | |
| danke schon | ||
+_____________________________________+ | ||
1 row in set (0.00 sec) |
Пользователи Oracle Database вместо функции concat() могут применять оператор конкатенации (||):
SELECT 'danke sch' || CHR(148) || 'n' FROM dual;
В SQL Server нет функции concat(), поэтому придется использо_ вать оператор конкатенации (+):
SELECT 'danke sch' + CHAR(148) + 'n'
Найти ASCII_эквивалент нужного символа можно с помощью функ_ ции ascii(), принимающей самый левый символ строки и возвращаю_ щей его номер:
..
mysql> SELECT ASCII('o');
+____________+
..
| ASCII('o') | +____________+
| | 148 | |
+____________+
1 row in set (0.00 sec)
Функции char(), ascii() и concat() (как и операторы конкатенации) по_ зволяют работать с любым романским языком, даже если клавиатура не включает символы с диакритическими знаками или спецсимволы.
Дата добавления: 2015-08-17; просмотров: 60 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Создание строк | | | Работа со строками |