Как установить конкретное количество символов в SQL?

Всем привет. Изучаю SQL, а именно - создание таблиц. Как установить ограничение на числовое поле, я информацию нашёл, получилось:

rating – рейтинг, вещественное число. Принимает положительные значения от 0 до 10. rating FLOAT, CHECK (0 <= rating <= 10).

а вот что делать с символами, пока не понимаю. Может быть вы подскажете? Только без наворотов, пожалуйста))

country – страна фильма. Символьное поле, содержащее ровно 2 символа.


Ответы (2 шт):

Автор решения: Falcoln

Можешь использовать тип данных CHAR или VARCHAR (в зависимости от требований) и указать максимальное количество символов в скобках. Пример для поля "country" с ровно 2 символами:

CREATE TABLE movies (
    -- Другие поля таблицы...

    country CHAR(2)
);

В данном случае, CHAR(2) означает, что поле "country" будет содержать ровно 2 символа.

Если тебе нужно установить максимальное количество символов (а не фиксированное), то попробуй VARCHAR:

CREATE TABLE movies (
    -- Другие поля таблицы...

    country VARCHAR(2)
);

поле "country" с типом VARCHAR(2) может содержать до 2 символов, один тоже.

→ Ссылка
Автор решения: Akina
CREATE TABLE test (
  country_code CHAR(2) NOT NULL CHECK (2 = LENGTH(TRIM(country_code)))
)
INSERT INTO test VALUES ('AA')
INSERT INTO test VALUES ('A')
Check constraint 'test_chk_1' is violated.
INSERT INTO test VALUES ('AAA')
Data too long for column 'country_code' at row 1
INSERT INTO test VALUES ('A ')
Check constraint 'test_chk_1' is violated.
INSERT INTO test VALUES (' A')
Check constraint 'test_chk_1' is violated.
INSERT INTO test VALUES ('')
Check constraint 'test_chk_1' is violated.
INSERT INTO test VALUES (NULL)
Column 'country_code' cannot be null

fiddle

→ Ссылка