[] Подстановочный знак для сопоставления символов — SQL Server (Transact-SQL)
Twitter LinkedIn Facebook Адрес электронной почты
- Статья
- Чтение занимает 2 мин
Применимо к: SQL Server Azure SQL DatabaseУправляемый экземпляр SQL AzureAzure Synapse Analytics AnalyticsPlatform System (PDW)
Соответствуют какому-либо одиночному символу в пределах указанного диапазона или набора, заданного в квадратных скобках [ ]
. Эти символы-шаблоны могут использоваться в тех операциях сравнения строк, которые задействуют соответствие шаблону, например LIKE
или PATINDEX
.
Примеры
A. Простой пример
В следующем примере возвращаются имена, начинающиеся с буквы m
. [n-z]
указывает, что вторая буква должна находиться в диапазоне от n
до z
. Символ-шаблон процента
разрешает любые символы, начинающиеся с символа 3, или не разрешает ни одного. Этому условию удовлетворяют базы данных model
и msdb
. База данных master
не соответствует условию и исключается из результирующего набора.
SELECT name FROM sys.databases WHERE name LIKE 'm[n-z]%';
Результирующий набор:
name ----- model msdb
У вас могут быть установлены дополнительные соответствующие базы данных.
Б. Более сложный пример
В следующем примере оператор [] используется для поиска идентификаторов и имен всех сотрудников из базы данных Adventure Works, имеющих адреса с четырехзначным почтовым индексом.
-- Uses AdventureWorks SELECT e.BusinessEntityID, p.FirstName, p.LastName, a.PostalCode FROM HumanResources.Employee AS e INNER JOIN Person.Person AS p ON e.BusinessEntityID = p.BusinessEntityID INNER JOIN Person.BusinessEntityAddress AS ea ON e.BusinessEntityID = ea.BusinessEntityID INNER JOIN Person.Address AS a ON a.AddressID = ea.AddressID WHERE a.PostalCode LIKE '[0-9][0-9][0-9][0-9]';
Результирующий набор:
EmployeeID FirstName LastName PostalCode ---------- --------- --------- ---------- 290 Lynn Tsoflias 3000
В. Использование набора, объединяющего диапазоны и одиночные символы
Набор подстановочных знаков может содержать как отдельные символы, так и диапазоны. В следующем примере оператор [] используется для поиска строки, которая начинается с цифры или набора специальных символов.
SELECT [object_id], OBJECT_NAME(object_id) AS [object_name], name, column_id FROM sys. ] (Cимволы-шаблоны несовпадения) (Transact-SQL)
_ (шаблон — совпадение одного символа) (Transact-SQL)SQL - Подстановочные знаки
- Главная
- Туториалы
- Базы данных
- SQL
Символ подстановки используется для замены любого другого символа в строке. Подстановочные символы используются с оператором SQL LIKE . Оператор LIKE используется в предложении WHERE для поиска заданного шаблона в столбце. В сочетании с оператором LIKE используются две подстановочные знаки:
- % - Знак процента представляет нулевой, один или несколько символов
- _ - Подчеркнутый символ представляет собой один символ
Примеры, с разными LIKE-операторами с «%» и «_» подстановочными знаками:
Выражение | Описание |
WHERE name LIKE 'text%' | Находит любые значения, начинающиеся с "text" |
WHERE name LIKE '%text' | Находит любые значения, заканчивающиеся на "text" |
WHERE name LIKE '%text%' | Находит любые значения, которые имеют «text» в любой позиции |
WHERE name LIKE '_text%' | Находит любые значения, которые имеют «text» во второй позиции |
WHERE name LIKE 'text_%_%' | Находит любые значения, начинающиеся с «text» и длиной не менее 3 символов |
WHERE name LIKE 'text%data' | Находит любые значения, начинающиеся с «text» и заканчивающиеся на «data» |
Использование символа %
Следующий оператор SQL выбирает всех пользователей с name, начинающимся с «Т»:
Пример:
SELECT * FROM users
WHERE name LIKE 'Т%';
Следующий оператор SQL выбирает всех пользователей с именем, содержащим шаблон «То»:
Пример:
SELECT * FROM users
WHERE name LIKE '%То%';
Использование подстановочного знака
Следующий оператор SQL выбирает всех пользователей с name, начиная с любого символа, за которым следует «о»:
Пример:
SELECT * FROM users
WHERE name LIKE '_о';
Следующий оператор SQL выбирает всех пользователе с name начиная с «Т», за которым следует любой символ, за которым следует «м», за которым следует любой символ, а затем «с»:
Пример:
SELECT * FROM users
WHERE name LIKE 'Т_м_с';
Использование подстановочного знака [charlist]
Следующий оператор SQL выбирает всех пользователей с name, начиная с «Т», «Р» или «Е»:
Пример:
SELECT * FROM users
WHERE name LIKE '[ТРЕ]%';
Следующий оператор SQL выбирает всех пользователей с name, начиная с «Т», «Р» или «Е»:
Пример:
SELECT * FROM users
WHERE name LIKE '[Т-E]%';
Использование подстановочного знака [! Charlist]
Два следующих оператора SQL выбирают всех пользователей с помощью name NOT, начинающегося с «Т», «Р» или «E»:
Пример:
SELECT * FROM users
WHERE name LIKE '[!ТРЕ]%';
Или:
Пример:
SELECT * FROM users
WHERE name NOT LIKE '[ТРЕ]%';
Использование левого и правого соединений Использование входа с плюсом (+) Oracle
- Что такое внутреннее соединение?
- Что такое внешнее соединение?
- Выполнение внешних соединений с использованием символа (+)
Как и практически все реляционные базы данных, Oracle позволяет генерировать запросы, которые объединяют или JOIN
строк из двух или более таблиц для создания окончательного набора результатов. Хотя существует множество типов соединений, которые могут быть выполнены, наиболее распространенными являются ВНУТРЕННЕЕ СОЕДИНЕНИЕ
и ВНЕШНЕЕ СОЕДИНЕНИЕ
.
В этом руководстве мы кратко рассмотрим разницу между INNER
и OUTER JOIN
, а затем рассмотрим сокращенный метод, который Oracle предоставляет для выполнения
, в частности, с использованием символа оператора +
.
Что такое внутреннее соединение?
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
в реляционной базе данных — это просто объединение двух или более таблиц, в котором результат будет содержат только данные, удовлетворяющие всем условиям соединения .
Например, здесь у нас есть базовая схема библиотеки
с двумя таблицами: книг
и языков
. Таблица языков
— это просто список возможных имен языков и уникальный идентификатор языка
:
SELECT * FROM library.languages; идентификатор имя 1 английский 2 французский 3 немецкий 4 мандарина 5 испанский 6 арабский 7 японцев 8 русский 9 греческий 10 итальянских
Тем временем наша таблица books
имеет строку language_id
, которая для большинства, но не для всех книг просто содержит language_id
, связанный с исходным опубликованным языком книги:
SELECT * FROM книги СОРТИРОВАТЬ ПО идентификатор ВЫБЕРИТЕ ТОЛЬКО ПЕРВЫЕ 10 РЯДОВ; id название автора year_published language_id 1 В поисках утраченного времени Марсель Пруст 1913 2 2 Улисс Джеймс Джойс 1922 1 3 Дон Кихот Мигель де Сервантес 1605 5 4 Моби Дик Герман Мелвилл 1851 1 5 Гамлет Уильям Шекспир 1601 (ноль) 6 Война и мир Лев Толстой 18698 7 Одиссея Гомера -700 9 8 Великий Гэтсби Ф. Скотт Фицджеральд 1925 1 9 Божественная комедия Данте Алигьери 1472 10 10 Мадам Бовари Гюстав Флобер 1857 2
Во многих случаях мы можем захотеть выполнить INNER JOIN
для книг
и языков
таблиц, чтобы вместо просмотра бессмысленного значения language_id
каждой книги мы фактически могли видеть название языка
вместо этого. .
ВЫБОР делать ставку, б.название, б.автор, b.year_published, л.название языка ОТ книги б ВНУТРЕННЕЕ СОЕДИНЕНИЕ библиотека.языки л НА b.language_id = л.идентификатор СОРТИРОВАТЬ ПО делать ставку ВЫБЕРИТЕ ТОЛЬКО ПЕРВЫЕ 10 РЯДОВ; id название автора year_published язык 1 В поисках утраченного времени Марсель Пруст 1913 французский 2 Улисс Джеймс Джойс 1922 английский 3 Дон Кихот Мигель де Сервантес 1605 Испанский 4 Моби Дик Герман Мелвилл 1851 Английский 6 Война и мир Лев Толстой 1869 Русский 7 Одиссея Гомера -700 г. греч. 8 Великий Гэтсби Ф. Скотт Фицджеральд 1925 Английский 9 Божественная комедия Данте Алигьери 1472 г. Италия 10 Madame Bovary Гюстав Флобер 1857 Французский 11 Братья Карамазовы Фёдор Достоевский 1880 Русский
Здесь важно отметить, что наш набор результатов немного отличался в двух приведенных выше запросах. В первом мы просто перечислили первые 10
книг, но в запросе INNER JOIN
мы возвращаем только те результаты, которые удовлетворяют всем условиям из обеих таблиц. По этой причине запись Hamlet
(которая имеет language_id
значение null
или пустая) игнорируется и не возвращается в результате нашего INNER JOIN
.
Что такое внешнее соединение?
Вместо исключительного возврата результатов, удовлетворяющих всем условиям соединения INNER JOIN
, OUTER JOIN
возвращает не только результаты, удовлетворяющие всем условиям, но также возвращает строки из одной таблицы, которые не удовлетворяют условию. Таблица, которая выбирается для этого «обхода» условных требований, определяется направленностью или «стороной» соединения, обычно называемого внешними соединениями LEFT
или RIGHT
.
При определении стороны вашего OUTER JOIN
вы указываете, какая таблица всегда будет возвращать свою строку, даже если противоположная таблица на другой стороне соединения имеет отсутствующие или нулевые значения
как часть условия соединения.
Следовательно, если мы выполним тот же базовый JOIN
, что и выше, для получения книг
и названий языков
, мы знаем, что наша таблица books
всегда должна возвращать данные, поэтому наша сторона JOIN
должна «указывать на» наша таблица books
, тем самым превращая таблицу языков
в таблицу OUTER
, которую мы присоединяем к ней.
Для этого просто меняем:
books b INNER JOIN library.languages l
…к этому:
книги b LEFT OUTER JOIN library.languages l
Таким образом, весь запрос и набор результатов выглядят почти идентично INNER JOIN
, за исключением небольшого изменения:
SELECT делать ставку, б.название, б.автор, b.year_published, л.название языка ОТ книги б ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ библиотека.языки л НА b.language_id = л.идентификатор СОРТИРОВАТЬ ПО делать ставку ВЫБЕРИТЕ ТОЛЬКО ПЕРВЫЕ 10 РЯДОВ; id название автора year_published язык 1 В поисках утраченного времени Марсель Пруст 1913 французский 2 Улисс Джеймс Джойс 1922 английский 3 Дон Кихот Мигель де Сервантес 1605 Испанский 4 Моби Дик Герман Мелвилл 1851 Английский 5 Гамлет Уильям Шекспир 1601 (ноль) 6 Война и мир Лев Толстой 1869 Русский 7 Одиссея Гомера -700 г. греч. 8 Великий Гэтсби Ф. Скотт Фицджеральд 1925 Английский 9 Божественная комедия Данте Алигьери 1472 г. Италия 10 Madame Bovary Гюстав Флобер 1857 Французский
Как и ожидалось, с помощью LEFT OUTER JOIN
вместо предыдущего INNER JOIN
, мы получаем лучшее из обоих миров: мы не пропускаем книг
записей (например, Hamlet
) просто потому, что значение language_id
равно null
для этого запись, однако для всех записей, где существует language_id
, мы получаем хорошо отформатированное имя языка
, полученное из нашей таблицы языков
.
Выполнение внешних соединений с использованием символа (+)
Как указано в официальной документации, Oracle предоставляет специальный оператор внешнего соединения
(символ +
), который является сокращением для выполнения OUTER JOINS
.
На практике символ +
размещается непосредственно в условном операторе и рядом с дополнительной таблицей (той, которая может содержать пустые или нулевые значения
внутри условного оператора).
Таким образом, мы можем еще раз переписать приведенный выше оператор LEFT OUTER JOIN
, используя оператор +
, например:
ВЫБОР делать ставку, б.название, б.автор, b.year_published, л.название языка ОТ книги б, библиотека.языки л ГДЕ l.id (+)= b.language_id СОРТИРОВАТЬ ПО делать ставку ВЫБЕРИТЕ ТОЛЬКО ПЕРВЫЕ 10 РЯДОВ;
Результаты аналогичны стандартному примеру LEFT OUTER JOIN
выше, поэтому мы не будем их здесь включать. Тем не менее, есть один критический аспект, который следует отметить в синтаксисе с использованием оператора +
для OUTER JOINS
.
Оператор +
должен быть слева от условного выражения (слева от знака равенства =
). Поэтому в этом случае, поскольку мы хотим убедиться, что наша таблица языков
является дополнительной таблицей, которая может возвращать нулевых значений
во время этого сравнения, мы поменяли местами порядок таблиц в этом условном выражении, поэтому языков
находятся на слева (и необязательно), а книг
справа.
Наконец, из-за этого переупорядочения сторон таблицы в условном выражении при использовании +
, важно понимать, что это просто сокращение для RIGHT OUTER JOIN
. Это означает, что этот фрагмент запроса:
ОТ книги б, библиотека.языки л ГДЕ l.id (+)= b.language_id
…фактически идентичен этому:
ОТ библиотека.языки л ПРАВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ книги б НА b.language_id = л.идентификатор
Встроенные скалярные функции SQL
Основные функции, показанные ниже, доступны по умолчанию. Функции даты и времени, агрегатные функции, оконные функции, математические функции и Функции JSON документированы отдельно. Ан Приложение может определять дополнительные функции, написанные на C и добавленные в движок базы данных с помощью API sqlite3_create_function().
абс( X )
Функция abs(X) возвращает абсолютное значение числового аргумент X. Abs(X) возвращает NULL, если X имеет значение NULL. Abs(X) возвращает 0,0, если X является строкой или большим двоичным объектом. который не может быть преобразован в числовое значение. Если Х является целое число -9223372036854775808, тогда abs(X) вызывает целочисленное переполнение ошибка, так как не существует эквивалентного положительного 64-битного значения с двумя дополнениями.
изменения()
Функция changes() возвращает количество строк базы данных, которые были изменены. либо вставлены, либо удалены последней выполненной командой INSERT, DELETE, или оператор UPDATE, исключая операторы в триггерах более низкого уровня. Функция SQL changes() представляет собой оболочку функции sqlite3_changes64(). C/C++ и, следовательно, следует тем же правилам подсчета изменений.
символ( X1 , X2 ,..., XN )
Функция char(X1,X2,...,XN) возвращает строку, состоящую из символов, имеющих значения кодовой точки Юникода для целых чисел от X1 до XN соответственно.
сливаются( X , Y ,...)
Функция Coalesce() возвращает копию своего первого аргумента, отличного от NULL, или NULL, если все аргументы равны NULL. Coalesce() должен иметь как минимум 2 аргумента.
формат( ФОРМАТ ,...)
Функция format(FORMAT,...) SQL работает так же, как sqlite3_mprintf() C-языка функция и функция printf() из стандартной библиотеки C. Первый аргумент — это строка формата, указывающая, как построить вывод. строка, использующая значения, взятые из последующих аргументов. Если аргумент ФОРМАТ отсутствует или NULL, тогда результат будет NULL. Формат %n молча игнорируется и не потребляет аргумент. Формат %p является псевдонимом для %X. Формат %z взаимозаменяем с %s. Если в списке аргументов слишком мало аргументов, предполагается, что отсутствующие аргументы имеют значение NULL, которое преобразуется в 0 или 0.0 для числовых форматов или пустая строка для %s. См. встроенная документация printf() для получения дополнительной информации.
шарик( X , Y )
Функция glob(X,Y) эквивалентна функции выражение " Y GLOB X ". Обратите внимание, что аргументы X и Y в функции glob() меняются местами. относительно инфиксного оператора GLOB. Y — это строка, а X — это шаблон. Так, например, следующие выражения эквивалентны:
имя GLOB '*гелий*' шар('*гелий*',имя)
Если интерфейс sqlite3_create_function() используется для переопределите функцию glob(X,Y) альтернативной реализацией, затем оператор GLOB вызовет альтернативную реализацию.
шестнадцатеричный ( X )
Функция hex() интерпретирует свой аргумент как BLOB и возвращает строка, представляющая собой шестнадцатеричное представление содержимого в верхнем регистре эта капля.
Если аргумент X в "hex( X )" является целое число или число с плавающей запятой, тогда "интерпретирует свой аргумент как BLOB" означает что двоичное число сначала преобразуется в текстовое представление UTF8, а затем этот текст интерпретируется как BLOB. Следовательно, "шестнадцатеричный (12345678)" отображает как "3132333435363738", а не двоичное представление целочисленного значения "0000000000BC614E".
См. также: unhex()
если нуль ( X , Y )
Функция ifnull() возвращает копию своего первого аргумента, отличного от NULL, или NULL, если оба аргумента равны NULL. Ifnull() должно иметь ровно 2 аргумента. Функция ifnull() эквивалентна Coalesce() с двумя аргументами.
iif( X , Y , Z )
Функция iif(X,Y,Z) возвращает значение Y, если X истинно, и Z в противном случае. Функция iif(X,Y,Z) логически эквивалентна и генерирует то же самое. байт-код как выражение CASE "CASE WHEN X THEN Y ELSE Z END".
инстр( X , Y )
Функция instr(X,Y) находит первое вхождение строки Y в строка X и возвращает количество предшествующих символов плюс 1 или 0, если Y нигде не встречается в X. Или, если X и Y оба являются BLOB, то instr(X,Y) возвращает один больше, чем число байтов до первого вхождения Y, или 0, если Y нигде не встречается внутри X. Если оба аргумента X и Y для instr(X,Y) не равны NULL и не являются большими двоичными объектами. то оба интерпретируются как строки. Если либо X, либо Y имеют значение NULL в instr(X,Y), то результат равен NULL.
last_insert_rowid()
Функция last_insert_rowid() возвращает ROWID вставки последней строки из соединения с базой данных, которое вызвало функция. SQL-функция last_insert_rowid() представляет собой оболочку для sqlite3_last_insert_rowid() функция интерфейса C/C++.
длина( X )
Для строкового значения X функция length(X) возвращает количество символов (не байтов) в X до первого символа NUL. Поскольку строки SQLite обычно не содержат символов NUL, длина (X) Функция обычно возвращает общее количество символов в строке X. Для значения большого двоичного объекта X функция length(X) возвращает количество байтов в большом двоичном объекте. Если X равно NULL, то длина (X) равна NULL. Если X является числовым, то length(X) возвращает длину строки представление Х.
Обратите внимание, что для строк функция length(X) возвращает символов . длина строки, а не длина байта. Длина символа - это число символов в строке. Длина символа всегда отличается от длина в байтах для строк UTF-16 и может отличаться от длины в байтах для строк UTF-8, если строка содержит многобайтовые символы.
Для значений BLOB length(X) всегда возвращает длину BLOB в байтах.
Для строковых значений length(X) должна прочитать всю строку в память, чтобы для вычисления длины символа. Но для значений BLOB это не обязательно, так как SQLite знает, сколько байтов в BLOB. Следовательно, для многомегабайтных значений функция length(X) обычно намного быстрее для больших двоичных объектов, чем для строк, поскольку ему не нужно загружать значение в память.
нравится( X , Y )
нравится( X , Y , З )
Функция like() используется для реализации " Y LIKE X [ESCAPE Z] " выражение. Если присутствует необязательное предложение ESCAPE, то Функция like() вызывается с тремя аргументами. В противном случае это вызывается только с двумя аргументами. Обратите внимание, что параметры X и Y перевернуто в функции like() по отношению к инфиксному оператору LIKE. X — это шаблон, а Y — строка, соответствующая этому шаблону. Следовательно, следующие выражения эквивалентны:
имя НРАВИТСЯ '%neon%' нравится('%неон%',имя)
Интерфейс sqlite3_create_function() можно использовать для переопределения функцию like() и тем самым изменить работу НРАВИТСЯ оператор. При переопределении функции like() может быть важно переопределить версии с двумя и тремя аргументами функции like() функция. В противном случае может быть вызван другой код для реализации LIKE в зависимости от того, было ли предложено условие ESCAPE. указано.
вероятность( X , Y )
Функция правдоподобия (X, Y) возвращает аргумент X без изменений. Значение Y в вероятности (X, Y) должно быть константой с плавающей запятой. от 0,0 до 1,0 включительно. Функция правдоподобия (X) не является операцией, которую генератор кода оптимизирует так, чтобы он не потреблял циклы ЦП во время выполнения (то есть во время вызовов sqlite3_step()). Назначение функции правдоподобия (X, Y) состоит в том, чтобы дать подсказку планировщику запросов, что аргумент X является логическим значением, то есть верно с вероятностью приблизительно Y. Функция маловероятности (X) является сокращением для вероятности (X, 0,0625). Функция вероятного (X) является сокращением для правдоподобия (X, 0,9375).
вероятно( X )
Функция вероятного(X) возвращает аргумент X без изменений. Функция вероятного (X) не является операцией, которую генератор кода оптимизирует так, чтобы он не потреблял циклы ЦП в во время выполнения (то есть во время вызовов sqlite3_step()). Назначение функции вероятностного(X) состоит в том, чтобы дать подсказку планировщику запросов, что аргумент X является логическим значением обычно это правда. Функция вероятного (X) эквивалентна вероятности (X, 0,9375). См. также: маловероятно(X).
load_extension( X )
load_extension( X , Y )
Функция load_extension(X,Y) загружает расширения SQLite из общего файл библиотеки с именем X, используя точку входа Y. Результат load_extension() всегда NULL. Если Y опущен, используется имя точки входа по умолчанию. Функция load_extension() вызывает исключение, если расширение не загрузить или инициализировать правильно.
Функция load_extension() завершится ошибкой, если расширение попытается изменить или удалить функцию SQL или последовательность сопоставления. расширение может добавлять новые функции или последовательности сопоставления, но не может изменить или удалить существующие функции или последовательности сопоставления, потому что эти функции и/или последовательности сопоставления могут использоваться в другом месте в текущем операторе SQL. Чтобы загрузить расширение, которое изменяет или удаляет функции или последовательности сопоставления, используйте sqlite3_load_extension() API языка C.
Из соображений безопасности загрузка расширений отключена по умолчанию и должна быть включена предварительным вызовом sqlite3_enable_load_extension().
нижний( X )
Функция lower(X) возвращает копию строки X со всеми символами ASCII. преобразованы в нижний регистр. Встроенная по умолчанию функция lower() работает только для символов ASCII. Для преобразования регистра в не-ASCII символов, загрузите расширение ICU.
ltrim( X )
ltrim( X , Y )
Функция ltrim(X,Y) возвращает строку, образованную удалением всех без исключения символы, которые появляются в Y слева от X. Если аргумент Y опущен, ltrim(X) удаляет пробелы с левой стороны Х.
макс( X , Y ,...)
Функция max() с несколькими аргументами возвращает аргумент с максимальное значение или вернуть NULL, если какой-либо аргумент равен NULL. Функция max() с несколькими аргументами ищет аргументы слева направо. для аргумента, который определяет функцию сортировки и использует эту функцию сортировки функция для всех сравнений строк. Если ни один из аргументов max() определить функцию сопоставления, тогда используется функция сопоставления BINARY. Обратите внимание, что max() — простая функция, когда имеет 2 или более аргументов, но работает как агрегатная функция, если задан только один аргумент.
мин( X , Y ,...)
Функция min() с несколькими аргументами возвращает аргумент с минимальное значение. Функция min() с несколькими аргументами ищет аргументы слева направо. для аргумента, который определяет функцию сортировки и использует эту функцию сортировки функция для всех сравнений строк. Если ни один из аргументов min() определить функцию сопоставления, тогда используется функция сопоставления BINARY. Обратите внимание, что min() — это простая функция, когда имеет 2 или более аргументов, но работает как агрегатная функция, если задана только один аргумент.
nullif( X , Y )
Функция nullif(X,Y) возвращает свой первый аргумент, если аргументы разные и NULL, если аргументы совпадают. Функция nullif(X,Y) ищет в своих аргументах слева направо аргумент, определяющий функция сопоставления и использует эту функцию сопоставления для всех строк сравнения. Если ни один из аргументов nullif() не определяет функцию сопоставления затем используется функция сопоставления BINARY.
printf( ФОРМАТ ,...)
SQL-функция printf() является псевдонимом SQL-функции format(). SQL-функция format() первоначально называлась printf(). Но название было позже изменен на format() для совместимости с другими механизмами баз данных. Оригинал Имя printf() сохраняется как псевдоним, чтобы не нарушать устаревший код.
цитата( X )
Функция quote(X) возвращает текст литерала SQL, который является значением его аргумента, подходящим для включения в оператор SQL. Строки заключаются в одинарные кавычки с экранированием во внутренних кавычках. по мере необходимости. BLOB кодируются как шестнадцатеричные литералы. Строки со встроенными символами NUL не могут быть представлены в виде строки. литералы в SQL и, следовательно, возвращаемый строковый литерал усекается до до первого НУЛ.
случайный()
Функция random() возвращает псевдослучайное целое число. между -9223372036854775808 и +9223372036854775807.
случайный блоб( N )
Функция randomblob(N) возвращает N-байтовый BLOB-объект, содержащий псевдослучайные байт. Если N меньше 1, возвращается случайный двоичный объект размером 1 байт.
Подсказка: приложения могут генерировать глобально уникальные идентификаторы используя эту функцию вместе с hex() и/или ниже() вот так:
шестнадцатеричный (случайный двоичный объект (16))
ниже (шестнадцатеричный (случайный двоичный объект (16)))
заменить( X , Y , Z )
Функция replace(X,Y,Z) возвращает строку, образованную заменой строка Z для каждого вхождения строки Y в строку X. последовательность сопоставления используется для сравнения. Если Y пустое строка, затем верните X без изменений. Если Z изначально не строка, перед обработкой она преобразуется в строку UTF-8.
круглый( X )
круглый( X , Y )
Функция round(X,Y) возвращает число с плавающей запятой. значение X округляется до Y цифр справа от запятой. Если аргумент Y опущен или отрицателен, он принимается равным 0.
rtrim( X )
rtrim( X , Y )
Функция rtrim(X,Y) возвращает строку, образованную удалением всех без исключения символы, которые появляются в Y с правой стороны X. Если аргумент Y опущен, rtrim(X) удаляет пробелы справа сторона Х.
знак( X )
Функция sign(X) возвращает -1, 0 или +1, если аргумент X является числовым. отрицательное, нулевое или положительное значение соответственно. Если аргумент to sign(X) имеет значение NULL или является строкой или большим двоичным объектом, который не может быть преобразован без потерь в число, то sign(X) возвращает NULL.
саундекс( X )
Функция soundex(X) возвращает строку, которая представляет собой кодировку soundex. строки Х. Строка "?000" возвращается, если аргумент имеет значение NULL или содержит нет буквенных символов ASCII. Эта функция отсутствует в SQLite по умолчанию. Он доступен, только если параметр времени компиляции SQLITE_SOUNDEX используется при сборке SQLite.
sqlite_compileoption_get ( N )
SQL-функция sqlite_compileoption_get() является оболочкой для Функция sqlite3_compileoption_get() C/C++. Эта подпрограмма возвращает N-й параметр времени компиляции, используемый для сборки SQLite. или NULL, если N выходит за пределы допустимого диапазона. См. также прагму compile_options.
sqlite_compileoption_used( X )
SQL-функция sqlite_compileoption_used() является оболочкой над Функция sqlite3_compileoption_used() C/C++. Когда аргумент X для sqlite_compileoption_used(X) является строкой, — это имя параметра времени компиляции, эта процедура возвращает значение true (1) или false (0) в зависимости от того, использовалась ли эта опция во время строить.
sqlite_offset( X )
Функция sqlite_offset(X) возвращает смещение в байтах в базе данных файл для начала записи, из которой будет считываться значение. Если X не является столбцом в обычной таблице, тогда sqlite_offset(X) возвращает НУЛЕВОЙ. Значение, возвращаемое sqlite_offset(X), может ссылаться либо на исходная таблица или индекс, в зависимости от запроса. Если бы значение X обычно извлекается из индекса, sqlite_offset(X) возвращает смещение к соответствующей индексной записи. Если бы значение X было извлекается из исходной таблицы, затем sqlite_offset(X) возвращает смещение к записи таблицы.
SQL-функция sqlite_offset(X) доступна, только если SQLite собран используя параметр времени компиляции -DSQLITE_ENABLE_OFFSET_SQL_FUNC.
sqlite_source_id()
Функция sqlite_source_id() возвращает строку, идентифицирующую конкретная версия исходного кода, которая использовалась для сборки SQLite библиотека. Строка, возвращаемая sqlite_source_id(), дата и время, когда исходный код был проверен, а затем хэш SHA3-256 для этой регистрации. Эта функция SQL-оболочка вокруг интерфейса sqlite3_sourceid() C.
sqlite_version()
Функция sqlite_version() возвращает строку версии для SQLite. библиотека, которая работает. Эта функция является SQL оболочка вокруг C-интерфейса sqlite3_libversion().
substr( X , Y , Z )
substr( X , Y )
substring( X , Y , Z )
substring( X , Y )
Функция substr(X,Y,Z) возвращает подстроку входной строки X, которая начинается с Y-м символом и длиной Z символов. Если Z опущен, то substr(X,Y) возвращает все символы до конца строки X, начиная с Y-го. Крайний левый символ X — это число 1. Если Y отрицательное то первый символ подстроки находится путем отсчета от справа, а не слева. Если Z отрицательно, то возвращаются символы abs(Z), предшествующие Y-му символу. Если X является строкой, то индексы символов относятся к фактическому UTF-8. персонажи. Если X является BLOB, то индексы относятся к байтам.
«substring()» — это псевдоним для «substr()», начиная с версии SQLite 3.34.
total_changes()
Функция total_changes() возвращает количество изменений строки вызвано INSERT, UPDATE или DELETE операторов с момента открытия текущего соединения с базой данных. Эта функция является оболочкой для sqlite3_total_changes64(). Интерфейс С/С++.
отделка( X )
отделка( X , И )
Функция trim(X,Y) возвращает строку, образованную удалением всех без исключения символы, которые появляются в Y с обоих концов X. Если аргумент Y опущен, trim(X) удаляет пробелы с обоих концов X.
тип( X )
Функция typeof(X) возвращает строку, указывающую тип данных выражение X: "null", "integer", "real", "text" или "blob".
без шестнадцатеричных ( X )
без шестнадцатеричных ( X , Y )
Функция unhex(X,Y) возвращает значение BLOB, которое является декодированием шестнадцатеричная строка X. Если X содержит какие-либо символы, которые не являются шестнадцатеричными цифрами и не входят в Y, тогда unhex(X,Y) возвращает NULL. Если Y опущен, понимается как пустая строка, и, следовательно, X должна быть чистой шестнадцатеричной строкой. Все шестнадцатеричные цифры в X должны встречаться парами, причем обе цифры каждого пара, начинающаяся непосредственно рядом друг с другом, или unhex(X,Y) возвращает NULL. Если параметр X или Y равен NULL, то unhex(X,Y) возвращает NULL. Вход X может содержать произвольное сочетание шестнадцатеричных символов верхнего и нижнего регистра. цифры. Шестнадцатеричные цифры в Y не влияют на перевод X. Только символы в Y, которые не являются шестнадцатеричными цифрами, игнорируются в X.
Смотрите также: шестнадцатеричный()
Юникод ( X )
Функция unicode(X) возвращает числовую кодовую точку Unicode, соответствующую первый символ строки X. Если аргумент unicode(X) не является строкой то результат не определен.
маловероятно( X )
Функция маловероятно(X) возвращает аргумент X без изменений. Функция маловероятности (X) не является операцией, которую генератор кода оптимизирует так, чтобы он не потреблял циклы ЦП в во время выполнения (то есть во время вызовов sqlite3_step()). Функция маловероятности (X) предназначена для предоставления подсказки планировщику запросов, что аргумент X является логическим значением обычно это не так. Функция маловероятности (X) эквивалентна вероятности (X, 0,0625).
верхний( х )
Функция upper(X) возвращает копию входной строки X, в которой все символы ASCII нижнего регистра преобразуются в эквивалентные им символы верхнего регистра.
нулевое пятно( N )
Функция zeroblob(N) возвращает BLOB, состоящий из N байтов 0x00. SQLite очень эффективно управляет этими нулевыми каплями.