MySQL ИНФОРМАЦИОННЫЕ ФУНКЦИИ
ИНФОРМАЦИОННЫЕ ФУНКЦИИ
Содержание:
- Функция MySQL BENCHMARK ()
- Функция MySQL CHARSET ()
- Функция MySQL COERCIBILITY ()
- Функция MySQL COLLATION ()
- Функция MySQL CONNECTION_ID ()
- MySQL CURRENT_USER (), функция CURRENT_USER
- MySQL DATABASE () Функция
- Функция MySQL FOUND_ROWS ()
- Функция MySQL LAST_INSERT_ID ()
- Функция MySQL ROW_COUNT ()
- Функция MySQL SCHEMA ()
- Функция MySQL USER ()
- Функция MySQL SESSION_USER ()
- Функция MySQL SYSTEM_USER ()
- MySQL VERSION () функция
Функция BENCHMARK ()
В MySQL BENCHMARK () используется для определения времени выполнения запроса, т. Е. Как быстро MySQL обрабатывает выражение. Возвращает всегда 0.
Возвращаемое время прошло время на стороне клиента, а не процессорное время на стороне сервера.
BENCHMARK () известен для измерения производительности времени выполнения только скалярных выражений, хотя выражение может быть подзапросом и должно возвращать один столбец и не более одной строки.
Синтаксис:
ЭТАЛОН (количество, выражение)
пример
SELECT BENCHMARK (100, ENCODE («Привет», «Добро пожаловать»)); + --------------------------------------- + | ЭТАЛОН (100, ENCODE («Привет», «Добро пожаловать»)) | + --------------------------------------- + | 0 | + --------------------------------------- + 1 ряд в наборе (0,00 сек) SELECT BENCHMARK (100, (ВЫБРАТЬ * ИЗ test2))); + -------------------------------------- + | ЭТАЛОН (100, (ВЫБРАТЬ * ИЗ test2)) | + -------------------------------------- + | 0 | + -------------------------------------- + 1 ряд в наборе (0,00 сек)
Здесь в приведенном выше примере в последнем примере предполагается, что в файле test2 есть только один столбец и строка.
Функция MySQL CHARSET ()
В MySQL функция CHARSET () используется для возврата набора символов строкового аргумента.
Синтаксис:
CHARSET (ул)
str - строковый аргумент.
пример
mysql> SELECT CHARSET ('xyz'); + ---------------- + | CHARSET ('xyz') | + ---------------- + | латинский1 | + ---------------- + 1 ряд в наборе (0,00 сек) mysql> SELECT CHARSET (CONVERT ('xyz' USING cp1251)); + -------------------------------------- + | CHARSET (CONVERT ('xyz' ИСПОЛЬЗУЯ cp1251)) | + -------------------------------------- + | cp1251 | + -------------------------------------- + 1 ряд в наборе (0,00 сек) mysql> SELECT CHARSET (USER ()); + ----------------- + | CHARSET (ПОЛЬЗОВАТЕЛЬ ()) | + ----------------- + | utf8 | + ----------------- + 1 ряд в наборе (0,00 сек)
Функция MySQL COERCIBILITY ()
В MySQL функция COERCIBILITY () используется для возврата значения сопоставимости сопоставления строкового аргумента.
Синтаксис:
Принуждения (ул)
str - строковый аргумент.
пример
mysql> SELECT COERCIBILITY ('xyz' COLLATE latin1_swedish_ci); + ----------------------------------------------- + | УДОБНОСТЬ (COLLATE 'xyz' latin1_swedish_ci) | + ----------------------------------------------- + | 0 | + ----------------------------------------------- + 1 ряд в наборе (0,00 сек) mysql> SELECT COERCIBILITY (USER ()); + ---------------------- + | УДОБСТВО (ПОЛЬЗОВАТЕЛЬ ()) | + ---------------------- + | 3 | + ---------------------- + 1 ряд в наборе (0,00 сек) mysql> SELECT COERCIBILITY (concat ('aaa', 'ddd')); + ----------------------------------- + | УДОБНОСТЬ (concat ('aaa', 'ddd')) | + ----------------------------------- + | 4 | + ----------------------------------- + 1 ряд в наборе (0,01 с)
Возвращаемые значения имеют значения, показанные в следующей таблице. Более низкие значения имеют более высокий приоритет.
сжимаемость | Имея в виду | пример |
---|---|---|
0 | Явное сопоставление | Значение с предложением COLLATE |
1 | Без сортировки | Конкатенация строк с различными параметрами сортировки |
2 | Неявное сопоставление | Значение столбца |
3 | Системная константа | USER () возвращаемое значение |
4 | сжимаемый | Литеральная строка |
5 | игнорируемый | NULL или выражение, полученное из NULL |
Функция MySQL COLLATION ()
В MySQL функция COLLATION () используется для возврата параметров сортировки строкового аргумента.
Синтаксис:
COLLATION (ул)
str - строковый аргумент.
пример
mysql> SELECT COLLATION ('xyz'); + ------------------- + | COLLATION ('xyz') | + ------------------- + | latin1_swedish_ci | + ------------------- + 1 ряд в наборе (0,00 сек) mysql> SELECT COLLATION (_cp1251'xyz '); + ------------------------- + | COLLATION (_cp1251'xyz ') | + ------------------------- + | cp1251_general_ci | + ------------------------- + 1 ряд в наборе (0,00 сек)
Функция MySQL CONNECTION_ID ()
В MySQL функция CONNECTION_ID () используется для возврата идентификатора соединения для соединения. Каждое соединение имеет уникальный идентификатор среди множества подключенных в данный момент клиентов.
Синтаксис:
Connection_id ()
пример
mysql> SELECT CONNECTION_ID (); + ----------------- + | CONNECTION_ID () | + ----------------- + | 4 | + ----------------- + 1 ряд в наборе (0,02 сек))
MySQL CURRENT_USER (), CURRENT_USER
В MySQL функция CURRENT_USER () используется для возврата комбинации имени пользователя и имени хоста для учетной записи MySQL, которую сервер использовал для аутентификации текущего клиента. Эта учетная запись определяет ваши права доступа. Возвращаемое значение - строка в наборе символов utf8.
Значения CURRENT_USER () и USER () могут различаться.
пример
mysql> SELECT USER (); + ---------------- + | ПОЛЬЗОВАТЕЛЬ () | + ---------------- + | [электронная почта защищена] | + ---------------- + 1 ряд в наборе (0,00 сек) mysql> SELECT CURRENT_USER (); + ---------------- + | CURRENT_USER () | + ---------------- + | [электронная почта защищена] | + ---------------- + 1 ряд в наборе (0,00 сек)
MySQL DATABASE () Функция
В MySQL функция DATABASE () используется для возврата текущего (по умолчанию) имени базы данных в виде строки в наборе символов utf8. Возвращает NULL, если базы данных по умолчанию нет.
пример
mysql> SELECT DATABASE (); + ------------ + | БАЗА ДАННЫХ () | + ------------ + | empoloyee | + ------------ + 1 ряд в наборе (0,00 сек)
Функция MySQL FOUND_ROWS ()
В MySQL предложение LIMIT вместе с оператором SELECT используется для ограничения числа строк, которые сервер возвращает клиенту. Однако необходимо, чтобы, сколько строк оператор вернул бы без LIMIT, но без повторного выполнения оператора. Чтобы получить это количество строк, в оператор SELECT можно включить параметр SQL_CALC_FOUND_ROWS, а затем использовать FOUND_ROWS (), чтобы узнать, сколько строк вернул последний запрос.
пример
mysql> SELECT SQL_CALC_FOUND_ROWS * ОТ сотрудников ГДЕ employee_id> 100 LIMIT 50,10; mysql> SELECT FOUND_ROWS (); + -------------- + | FOUND_ROWS () | + -------------- + | 106 | + -------------- + 1 ряд в наборе (0,00 сек)
Здесь в приведенном выше примере первый запрос вернет (отобразит) 10 строк в таблице employee, для которых условие employee_id> 100. Второй вызов команды SELECT возвращает количество строк, которые были бы возвращены первой командой SELECT, если бы она была записана без выражения LIMIT. Хотя с помощью команды SELECT SQL_CALC_FOUND_ROWS MySQL должен считать все строки в наборе результатов, этот метод все же работает быстрее, чем без LIMIT, поскольку они не хотят отправлять результат клиенту.
Назначение SQL_CALC_FOUND_ROWS для UNION состоит в том, чтобы он возвращал количество строк, которые будут возвращены без глобального LIMIT.
- Ключевое слово SQL_CALC_FOUND_ROWS должно быть указано в первом операторе SELECT.
- Значение FOUND_ROWS () будет точным, только если UNION ALL. Если указано без UNION ALL, происходит дедупликация, и значение FOUND_ROWS () может быть приблизительным.
- Если нет в LIMION UNIT, SQL_CALC_FOUND_ROWS игнорируется и возвращает количество строк во временной таблице, созданной для выполнения UNION.
MySQL LAST_INSERT_ID ()
В MySQL функция LAST_INSERT_ID () используется для возврата идентификационного номера последней строки, вставленной с использованием соединения MySQL.
Эта функция возвращает идентификационный номер последней строки, вставленной с использованием соединения MySQL. Идентификационные номера, которые были установлены вручную при вставке строк, без использования AUTO_INCREMENT, не будут регистрироваться и, следовательно, не будут возвращены LAST_INSERT_ID (). Если несколько строк вставляются одним оператором SQL, LAST_INSERT_ID () возвращает идентификационный номер для первой вставленной строки.
Синтаксис:
LAST_INSERT_ID () или же LAST_INSERT_ID (выражение)
пример
Тест CREATE TABLE (id INT AUTO_INCREMENT NOT NULL ПЕРВИЧНЫЙ КЛЮЧ, col1 VARCHAR (10) NOT NULL); Запрос в порядке, затронуто 0 строк (0,08 с) mysql> INSERT INTO test VALUES (NULL, '1st row'); Запрос в порядке, 1 строка затронута (0,00 с) mysql> SELECT * FROM test; + ---- + --------- + | id | col1 | + ---- + --------- + | 1 | 1-й ряд | + ---- + --------- + 1 строка в наборе (0,00 с) mysql> SELECT LAST_INSERT_ID (); + ------------------ + | LAST_INSERT_ID () | + ------------------ + | 1 | + ------------------ + 1 строка в наборе (0,02 с) mysql> ВСТАВИТЬ В ЗНАЧЕНИЯ ТЕСТА -> (NULL, '2nd row'), (NULL, '3rd строка '), (NULL,' 4-я строка '); Запрос в порядке, затронуто 3 строки (0,00 с). Записи: 3 Дубликаты: 0 Предупреждения: 0 mysql> SELECT * FROM test; + ---- + --------- + | id | col1 | + ---- + --------- + | 1 | 1-й ряд | | 2 | 2-й ряд | | 3 | 3-й ряд | | 4 | 4-й ряд | + ---- + --------- + 4 строки в наборе (0,00 с) mysql> SELECT LAST_INSERT_ID (); + ------------------ + | LAST_INSERT_ID () | + ------------------ + | 2 | + ------------------ + 1 строка в наборе (0,00 сек)Хотя второй оператор INSERT вставил три новые строки в тестовую таблицу, идентификатор, сгенерированный для первой из этих строк, был равен 2, а значение, возвращаемое LAST_INSERT_ID () для следующего оператора SELECT, равно 2. Таким образом, мы можем сказать, что если мы вставьте много строк одним оператором select, LAST_INSERT_ID () покажет результат, с которого ID была запущена последняя вставка.
Функция MySQL ROW_COUNT ()
В MySQL функция ROW_COUNT () используется для возврата количества строк, затронутых предыдущим оператором SQL. Если предыдущий оператор не мог изменить строки данных или вы можете сказать, что это не INSERT, UPDATE, DELETE или другой такой оператор, эта функция вернет -1.
пример
mysql> CREATE TABLE test ( -> id INT AUTO_INCREMENT NOT NULL ПЕРВИЧНЫЙ КЛЮЧ, -> col1 VARCHAR (10) НЕ NULL ->); Запрос в порядке, затронуто 0 строк (0,03 сек) mysql> SELECT ROW_COUNT (); + ------------- + | row_count () | + ------------- + | -1 | + ------------- + 1 ряд в наборе (0,00 сек) mysql> INSERT INTO test VALUES (NULL, '1st row'); Запрос в порядке, затрагивается 1 строка (0,00 сек) mysql> SELECT ROW_COUNT (); + ------------- + | row_count () | + ------------- + | 1 | + ------------- + 1 ряд в наборе (0,00 сек) mysql> INSERT INTO VALUES -> (NULL, «2-й ряд»), (NULL, «3-й ряд»), (NULL, «4-й ряд»); Запрос в порядке, затронуто 3 строки (0,00 сек) Записи: 3 Дубликаты: 0 Предупреждения: 0 mysql> SELECT ROW_COUNT (); + ------------- + | row_count () | + ------------- + | 3 | + ------------- + 1 ряд в наборе (0,00 сек) mysql> SELECT * FROM test; + ---- + --------- + | id | col1 | + ---- + --------- + | 1 | 1-й ряд | | 2 | 2-й ряд | | 3 | 3-й ряд | | 4 | 4-й ряд | + ---- + --------- + 4 ряда в наборе (0,00 сек) mysql> SELECT ROW_COUNT (); + ------------- + | row_count () | + ------------- + | -1 | + ------------- + 1 ряд в наборе (0,00 сек) mysql> ОБНОВЛЕНИЕ теста SET col1 = '2-я строка теста' WHERE ID = 2; Запрос в порядке, 1 строка затронута, 1 предупреждение (0,02 с) Количество подходящих строк: 1 Изменено: 1 Предупреждений: 1 mysql> SELECT ROW_COUNT (); + ------------- + | row_count () | + ------------- + | 1 | + ------------- + 1 ряд в наборе (0,00 сек) mysql> DELETE FROM test WHERE ID = 4; Запрос в порядке, затрагивается 1 строка (0,00 с) mysql> SELECT ROW_COUNT (); + ------------- + | row_count () | + ------------- + | 1 | + ------------- + 1 ряд в наборе (0,00 сек) mysql> ALTER TABLE test ADD col2 VARCHAR (10) NOT NULL; Запрос в порядке, затронуто 3 строки (0,06 с) Записи: 3 Дубликаты: 0 Предупреждения: 0 mysql> SELECT ROW_COUNT (); + ------------- + | row_count () | + ------------- + | -1 | + ------------- + 1 ряд в наборе (0,00 сек) mysql> DROP TABLE test; Запрос в порядке, затронуто 0 строк (0,00 с) mysql> SELECT ROW_COUNT (); + ------------- + | row_count () | + ------------- + | -1 | + ------------- + 1 ряд в наборе (0,00 сек)
Здесь в приведенном выше примере после CREATE TABLE, ALTER TABLE, DROP TABLE, SELECT QUERY оператор ROW_COUNT возвращает -1, кроме того, что возвращает количество затронутых строк.
Функция MySQL SCHEMA ()
В MySQL функция SCHEMA () используется для возврата текущего (по умолчанию) имени схемы в виде строки в наборе символов utf8. Возвращает NULL, если базы данных по умолчанию нет. Эта функция является синонимом DATABASE ().
пример
mysql> ВЫБРАТЬ СХЕМУ (); + ----------- + | СХЕМА () | + ----------- + | empoloyee | + ----------- + 1 ряд в наборе (0,00 сек)
Функция MySQL USER ()
В MySQL функция USER () возвращает текущее имя пользователя MySQL и имя хоста в виде строки в наборе символов utf8.
пример
mysql> SELECT USER (); + ---------------- + | ПОЛЬЗОВАТЕЛЬ () | + ---------------- + | [электронная почта защищена] | + ---------------- + 1 ряд в наборе (0,00 сек)
В приведенном выше примере значение указывает имя пользователя, указанное при подключении к серверу, и клиентский хост, с которого клиент был подключен. Значение пользователя может отличаться от значения CURRENT_USER ().
Функция MySQL SESSION_USER ()
Эта функция аналогична MySQL USER (). Смотри выше.
Функция MySQL SYSTEM_USER ()
Эта функция аналогична MySQL USER (). Смотри выше.
MySQL VERSION () функция
В MySQL функция VERSION () используется для возврата строки, указывающей версию сервера MySQL. Строка использует набор символов utf8. Там может быть суффикс после номера версии.
пример
mysql> SELECT VERSION (); + ---------------------- + | ВЕРСИЯ () | + ---------------------- + | 5.1.36-community-log | + ---------------------- + 1 ряд в наборе (0,00 сек)
Предыдущая: MySQL Cast функции и операторы
Далее: MySQL XML Функции
Новый контент: Composer: менеджер зависимостей для PHP , R программирования