Types de didact...LOGIN

Types de didacticiels de base sur le développement PHP, jeux de caractères, moteurs et index

Type de données

MySQL stocke les données. Tant qu'il s'agit de données, nous préciserons le type de données. Un certain type de données est spécifié dans les champs de la table. Ensuite, le type de données correspondant doit être utilisé dans les données insérées. Respectez également les exigences de longueur du type de données.

Dans MySQL, nous divisons les types de données dans les types suivants :

  • Types numériques (entier, virgule flottante)

  • Chaîne type

  • Type date et heure

  • Type composite

Type entier

88.png


La longueur du type entier est différente, dans le le processus d'utilisation est PHP Academy.

MySQL étend la norme SQL sous la forme d'un indicateur de largeur d'affichage facultatif afin que lorsqu'une valeur est récupérée de la base de données, la valeur puisse être allongée jusqu'à une longueur spécifiée. Par exemple, en spécifiant que le type d'un champ est INT(6),
garantit que les valeurs contenant moins de 6 chiffres sont automatiquement complétées par des espaces lorsqu'elles sont extraites de la base de données. Notez que l'utilisation d'un indicateur de largeur n'affecte pas la taille du champ ni la plage de valeurs qu'il peut stocker.

Remarque :

  • Lors de la création de champs de table, nous pouvons utiliser de minuscules entiers non signés pour représenter le sexe. Utilisez 0 pour représenter une femme et 1 pour représenter un homme. Utilisez 2 pour représenter l’inconnu.

  • De la même manière que l'âge humain, des entiers non signés peuvent être utilisés lors de la création de champs de table. Parce que l'âge humain n'a pas de nombre négatif

  • en usage réel. Quelle est la valeur maximale qui doit être stockée dans notre entreprise. Lorsque nous créons une table, nous choisissons quel type stocker ces valeurs.

Type à virgule flottante

89.png


Remarque :

La virgule flottante est une valeur inexacte, et il peut y avoir des inexactitudes

Et la décimale est appelée un nombre à virgule fixe. Dans MySQL, il est essentiellement stocké sous forme de chaîne. En utilisation réelle, s'il existe un stockage de nombres à virgule flottante avec des exigences relativement élevées en matière de précision du montant et de l'argent, il est recommandé d'utiliser le type décimal (nombre à virgule fixe).

Type de caractère

90.png


Le type

*CHAR * est utilisé pour les chaînes de longueur fixe et doit être défini avec un modificateur de taille entre parenthèses. Ce modificateur de taille va de 0 à 255. Les valeurs supérieures à la longueur spécifiée seront tronquées, tandis que les valeurs inférieures à la longueur spécifiée seront complétées par des espaces.
*VARCHAR * Traitez cette taille comme la taille de la valeur. Si la longueur n'est pas insuffisante, utilisez des espaces pour la compenser. Le type VARCHAR, en revanche, la traite comme la valeur maximale et utilise uniquement la longueur réellement nécessaire pour stocker la chaîne. Le type
ne sera pas complété par des espaces, mais les valeurs plus longues que l'indicateur le seront toujours. tronqué.
Étant donné que le type VARCHAR peut modifier dynamiquement la longueur de la valeur stockée en fonction du contenu réel, l'utilisation du type VARCHAR lorsque vous n'êtes pas sûr du nombre de caractères requis par un champ peut considérablement économiser de l'espace disque et améliorer l'efficacité du stockage.

Type de texte et type de blob Lorsque la longueur requise du champ dépasse 255, MySQL propose deux types : TEXT et BLOB. Ils ont tous des sous-types différents en fonction de la taille des données stockées. Ces données volumineuses sont utilisées pour stocker des blocs de texte ou des types de données binaires tels que des images et des fichiers sonores.
Il existe des différences de classification et de comparaison entre les types TEXT et BLOB. Le type BLOB est sensible à la casse, tandis que TEXT n'est pas sensible à la casse. Les modificateurs de taille ne sont pas utilisés sur les différents sous-types BLOB et TEXT.

Type d'heure

91.png


Remarque :

Le type time est rarement utilisé dans les systèmes Web. De nombreuses personnes aiment utiliser int pour stocker l'heure. L'horodatage Unix est inséré lors de l'insertion, car cette méthode est plus pratique pour le calcul. Utilisez les fonctions de type de date dans les activités frontales pour convertir les horodatages Unix en heures que les gens peuvent reconnaître.

Vous pouvez choisir les types ci-dessus en fonction de la situation réelle

Certaines personnes utilisent le type datetime pour stocker l'heure afin de faciliter la visualisation dans la gestion de la base de données.

Type composite

92.png


Un type ENUM Une seule valeur peut être obtenue à partir d'une collection ; le type SET permet d'obtenir n'importe quel nombre de valeurs à partir d'une collection.

1. Type ENUM

Le type ENUM ne permet d'obtenir qu'une seule valeur dans la collection, ce qui est un peu similaire à une seule option. Plus facile à comprendre lorsqu’il s’agit de données mutuellement exclusives, telles que le sexe humain. Les champs de type ENUM peuvent prendre une valeur d'une collection ou utiliser une valeur nulle. Toute autre entrée amènera MySQL à insérer une chaîne vide dans le champ. De plus, si la casse de la valeur insérée ne correspond pas à la casse des valeurs de la collection, MySQL utilisera automatiquement la casse de la valeur insérée pour la convertir en une valeur cohérente avec la casse de la collection.

Le type ENUM peut être stocké sous forme de nombre en interne dans le système et est indexé à partir de 1. Un type ENUM peut contenir jusqu'à 65 536 éléments, dont un est réservé par MySQL pour stocker les informations d'erreur. Cette valeur d'erreur est représentée par l'index 0 ou une chaîne vide.

MySQL considère les valeurs apparaissant dans la collection de types ENUM comme une entrée légale, et toute autre entrée échouera. Cela montre que l'emplacement de l'enregistrement erroné peut être facilement trouvé en recherchant des lignes contenant une chaîne vide ou un index numérique correspondant de 0.

2.Type SET Le type SET est similaire au type ENUM mais pas le même. Le type SET peut obtenir n'importe quel nombre de valeurs à partir d'une collection prédéfinie. Et comme pour le type ENUM, toute tentative d'insertion d'une valeur non prédéfinie dans un champ de type SET entraînera l'insertion par MySQL d'une chaîne vide. Si vous insérez un enregistrement contenant à la fois des éléments légaux et illégaux, MySQL conservera les éléments légaux et supprimera les éléments illégaux.

Un type SET peut contenir jusqu'à 64 éléments. Dans un élément SET, la valeur est stockée sous la forme d'une séquence discrète de "bits" qui représentent son élément correspondant. Les bits sont un moyen simple et efficace de créer des collections ordonnées d'éléments.
Et il supprime également les éléments en double, il est donc impossible de contenir deux éléments identiques dans le type SET.
Pour trouver des enregistrements illégaux à partir d'un champ de type SET, recherchez simplement les lignes contenant des chaînes vides ou des valeurs binaires de 0.

les types sont utilisés


Nous avons appris tellement de types, utilisez simplement le type correspondant lors de la création d'une instruction de table.

Par exemple :

CREATE TABLE IF NOT EXISTS démo (
id int(11) NOT NULL,
username varchar(50) NOT NULL,
password char( 32) NOT NULL,
content longtext NOT NULL,
createtime datetime NOT NULL,
sex tinyint(4) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Champ d'autres paramètres d'attribut


  • UNSIGNED (non signé) Principalement utilisé pour les types entiers et à virgule flottante, utilisez non signé. C'est-à-dire qu'il n'y a pas de - (signe moins) précédent.
    Chiffres de stockage plus longs. La plage de valeurs de l’entier tinyint est de -128 à 127. Après avoir utilisé des longueurs non signées, 0 à 255 peuvent être stockées.

Ajouter après l'instruction de champ entier ou à virgule flottante lors de la création :

non signé

  • ZEROFILL (0 padding) 0 ( pas un espace) peut être utilisé pour compléter la valeur de sortie. Utilisez ce modificateur pour empêcher la base de données MySQL de stocker des valeurs négatives.

Lors de la création, ajoutez :

zerofill

  • default L'attribut par défaut garantit que lorsqu'aucune valeur n'est disponible, une constante valeur est attribuée. Cette valeur doit être une constante car MySQL ne permet pas l'insertion de valeurs de fonction ou d'expression. De plus, cette propriété ne peut pas être utilisée avec les colonnes BLOB ou TEXT. Si l'attribut NULL a été spécifié pour cette colonne, la valeur par défaut sera NULL si aucune valeur par défaut n'est spécifiée, sinon la valeur par défaut dépendra du type de données du champ.

Lors de la création, suivez l'instruction de champ entier ou à virgule flottante :

valeur par défaut

  • non nul Si une colonne est définie comme non nulle, les valeurs nulles ne pourront pas être insérées dans la colonne. Il est recommandé de toujours utiliser l'attribut non nul dans les situations importantes, car il fournit une validation de base indiquant que toutes les valeurs nécessaires ont été transmises à la requête.

Lors de la création, ajoutez l'instruction de champ entier ou à virgule flottante :

  • not null

null Lors de la spécification de l'attribut null pour une colonne, la colonne peut rester vide, que d'autres colonnes de la ligne aient été remplies ou non. N'oubliez pas que null signifie "aucun" pour être précis, pas la chaîne vide ou 0.

Ne déclarez simplement pas non nul après l'instruction de champ entier ou à virgule flottante lors de la création.


Jeu de caractères

Quel est le jeu de caractères


Afin de mieux reconnaître le chinois, le japonais, l'anglais et le grec. Les symboles couramment utilisés sont codés, et cet encodage est le jeu de caractères.

Le jeu de caractères détermine la manière dont le texte est stocké.

Le jeu de caractères est équivalent au langage humain dans l'ordinateur.

Par exemple :

Je parle anglais, donc lorsque je l'enregistre, je dois utiliser du texte anglais pour le stocker.
Si je parle en chinois et que j'utilise des caractères anglais pour le stocker. Ensuite, les gens ne peuvent pas le lire ou le comprendre, c’est ce que nous appelons du charabia.

Parce qu'il y a trop de jeux de caractères, assez pour en avoir des dizaines ou des centaines. Nous n'avons donc pas besoin d'en savoir beaucoup sur les jeux de caractères, ni même sur la façon dont les jeux de caractères sont compilés en caractères visibles par l'homme.

Connaissances clés des jeux de caractères


Nous avons seulement besoin de savoir :

  • Jeu de caractères couramment utilisé

  • Quel jeu de caractères utilisons-nous dans la base de données

Jeu de caractères anglais :

93.png


ASCII

Le code ASCII utilise une combinaison spécifiée de nombres binaires de 7 ou 8 bits pour représenter 128 ou 256 caractères possibles. Le code ASCII standard, également appelé code ASCII de base, utilise des nombres binaires de 7 bits pour représenter toutes les lettres majuscules et minuscules, les chiffres de 0 à 9, les signes de ponctuation et les caractères de contrôle spéciaux utilisés en anglais américain.
Parmi eux :
0~31 et 127 (33 au total) sont des caractères de contrôle ou des caractères spécifiques à la communication (les autres sont des caractères affichables), comme les caractères de contrôle : LF (saut de ligne), CR (retour chariot ), FF ( Saut de page), DEL (suppression), BS (retour arrière), BEL (sonnerie), etc. caractères spéciaux de communication : SOH (tête de texte), EOT (fin de texte), ACK (confirmation), etc. .; Les valeurs ASCII sont 8, 9, 10 et 13 sont respectivement converties en caractères de retour arrière, de tabulation, de saut de ligne et de retour chariot. Ils n'ont pas d'affichage graphique spécifique, mais auront des effets différents sur l'affichage du texte selon l'application.
32~126 (95 au total) sont des caractères (32 est un espace), dont 48~57 sont dix chiffres arabes de 0 à 9.
Les chiffres 65 à 90 sont 26 lettres anglaises majuscules, les chiffres 97 à 122 sont 26 lettres anglaises minuscules, et le reste est constitué de signes de ponctuation, de symboles arithmétiques, etc.

GBK

GBK est rétrocompatible avec l'encodage GB 2312. Il s'agit d'une spécification de codage informatique de caractères chinois définie par la République populaire de Chine. La version antérieure est GB2312.

Unicode

Unicode (Unicode, Universal Code, Unicode) Unicode est un système de codage de caractères développé par des organisations internationales qui peut s'adapter à tous les textes et symboles du monde. Pour répondre aux exigences de conversion et de traitement de texte multilingue et multiplateforme.

UTF-8

est un codage de caractères de longueur variable pour Unicode, et c'est également un code universel. Parce qu'UNICODE prend deux fois plus d'espace que l'ASCII et que l'octet de poids fort 0 n'est d'aucune utilité pour l'ASCII. Afin de résoudre ce problème, certains jeux de caractères de format intermédiaire sont apparus. Ils sont appelés formats de transformation universels, c'est-à-dire UTF (Universal Transformation Format)

L'encodage à utiliser dans le travail réel

Les jeux de caractères couramment utilisés en chinois sont divisés en utf-8 et GBK.

Ceux qui sont réellement utilisés sont les suivants :

94.png

Observez les caractéristiques de (Figure 1) et vous constaterez que le jeu de caractères MySQL se compose de trois parties :
1. Jeu de caractères
2. Langue
Type

. Enfin, le bin fait référence au jeu de caractères binaires et le ci suivant fait référence aux caractères insensibles à la casse lors du stockage et du tri.

Remarque :
mysql écrit utf8 lors de l'écriture de utf-8. N'ajoutez pas la ligne horizontale médiane.

95.png


TableMoteur

La puissance de MySQL est avec son moteur de stockage plug-in, nous pouvons utiliser différents moteurs de stockage en fonction des caractéristiques de la table pour obtenir les meilleures performances.

Si vous êtes suffisamment familier et possédez une certaine expérience professionnelle. Vous pouvez également utiliser le moteur MySQL open source d'Alibaba et NetEase sur votre propre serveur.

Vous pouvez apprendre les instructions pour créer des tables dans la section suivante « Instructions de définition de la structure de la base de données ». Lorsque mysql crée une table, vous pouvez spécifier le moteur correspondant.

Utiliser dans la commande mysql :

show moteurs

pour afficher tous les moteurs pris en charge par le serveur actuel.

Nous présentons plusieurs moteurs couramment utilisés et découvrons plusieurs moteurs moins couramment utilisés. Évitez de voir certains moteurs qui ne connaissent pas les concepts fonctionner réellement à l’avenir.

96.png

MyISAM

ne prend pas en charge les transactions, les verrous de table (verrous au niveau de la table, le verrouillage verrouillera la table entière), prend en charge les index de texte intégral et fonctionne rapidement. Souvent utilisé pour les entreprises qui lisent beaucoup.

  • La table du moteur de stockage myisam se compose de myd et myi. .myd est utilisé pour stocker les fichiers de données et .myi est utilisé pour stocker les fichiers d'index.

  • Pour les tables du moteur de stockage myisam, la base de données mysql met uniquement en cache ses fichiers d'index, et la mise en cache des fichiers de données est effectuée par le système d'exploitation lui-même.

InnoDB

  • prend en charge les transactions, principalement pour les applications de traitement de transactions en ligne (OLTP).

  • La conception du verrouillage de ligne prend en charge les clés étrangères, c'est-à-dire que les opérations de lecture ne sont pas verrouillées par défaut.

InnoDB est conçu pour des performances maximales lors du traitement d'énormes quantités de données.

Remarque :
Verrouillage de ligne : verrouillez cette ligne pendant les opérations d'écriture et de mise à jour pour empêcher d'autres personnes de l'utiliser.
Verrouillage de la table : lors des opérations d'écriture et de mise à jour, verrouillez la table pour empêcher d'autres personnes de l'utiliser.
Transaction : exploitez plusieurs données en même temps, si l'une des opérations de données échoue. Peut revenir à avant l'opération. Couramment utilisé dans les systèmes bancaires, de commerce électronique, financiers et autres.



Index

Index ressemble à un nom très distingué, Pour mettre c'est sans détour, c'est la dernière table des matières de notre livre.

Si vous utilisez le Dictionnaire Xinhua pour rechercher le caractère chinois "张", sans utiliser la table des matières, vous devrez peut-être passer de la première page du Dictionnaire Xinhua à la dernière page, ce qui peut prendre jusqu'à deux heures. Plus le dictionnaire est épais, plus cela vous prendra du temps. Vous utilisez maintenant le répertoire pour rechercher le caractère chinois "Zhang". La première lettre de Zhang est z, et les caractères chinois commençant par z partent de plus de 900 pages. Avec cet indice, cela ne vous prendra peut-être qu'une minute. recherche d'un caractère chinois. Cela montre l'importance de l'index sexe.

Les indices sont utilisés pour trouver rapidement les lignes qui ont une valeur spécifique dans une colonne.

Sans utiliser d'index, MySQL doit commencer à l'enregistrement 1 puis lire la table entière jusqu'à ce qu'il trouve la ligne pertinente. Plus la table est grande, plus cela prend du temps. Si la colonne interrogée dans la table possède un index, MySQL peut rapidement arriver au point où il recherche le milieu du fichier de données sans avoir à examiner toutes les données.

Bien sûr, il n'est pas facile d'avoir trop d'index. Plus on écrit d'index, plus la vitesse de modification est lente. Car lors de l'écriture de données modifiées, l'index doit également être modifié.

Type d'index MySQL

97.png

section suivante
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <?php echo "Hello World!!!"; ?> </body> </html>
soumettreRéinitialiser le code
chapitredidacticiel