Существуют ли ограничения на длину строки в mysql? Sql длина строки length


LENGTH ФУНКЦИЯ — Oracle PL/SQL •MySQL •SQL Server

Узнайте, как использовать Oracle / PLSQL функцию LENGTH с синтаксисом и примерами.

Описание

Функция Oracle / PLSQL LENGTH возвращает длину указанной строки.

Синтаксис

Синтаксис функции Oracle / PLSQL LENGTH:

LENGTH( string1 )

Параметры или аргументы

string1 – строка, длину которой возвращает функция. string1 может быть CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, or NCLOB.

Примечание

Если string1 NULL, то функция LENGTH вернет NULL.

Применение

Функцию LENGTH можно использовать в следующих версиях Oracle / PLSQL:

  • Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i

Пример

Рассмотрим несколько примеров функции LENGTH и изучим, как использовать функцию LENGTH в Oracle / PLSQL.

SQL> SELECT LENGTH(NULL) FROM DUAL; LENGTH(NULL) ------------ NULL SQL> SELECT LENGTH('') FROM DUAL; LENGTH('') ---------- NULL SQL> SELECT LENGTH(' ') FROM DUAL; LENGTH('') ---------- 1 SQL> SELECT LENGTH('1') FROM DUAL; LENGTH('1') ----------- 1 SQL> SELECT LENGTH('Лавка Древностей') FROM DUAL; LENGTH('ЛАВКА ДРЕВНОСТЕЙ') ------------------------- 16 SQL> SELECT LENGTH('Лавка Древностей ') FROM DUAL; LENGTH('ЛАВКА ДРЕВНОСТЕЙ ') ------------------------- 17

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

SQL> SELECT LENGTH(NULL) FROM DUAL;

LENGTH(NULL)

------------

NULL

 

SQL> SELECT LENGTH('') FROM DUAL;

LENGTH('')

----------

NULL

 

SQL> SELECT LENGTH(' ') FROM DUAL;

LENGTH('')

----------

         1

 

SQL> SELECT LENGTH('1') FROM DUAL;

LENGTH('1')

-----------

          1

 

SQL> SELECT LENGTH('Лавка Древностей') FROM DUAL;

LENGTH('ЛАВКА ДРЕВНОСТЕЙ')

-------------------------

                       16

 

SQL> SELECT LENGTH('Лавка Древностей ') FROM DUAL;

LENGTH('ЛАВКА ДРЕВНОСТЕЙ ')

-------------------------

                       17

oracleplsql.ru

Как узнать длину поля в SQL.

Вы здесь: Главная - MySQL - SQL - Как узнать длину поля в SQL.

Здравствуйте, дорогие читатели. Мы продолжаем изучать SQL и сегодня разберемся, как узнать длину строки в SQL.

Описание

Иногда бывает полезно узнать длину какой-то строки в поле. Конечно, можно выбрать значение, а потом в PHP посчитать его длину, но тогда это будет выполняться дольше, да и не нужно это, ведь в SQL уже есть готовая функция для данной операции.

Название функции, что логично, - LEN()

Пример

К примеру, у нас есть табличка с какими-то полями и одно поле - имя пользователя.

Нам нужно узнать, какое самое длинное имя у пользователя, но, чтобы это сделать, длину имени нужно вычислить. А делается это вот таким образом:

SELECT name, LEN(name) AS length FROM users;

В результате мы получим табличку, где будет имя пользователя в первом столбце и длина имени - во втором.

Как видите, использовать данную функцию очень просто и не нужно никаких PHP.

Спасибо за внимание!

  • Создано 21.07.2014 20:16:50
  • Михаил Русаков
Предыдущая статья Следующая статья

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка: <a href="https://myrusakov.ru" target="_blank"><img src="https://myrusakov.ru//images/button.gif" alt="Как создать свой сайт" /></a>

    Она выглядит вот так:

  2. Текстовая ссылка:<a href="https://myrusakov.ru" target="_blank">Как создать свой сайт</a>

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи): [URL="https://myrusakov.ru"]Как создать свой сайт[/URL]

myrusakov.ru

sql - Длина целого числа в SQL (т.е. Длина десятичной строки)

На моей машине версии 2 и 3 выходят примерно одинаково и бить двух других.

Изменить: Хотя мне только что пришло в голову, что мой оригинальный тест был немного несправедлив на CASE, поскольку упорядочение операторов в порядке возрастания по порядку означает, что только 10 возможных номеров удовлетворяют первому условию и выйти рано. Я добавил дополнительный тест ниже. Вы также можете попробовать вложенные операторы CASE выполнить двоичный поиск.

SET NOCOUNT ON SET STATISTICS TIME ON PRINT 'Test 1'; WITH E00(N) AS (SELECT 1 UNION ALL SELECT 1), E02(N) AS (SELECT 1 FROM E00 a, E00 b), E04(N) AS (SELECT 1 FROM E02 a, E02 b), E08(N) AS (SELECT 1 FROM E04 a, E04 b), E16(N) AS (SELECT 1 FROM E08 a, E08 b), E32(N) AS (SELECT 1 FROM E16 a, E16 b), cteTally(N) AS (SELECT ROW_NUMBER() OVER (ORDER BY N) FROM E32) SELECT MAX(FLOOR(LOG10(N))+1) FROM cteTally WHERE N <= 10000000; PRINT 'Test 2'; WITH E00(N) AS (SELECT 1 UNION ALL SELECT 1), E02(N) AS (SELECT 1 FROM E00 a, E00 b), E04(N) AS (SELECT 1 FROM E02 a, E02 b), E08(N) AS (SELECT 1 FROM E04 a, E04 b), E16(N) AS (SELECT 1 FROM E08 a, E08 b), E32(N) AS (SELECT 1 FROM E16 a, E16 b), cteTally(N) AS (SELECT ROW_NUMBER() OVER (ORDER BY N) FROM E32) SELECT MAX(LEN(CONVERT(VARCHAR, N))) FROM cteTally WHERE N <= 10000000; PRINT 'Test 3'; WITH E00(N) AS (SELECT 1 UNION ALL SELECT 1), E02(N) AS (SELECT 1 FROM E00 a, E00 b), E04(N) AS (SELECT 1 FROM E02 a, E02 b), E08(N) AS (SELECT 1 FROM E04 a, E04 b), E16(N) AS (SELECT 1 FROM E08 a, E08 b), E32(N) AS (SELECT 1 FROM E16 a, E16 b), cteTally(N) AS (SELECT ROW_NUMBER() OVER (ORDER BY N) FROM E32) SELECT MAX(LEN(CAST(N AS VARCHAR(10)))) FROM cteTally WHERE N <= 10000000; PRINT 'Test 4'; WITH E00(N) AS (SELECT 1 UNION ALL SELECT 1), E02(N) AS (SELECT 1 FROM E00 a, E00 b), E04(N) AS (SELECT 1 FROM E02 a, E02 b), E08(N) AS (SELECT 1 FROM E04 a, E04 b), E16(N) AS (SELECT 1 FROM E08 a, E08 b), E32(N) AS (SELECT 1 FROM E16 a, E16 b), cteTally(N) AS (SELECT ROW_NUMBER() OVER (ORDER BY N) FROM E32) SELECT MAX(CASE WHEN N < 10 THEN 1 WHEN N < 100 THEN 2 WHEN N < 1000 THEN 3 WHEN N < 10000 THEN 4 WHEN N < 100000 THEN 5 WHEN N < 1000000 THEN 6 WHEN N < 10000000 THEN 7 WHEN N < 100000000 THEN 8 END) FROM cteTally WHERE N <= 10000000; PRINT 'Test 5'; WITH E00(N) AS (SELECT 1 UNION ALL SELECT 1), E02(N) AS (SELECT 1 FROM E00 a, E00 b), E04(N) AS (SELECT 1 FROM E02 a, E02 b), E08(N) AS (SELECT 1 FROM E04 a, E04 b), E16(N) AS (SELECT 1 FROM E08 a, E08 b), E32(N) AS (SELECT 1 FROM E16 a, E16 b), cteTally(N) AS (SELECT ROW_NUMBER() OVER (ORDER BY N) FROM E32) SELECT MAX(CASE WHEN N >= 100000000 THEN NULL WHEN N >= 10000000 THEN 8 WHEN N >= 1000000 THEN 7 WHEN N >= 100000 THEN 6 WHEN N >= 10000 THEN 5 WHEN N >= 1000 THEN 4 WHEN N >= 100 THEN 3 WHEN N >= 10 THEN 2 ELSE 1 END ) FROM cteTally WHERE N <= 10000000;

Результаты из примера, запускаемого на моем компьютере,

Test 1 CPU time = 9422 ms, elapsed time = 9523 ms. Test 2 CPU time = 7021 ms, elapsed time = 7130 ms. Test 3 CPU time = 6864 ms, elapsed time = 7006 ms. Test 4 CPU time = 9328 ms, elapsed time = 9456 ms. Test 5 CPU time = 6989 ms, elapsed time = 7358 ms.

qaru.site

Существуют ли ограничения на длину строки в mysql? Безопасный SQL

Строка, в общем, должна использоваться для короткого текста. Например, это VARCHAR(255) в MySQL.

Текст использует больший текст из базы данных, например, в MySQL, тип TEXT .

Для получения информации о том, как это работает, и о внутренностях в MySQL и ограничениях и т. Д., См. Другой ответ Pekka.

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

CHAR

Строка фиксированной длины, которая всегда сохраняется справа от пробелов до указанной длины при сохранении. Диапазон длины от 1 до 255 символов. При удалении значения удаляются пробелы. Значения CHAR сортируются и сравниваются без учета регистра в соответствии с набором символов по умолчанию, если не указано ключевое слово BINARY .

VARCHAR

Строка переменной длины. Примечание. При сохранении значения пробелы удаляются при удалении (это отличается от спецификации ANSI SQL) Диапазон длины от 1 до 255 символов. Значения VARCHAR сортируются и сравниваются без учета регистра, если не указано ключевое слово BINARY

TINYBLOB, TINYTEXT

Столбец BLOB или TEXT с максимальной длиной 255 (2 8 – 1) символов

BLOB, TEXT

Столбец BLOB или TEXT с максимальной длиной 65535 символов (2 16 – 1)

MEDIUMBLOB, MEDIUMTEXT

Столбец BLOB или TEXT с максимальной длиной 16777215 (2 24 – 1) символов

LONGBLOB, LONGTEXT

Столбец BLOB или TEXT с максимальной длиной 4294967295 (2 32 – 1) символов

См. Таблицу кратких справочных данных типов данных MySQL для получения дополнительной информации.

См. Руководство по mySQL для типов строк .

Varchar (String):

Значения в столбцах VARCHAR представляют собой строки переменной длины. Длина может быть указана как значение от 0 до 255 до MySQL 5.0.3 и от 0 до 65535 в 5.0.3 и более поздних версиях. Эффективная максимальная длина VARCHAR в MySQL 5.0.3 и более поздних версиях зависит от максимального размера строки (65 535 байт, которая распределяется между всеми столбцами) и используемого набора символов.

Текст: см. Требования к хранилищу

Если вы хотите текстовое поле фиксированного размера, используйте CHAR длина которого может превышать 255 символов. VARCHAR и TEXT имеют переменную длину.

sql.fliplinux.com