A diferença entre varchar e nvarchar indica como os dados são armazenados em um banco de dados. Um sistema de banco de dados consiste em dados e os dados são definidos por tipos de dados. Um tipo de dados informa que tipo de valor uma coluna pode conter. Cada coluna em uma tabela de banco de dados deve ter um nome e um tipo de dados. Hoje, existem muitos tipos de dados disponíveis no design de banco de dados. Fora desses tipos de dados, varchar e nvarchar são usados para armazenar caracteres de sequência. Varchar e Nvarchar parecem intercambiáveis. Mas esses dois tipos têm vantagens diferentes e são usados para finalidades diferentes.
Como o nome sugere, varchar é um caráter variado ou char variável. A sintaxe do varchar é VARCHAR [(n | max)]. O Varchar armazena dados ASCII que não são Unicode e são o tipo de dados usado no uso normal. Varchar usa um byte por caractere. Ele também armazena o comprimento de cada sequência no banco de dados. O Varchar possui um comprimento de dados variável e pode armazenar um máximo de 8000 caracteres não Unicode. Esse tipo de dados é muito flexível e aceita os mais diferentes tipos de dados. O Varchar não permite armazenar caracteres em branco para as partes não utilizadas da string. O tamanho máximo de armazenamento do varchar é de 2 GB e o tamanho real do armazenamento de dados é o tamanho real dos dados mais dois bytes. Embora o varchar seja mais lento que o char, ele usa alocação de memória dinâmica. Não apenas as strings, mas também os tipos que não são strings, como tipos de data, "14 de fevereiro", "11/11/2014" também podem ser armazenados no tipo de dados varchar.
Nvarchar sugere uma caráter nacional variado ou um caractere nacional variável. A sintaxe de nvarchar é NVARCHAR [(n | max)]. Nvarchar pode armazenar diferentes tipos de dados com comprimento variável. São dados Unicode e dados e idiomas multilíngues, com caracteres do tipo byte duplo em chinês. Nvarchar usa 2 bytes por caractere e pode armazenar um limite máximo de 4000 caracteres e um comprimento máximo de 2 GB. Nvarchar trata “” como uma string vazia e com zero caracteres. O tamanho do armazenamento é o dobro do número de caracteres, mais dois bytes. No nvarchar, os espaços à direita não são removidos quando o valor é armazenado e recebido.
A principal diferença entre varchar e nvarchar indica como os dados são armazenados em um banco de dados.
• Varchar armazena valores ASCII e nvarchar armazena caracteres Unicode.
• Varchar usa um byte por caractere enquanto nvarchar usa dois bytes por caractere.
• Varchar [(n)] armazena caracteres não Unicode com comprimento variável e Nvarchar [(n)] armazena caracteres Unicode com comprimento variável.
• O Varchar pode armazenar no máximo 8000 caracteres não Unicode e o nvarchar armazena no máximo 4000 caracteres Unicode ou não Unicode.
• Varchar é melhor usar em locais onde estão variáveis com caracteres não Unicode. Nvarchar é usado em locais onde variáveis com caracteres Unicode são.
• O tamanho do armazenamento de varchar é o número de bytes igual ao número de caracteres mais dois bytes reservados para deslocamento. Nvarchar usa um número de bytes igual ao dobro do número de caracteres mais dois bytes reservados para deslocamento.
• Todos os sistemas operacionais modernos e plataformas de desenvolvimento usam Unicode internamente. Portanto, o nvarchar é altamente usado em vez do varchar para evitar a conversão de tipos de dados.
Resumo:
Nvarchar vs Varchar
Varchar e nvarchar são tipos de dados de comprimento variável que usamos para armazenar diferentes tipos de strings. Esses tipos de dados são úteis em sistemas operacionais modernos. Essas variedades de tipos de dados evitam a conversão de dados de um tipo para outro, de acordo com os sistemas operacionais. Portanto, varchar e nvarchar ajudam o programador a identificar seqüências de caracteres Unicode e não Unicode sem muita dificuldade. Esses dois tipos de dados são muito úteis na programação.
Cortesia de imagens: