Как установить конкретное количество символов в SQL?
Всем привет. Изучаю SQL, а именно - создание таблиц. Как установить ограничение на числовое поле, я информацию нашёл, получилось:
rating – рейтинг, вещественное число. Принимает положительные значения от 0 до 10. rating FLOAT, CHECK (0 <= rating <= 10).
а вот что делать с символами, пока не понимаю. Может быть вы подскажете? Только без наворотов, пожалуйста))
country – страна фильма. Символьное поле, содержащее ровно 2 символа.
Ответы (2 шт):
Можешь использовать тип данных 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 символов, один тоже.
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