Я только начал изучать SQL меньше, чем неделю назад, и я заметил, что в SQL Server строка может быть типа nvarchar(5)
или nvarchar(20)
или любого другого номера. Мне просто интересно, какая разница между nvarchar
различного количества?В чем разница между nvarchar разного числа?
ответ
Это декларативное заявление, на которое вы ссылаетесь.
По заявлению, это метод объявления. MySQL имеет разные правила в зависимости от контекста, поэтому стоит потратить время на знание синтаксиса.
В SQL, например MySQL, существуют некоторые типы данных, которые могут иметь переменную длину.
То, что вы видите, является декларативным заявлением, в котором NVARCHAR имеет разную длину.
<DATA TYPE> (<character length>)
NVARCHAR(5) -- 5 unicode characters long.
NVARCHAR(20) -- unicode length of 20 characters
Если вы не указали длину, эти типы данных будут иметь длину одного символа. Поэтому стандарт позволяет объявлять круглые скобки.
Примеры синтаксических различий:
DECLARE @string NVARCHAR(5);
SELECT CAST(<some_column> AS NVARCHAR(20)
FROM <some_table>
CREATE TABLE <schema_name>.<table_name>
(firstColumn NVARCHAR(20) NOT NULL
, secondColumn INT not null)
Как и многие другие языки, если не является сдерживающим фактором для предотвращения перелива ввода любой вставки символа больше, чем длина становится TRUNCATED
... или отрезать, чтобы поместиться внутри колонка.
Число представляет собой длину содержимого. В столбце или переменной, которая определена как nvarchar(5)
, вы можете поместить строку символов в Юникод длиной 5 символов. В столбце или переменной, которая определена как nvarchar(20)
, вы можете поместить строку длиной в 20 символов для юникода.
Это очень простой материал в sql, я предлагаю прочитать хороший учебник по sql и прийти сюда с вопросами, которые немного более продвинуты.
Есть ли у вас рекомендации по хорошей книге sql? а также, когда я указываю nvarchar (5), я все еще могу вставить длину строки, которая больше 5, это должно произойти? Большое спасибо за Вашу помощь! – Thor
Не для книги, но вы можете начать с учебника по w3schools sql и перейти к более продвинутым материалам позже. Если вы попытаетесь вставить строку длиной 20 символов в колонку 'nvarchar (5)', то sql-сервер поднимет ошибку, говорящую, что строка или двоичные данные будут усечены ». –
Большое вам спасибо за совет! – Thor
Возможный дубликат [Каковы основные различия в производительности между типами данных varchar и nvarchar SQL Server?] (Http://stackoverflow.com/questions/35366/what-are-the-main-performance-differences-between- varchar-and-nvarchar-sql-serve) – theinarasu
@theinarasu, по крайней мере, вопрос не о перформансах, а синтаксисе языка. –