Maison  >  Article  >  base de données  >  Comment comprendre le concept de types de données dans MySQL ?

Comment comprendre le concept de types de données dans MySQL ?

坏嘻嘻
坏嘻嘻original
2018-09-15 11:15:011704parcourir

Le contenu de cet article explique comment comprendre le concept de types de données dans MySQL. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

1. Qu'est-ce que les données ?

Les données sont une collection d'informations, stockées dans une base de données dans un certain type de données. Les données comprennent des noms, des nombres, des devises, du texte, des images, des décimales, des calculs, des statistiques et bien plus encore, presque tout ce qui est imaginable. Les clients de données enregistrent en majuscules, minuscules ou en casse mixte, les données peuvent être manipulées ou modifiées et la plupart des données ne restent pas inchangées au cours de leur durée de vie.

Le type de données est utilisé pour spécifier les règles pour les données contenues dans la colonne. Il détermine comment les données sont stockées dans la colonne, y compris la largeur attribuée à la colonne, et si la valeur peut être des lettres, numéros, dates et heures. Toute donnée ou combinaison de données a un type de données correspondant. Ces types de données sont utilisés pour stocker des lettres, des chiffres, des dates et des heures, des images, des données binaires, etc. De manière plus détaillée, les données peuvent inclure des noms, des descriptions, des nombres, des calculs, des images, des descriptions d'images, des documents, etc.

Les données sont la finalité d'une base de données et doivent être protégées. La personne qui protège les données est l'administrateur de la base de données (DBA), mais chaque utilisateur de la base de données est également responsable de prendre les mesures nécessaires pour protéger les données.

2. Types de données de base

Le type de données est la caractéristique des données elles-mêmes, et ses caractéristiques sont définies dans les champs du tableau. Par exemple, nous pouvons spécifier qu'un champ doit contenir une valeur numérique et ne pas autoriser la saisie de chaînes de chiffres ou de lettres ; nous ne voulons pas non plus que des lettres soient saisies dans un champ qui stocke des valeurs monétaires. La définition des types de données pour chaque champ de la base de données peut réduire considérablement les données erronées dues aux erreurs dans la base de données. La définition de champ (définition du type de données) est une méthode de vérification des données qui indique les données pouvant être saisies dans chaque champ.

1. Chaîne de longueur fixe.

Les chaînes de longueur fixe ont généralement la même longueur et sont stockées en utilisant des types de données de longueur fixe. Voici la norme pour les chaînes SQL de longueur fixe :

CHARACTER(n)

n est un nombre qui définit le nombre maximum de caractères pouvant être enregistrés dans le champ.

Certaines implémentations SQL utilisent le type de données CHAR pour enregistrer des données de longueur fixe. Les lettres peuvent être enregistrées dans ce type de données.

Dans les types de données de longueur fixe, les espaces sont généralement utilisés pour compléter les caractères insuffisants. Si la longueur des caractères est de 10 et que les données d'entrée ne comportent que 5 chiffres, les 5 chiffres restants seront enregistrés sous forme d'espaces. Le remplissage garantit que chaque valeur du champ a la même longueur.

PS : N'utilisez pas de types de données de longueur fixe pour enregistrer des données de longueur variable, telles que des noms. Une mauvaise utilisation de types de données de longueur fixe peut entraîner un gaspillage d'espace disponible et affecter la comparaison précise des différents. données. . Les types de données de longueur variable doivent être utilisés pour enregistrer des chaînes de longueur variable afin d'économiser de l'espace dans la base de données.

2. Chaîne de longueur variable.

Sql prend en charge les chaînes de longueur variable, c'est-à-dire les chaînes de longueurs variables. Ce qui suit est la norme pour les chaînes SQL de longueur variable :

CHARACTER VARYING(n)

n est un nombre, indiquant le nombre maximum de caractères pouvant être stockés dans le champ.

Les types de données de chaîne de longueur variable courants incluent VARCHAR, VARINARY et VARCHAR2. VARCHAR est une norme ANSI et est également utilisé par Microsoft Sql Server et MySql ; VARINARY et VARCHAR2 sont tous deux utilisés par Oracle. Les champs définis sous forme de caractères peuvent contenir des chiffres et des lettres, ce qui signifie que les données peuvent contenir des caractères numériques. VARBINARY est similaire à VARCHAR et VARCHAR2, sauf qu'il contient des octets de longueur variable. Ce type de données est couramment utilisé pour stocker des données numériques, telles que des fichiers image.

Les types de données de longueur fixe utilisent des espaces pour combler les lacunes dans les champs, mais les chaînes de longueur variable ne le font pas. Par exemple, si la longueur d'un champ de longueur variable est définie sur 10 et que la longueur de la chaîne d'entrée est de 5, alors la longueur totale de la valeur est de 5 et les espaces ne seront pas utilisés pour combler les lacunes du champ. .

3. Type d'objet volumineux.

Certains types de données de longueur variable doivent stocker des données plus longues, dépassant la longueur généralement réservée aux champs VARCHAR, comme les types de données BLOB et TEXT désormais courants. Ces types de données sont spécifiquement conçus pour contenir de grands ensembles de données. BLOB est un gros objet binaire et ses données sont une très longue chaîne binaire. BLOB convient au stockage de fichiers multimédias binaires dans la base de données, tels que des images et des MP3.

Le type de données TEXT est un type de chaîne longue, qui peut être considéré comme un grand champ VARCHAR et est généralement utilisé pour enregistrer des caractères volumineux. dans l'ensemble de base de données, comme une entrée HTML pour un site de blog. L'enregistrement de ce type de données dans la base de données permet des mises à jour dynamiques du site.

4.Type numérique.

Les nombres sont stockés dans des champs définis comme un certain type numérique, comprenant généralement NUMBER, INTERGER, REAL/DECIMAL, etc.

Xiaomi est la norme pour les valeurs SQL :

(1).BIT(n);

(2).BIT VARYING(n);

(3).DECIMAL(p,s);

(4).INTEGER;

(5).SMALLINT;

(6).SIGINT;

(7).FLOAT(p,s);

(8).DOUBLE PRÉCISION(P,S);

(9).REAL(S);

P représente la longueur maximale du champ. s représente le nombre de chiffres après la virgule.

Un type numérique courant dans l'implémentation SQL est NUMERIC, qui est conforme à la norme ANSI. Les valeurs peuvent être 0, des nombres positifs, des nombres à virgule fixe et des nombres à virgule flottante. Voici un exemple d'utilisation de NUMERIC :

NUMERIC(s), cette commande limite la valeur maximale qu'un champ peut accepter à 99 999. Dans les implémentations de bases de données impliquées dans les exemples de ce livre, NUMERIC est implémenté en type DECIMAL.

5.Type décimal.

Le type décimal est la longueur totale de la valeur numérique. Par exemple, dans la définition numérique ZDECIMZAL(4,2), le nombre significatif de chiffres est 4, ce qui signifie que le nombre total de chiffres est 4. L'échelle est le nombre de chiffres après la virgule, qui est 2 dans la exemple précédent. Si le nombre de décimales dans la valeur réelle dépasse le nombre de chiffres défini, la valeur sera arrondie. Par exemple, lorsque 34,33 est écrit dans un champ défini comme DECIMAL(3,1), elle sera arrondie à 34,3. .

Si la valeur est définie comme suit, sa valeur maximale est de 99,99 :

DECIMAL(4,2)

Les chiffres effectifs sont 4, indiquant que la longueur totale de la valeur est 4 ; L'échelle est 2, ce qui signifie que 2 chiffres sont conservés après la virgule. Le point décimal lui-même ne compte pas comme un caractère.

Les champs définis comme DECIMAL(4,2) permettent des tableaux d'entrée comprenant :

(1).12

(2).12.4

( 3).12.44

(4).12.449

La dernière valeur 12,449 est arrondie à 12,45 lorsqu'elle est enregistrée dans le champ. Dans cette définition, toute valeur comprise entre 12,45 et 12,499 sera arrondie à 12,45.

6.

Un entier est une valeur numérique (comprenant des nombres positifs et négatifs) sans point décimal.

Voici quelques entiers valides :

(1).1;

(2).0;

(3).-1;

(4).99;

(5).-99;

(6).199;

7.

Les nombres à virgule flottante sont des valeurs décimales avec des chiffres significatifs variables et une échelle variable et sans limite. Tous les chiffres et échelles significatifs sont acceptables. Le type de données REAL représente une valeur à virgule flottante simple précision, tandis que DOUBLE PRECISION représente une valeur à virgule flottante double précision. Les chiffres effectifs d'une valeur à virgule flottante simple précision sont compris entre 1 et 21 (inclus) et les chiffres effectifs d'une valeur à virgule flottante double précision sont compris entre 22 et 53 (inclus). Voici quelques exemples de types de données FLOAT :

(1).FLOAT;

(2).FLOAT(15);

(3).FLOAT(50 ) ;

8. Types de date et d’heure.

Les types de données de date et d'heure sont évidemment utilisés pour stocker des informations de date et d'heure. Standard SQL prend en charge le type de données DATETIME, qui inclut les types suivants :

(1).DATE;

(2).TIME;

(3).DATETIME;

(4).TIMESTAMP;

Les éléments de type de données DATETIME incluent :

(1).YEAR;

(2).MONTH;

(3).DAY;

(4).HOUR;

(5).SECOND;

ps : L'élément SECOND peut être décomposé en plusieurs points Une seconde, sa plage est de 00,000 à 61,999, mais toutes les implémentations SQL ne prennent pas en charge cette plage. Les 1,999 secondes supplémentaires sont utilisées pour réaliser des secondes intercalaires.
Chaque implémentation SQL peut avoir un type de données personnalisé pour enregistrer la date et l'heure. Les types de données et les éléments introduits précédemment sont des normes auxquelles chaque fournisseur SQL doit adhérer, mais la plupart des implémentations ont leurs propres types de données pour conserver les valeurs de date sous une forme différente de la façon dont elles sont réellement stockées.

Les données de date ne spécifient généralement pas de longueur. Plus tard, nous présenterons le type de date plus en détail, y compris la manière dont les informations de date sont stockées dans certaines implémentations, comment utiliser les fonctions de conversion pour manipuler les dates et les heures, et utiliserons des exemples pour montrer comment utiliser les dates et les heures dans des travaux pratiques.

9. Chaîne littérale.

Une chaîne littérale est une série de caractères, tels qu'un nom ou un numéro de téléphone, explicitement spécifiés par l'utilisateur ou le programme. Les chaînes littérales contiennent des données avec les mêmes propriétés que les types de données introduits précédemment, mais la valeur de la chaîne est connue. Les valeurs des colonnes elles-mêmes ne sont généralement pas déterministes car chaque colonne contient généralement des valeurs différentes pour le champ dans tous les enregistrements.

Il n'est pas réellement nécessaire de spécifier le champ comme type de données chaîne littérale, mais comme chaîne. Des exemples de chaînes littérales sont les suivants :

(1).'Bonjour';

(2).45000;

(3).'45000'; >

(4).3.14;

(5).'1er novembre 1997';

La chaîne de caractères est entourée de guillemets simples et la valeur 45000 n'a pas de guillemets simples entouré, et le deuxième 45 000 est entouré de guillemets doubles. De manière générale, les chaînes de caractères nécessitent des guillemets simples, mais pas les chaînes numériques.

Conversion implicite d'un type de données en un type numérique. Au cours de ce processus, la base de données déterminera automatiquement quel type de données doit être utilisé. Par conséquent, si une donnée n'est pas entourée de guillemets simples, le programme SQL l'identifiera comme un type numérique. Une attention particulière doit donc être portée au format des données. Dans le cas contraire, les résultats du stockage pourraient être biaisés ou des erreurs pourraient être signalées. Nous expliquerons plus tard comment utiliser des chaînes littérales dans les requêtes de base de données.

10.Type de données NULL.

Une valeur NULL signifie aucune valeur. Les valeurs NULL sont largement utilisées en SQL, notamment pour la création de tables, les conditions de recherche de requêtes et même les chaînes littérales.

Lors de l'utilisation du type de données NULL, il doit être clairement indiqué que le champ correspondant ne nécessite pas de saisie de données. Si un champ doit contenir des données, définissez-le sur NOT NULL. Tant que le champ ne peut pas contenir de données, il est préférable de le définir sur NULL.

11. Valeur booléenne.

La plage de valeurs des valeurs booléennes est TRUE, FlASE et NULL, qui sont utilisées pour la comparaison des données. Par exemple, lorsque vous définissez des conditions dans une requête, chaque condition est évaluée comme TRUE, FLASE ou NULL. Si la valeur de toutes les conditions de la requête est TRUE, les données seront renvoyées ; si la valeur d'une certaine condition est FLASE ou NULL, les données ne seront pas renvoyées. Par exemple, l'exemple suivant :

WHERE NAME = 'SMITH'

Cela peut être une condition dans la requête. Chaque ligne de données de la table cible est évaluée en fonction de cette condition. Si la valeur du champ NOM d'une ligne de la table est SMITH, la valeur de la condition est TRUE et l'enregistrement correspondant sera renvoyé.

La plupart des implémentations de bases de données n'ont pas de type BOOLEAN strict, mais utilisent plutôt des méthodes d'implémentation différentes. MySql utilise le type BOOLEAN, mais est essentiellement le même que son type TINYINT existant. Oracle préfère permettre aux utilisateurs d'utiliser une valeur CHAR(1) au lieu d'une valeur booléenne, tandis que SQL Server utilise BIT à la place.

12. Type personnalisé.

Les types personnalisés sont des types définis par l'utilisateur, qui permettent aux utilisateurs de personnaliser leurs propres types de données en fonction des types de données existants pour répondre aux besoins de stockage de données. Les types personnalisés enrichissent considérablement les possibilités de stockage de données, offrant aux développeurs une plus grande flexibilité dans le processus de développement des programmes de bases de données. L'instruction CREATE TYPE est utilisée pour créer un type personnalisé.

Par exemple, dans MySql et Oracle, vous pouvez créer un type comme celui-ci :

CREATE TYPE PERSON ASOBJECT

(NAME VARCHER (30),

SSN VARCHAR(9);

)

Le type personnalisé peut ensuite être référencé comme ceci :

CREATE TABLE EMP_PAY

(EMPLOYEE PERSONNE,

SALARY DECIMAL(10,2),

HIRE_DATE DATE);

Le type d'EMPLOYÉ dans la première colonne du tableau EMP_PAY est PERSONNE, ce qui est exactement ce est affiché devant Type personnalisé créé.

13.

Un champ est un ensemble de types de données valides qui peuvent être utilisés. Les domaines sont associés à des données afin que seules des données spécifiques soient acceptées. Une fois le domaine créé, nous pouvons ajouter des contraintes au domaine. Les contraintes fonctionnent avec les types de données pour restreindre davantage les données qu'un champ peut accepter. Les champs sont utilisés de la même manière que les types personnalisés.

Créez un domaine comme celui-ci :

CREATE DOMAIN MONEY_D AS NUMBER(0,2);

Ajoutez des contraintes au domaine comme ceci :

ALTER DOMAIN MONEy_D

ADD CONSTRAINT MONEY_CON

CHECK(VALUE>5);

Puis référencez le domaine comme ceci :

CREATE TABLE EMP_PAY

(EMP_ID NUMBER(9),

EMP_NAME VARCHER2(30),

PAY_RATE MONEY_D);

3.Résumé

Sql a une variété de types de données, ceux-ci ne sont pas étrangers à quiconque a utilisé d’autres langages de programmation. Les types de données permettent d'enregistrer différents types de données dans la base de données, tels que des caractères simples, des décimales, des dates et des heures. Que vous utilisiez un langage de programmation de troisième génération comme C ou que vous utilisiez une base de données relationnelle pour implémenter le codage SQL, le concept de types de données est le même. Bien entendu, les noms des types de données varient d’une implémentation à l’autre, mais leur fonctionnement est fondamentalement le même. De plus, il n'est pas nécessaire qu'un système de gestion de base de données relationnelle soit implémenté pour tous les types de données spécifiés dans la norme ANSI pour être considéré comme compatible avec ANSI. Il est donc préférable de consulter la documentation spécifique pour comprendre les types de données utilisés.

Assurez-vous de planifier soigneusement à court et à long terme lorsque vous tenez compte du type, de la longueur, de l'échelle et de la précision des données. En outre, les politiques de l’entreprise et la manière dont vous souhaitez que les utilisateurs accèdent aux données sont également des facteurs à prendre en compte. Les développeurs doivent comprendre la nature des données. et comment les données sont liées les unes aux autres dans la base de données afin que les types de données appropriés soient utilisés.


Cet article décrit uniquement les types de données de SQL ! Description en texte pur ! Cet article est extrait de « SQL Beginner's Classic ». L'article suivant explique comment démarrer avec SQL (3) Gestion des objets de base de données !


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:
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