Maison base de données tutoriel mysql Pourquoi j'ai revisité les bases de MS SQL Server : une plongée approfondie dans les types de données chaîne

Pourquoi j'ai revisité les bases de MS SQL Server : une plongée approfondie dans les types de données chaîne

Aug 30, 2024 am 06:40 AM

Aujourd'hui, lorsque j'ai évoqué les relations publiques avec mon manager (c'était concernant la procédure du magasin), mon manager m'a posé quelques questions à ce sujet.

Par exemple, Pourquoi déclarez-vous le type de données de la chaîne comme varchar(n) au lieu de nvarchar(n) et d'autres questions basées sur des scénarios ?

Vous avez peut-être également été confronté à une situation similaire avec des personnes âgées ou avec des enseignants au collège.

Bien que je lui ai donné des réponses, ce débat m'a posé des questions sur mes fondamentaux.

Et j'ai décidé de réviser dès le début.

En révisant, j'ai remarqué quelques points, que j'ai pensé partager avec vous tous, c'est pourquoi j'écris cet article.

Why I Revisited MS SQL Server Basics: A Deep Dive into String Data Types

Commençons par le début.

Lorsque nous créons une base de données, 2 fichiers sont générés en arrière-plan.

  1. Fichier de données : Il porte une extension (.mdf) et est appelé fichier de données principal.
  2. Fichier journal : Il a une extension (.ldf) et est connu sous le nom de fichier journal des transactions.

Bien que nous puissions configurer le nombre de fichiers à générer. Et si on configure plus de 2 fichiers il y a la 3ème catégorie qui est :

  • Fichiers définis par l'utilisateur : et ceux dits fichiers de données secondaires ayant l'extension (.ndf)

Chaque fois que nous effectuons une transaction DB, elle est d'abord stockée dans le fichier journal et une fois la transaction terminée, elle est mise à jour dans le fichier de données primaire.

La taille par défaut et la plus basse de chaque fichier est de 8 Mo et il n'y a pas de limite maximale. Et pour la base de données, selon Microsoft, une base de données peut atteindre 524 Po.

Requête Sélectionner ou Imprimer

Si vous avez utilisé la requête « sélectionner », vous avez peut-être également entendu parler de la requête « Imprimer ».

Comprenons quand utiliser lequel.

Fondamentalement, la requête "select" renvoie les données du tableau au format grille tandis que la requête "Print" renvoie les données sous forme de texte.

Ainsi, chaque fois que nous devons effectuer une opération sur les données d'une table, nous utilisons la requête "select" et principalement pour imprimer des journaux ou des erreurs, nous utilisons la requête "print".

Maintenant, discutons de la question d'entretien la plus préférée.

Why I Revisited MS SQL Server Basics: A Deep Dive into String Data Types

Char contre Varchar contre Nvarchar ?

Caractère :

Char stocke max 8 000 caractères et contient 1 octet par espace de caractère.

  • Si nous ne précisons pas la taille, par défaut SQL lui attribue 1 octet et ne contient qu'un seul caractère.

  • Si nous donnons plus d'entrées que la taille définie, les données sont automatiquement tronquées.

  • Char suit l'allocation de mémoire statique, donc si nous allouons une taille de 20 octets et stockons 10 caractères, SQL alloue toujours tout le stockage de 20 octets et les 10 octets restants seront considérés comme un perte d'espace.

Varchar :

  • Varchar peut stocker max 2 Go de données et contenir 1 octet par espace de caractère. Bien qu'il stocke jusqu'à 8 000 octets de données dans la table, tout ce qui dépasse est stocké dans le fichier texte.

  • Vous avez peut-être remarqué sa limite à 8 000 octets dans plusieurs articles.

  • Pour déclarer une colonne pour stocker 2 Go de données, nous pouvons utiliser varchar(max).

  • Varchar suit l'allocation dynamique de mémoire. Ainsi, si nous allouons une taille de 20 octets et stockons 10 caractères, SQL allouera uniquement 10 octets de stockage et les 10 octets restants seront enregistrés.

Nvarchar :

  • Nvarchar suit les mêmes propriétés que varchar, la seule différence est qu'il utilise 2 octets pour stocker un caractère.

  • car il suit les données standard Unicode, pour prendre en charge plusieurs langues.
    Et char, varchar suit les données standard ASCCI.

Il existe un autre type de données appelé Texte, mais il est obsolète, vous pouvez donc l'ignorer.

Il y a un article que j’ai trouvé très utile lors de mes recherches. Il contient des informations détaillées sur tous les types de données.

Vous pouvez le parcourir pour plus d'informations.

Si vous pensez que j'ai raté quelque chose ou que j'ai besoin de mettre à jour, n'hésitez pas à commenter. Cela m'aidera ainsi que notre communauté.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Réduisez l'utilisation de la mémoire MySQL dans Docker Réduisez l'utilisation de la mémoire MySQL dans Docker Mar 04, 2025 pm 03:52 PM

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE? Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE? Mar 19, 2025 pm 03:51 PM

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée Mar 04, 2025 pm 04:01 PM

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Qu'est-ce que Sqlite? Aperçu complet Qu'est-ce que Sqlite? Aperçu complet Mar 04, 2025 pm 03:55 PM

Qu'est-ce que Sqlite? Aperçu complet

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin) Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin) Mar 04, 2025 pm 03:54 PM

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape Mar 04, 2025 pm 03:49 PM

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)? Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)? Mar 18, 2025 pm 12:00 PM

Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)?

Comment configurer le cryptage SSL / TLS pour les connexions MySQL? Comment configurer le cryptage SSL / TLS pour les connexions MySQL? Mar 18, 2025 pm 12:01 PM

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?

See all articles