Maison > base de données > tutoriel mysql > le corps du texte

Explication détaillée des opérations sur les tables de données MySQL

迷茫
Libérer: 2017-03-26 14:03:58
original
1320 Les gens l'ont consulté

Créer une table de données

Ouvrir la base de données

UTILISER le nom de la base de données

mysql> USE D1;
Database changed
Copier après la connexion

Utiliser USE D1 pour ouvrir ; Base de données D1, nous pouvons visualiser la base de données actuellement ouverte via SELECT DATABASE(); :

mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| d1         |
+------------+1 row in set (0.00 sec)
Copier après la connexion

Créer une table de données

CREATE TABLE [ IF NOT EXISTS] table_name (
column_name type de données,
...
)

Cette structure est très simple, pour [IF NOT EXISTS], elle a été expliqué dans le premier article « Opérations de base MySQL » et ne sera pas répété ici.

Créons une table de données table1 :

mysql> CREATE TABLE table1(
    -> username VARCHAR(20),
    -> age TINYINT UNSIGNED,
    -> salary FLOAT(8,2) UNSIGNED
    -> );
Query OK, 0 rows affected (0.74 sec)
Copier après la connexion

Notez que UNSIGNED représente ici une valeur non signée, qui est un nombre positif. Vous pouvez consulter le "MySQL basic. types de données" " Vue, TINYINT UNSIGNED représente une valeur comprise entre 0 et 255.

Cela indique que la création est réussie. Nous pouvons le vérifier via l'instruction suivante :

SHOW TABLES [FROM db_name][LIKE 'pattern' WHERE expr]

mysql> SHOW TABLES FROM D1;
+--------------+
| Tables_in_d1 |
+--------------+
| table1       |
+--------------+1 row in set (0.00 sec)
Copier après la connexion

Ici, nous pouvons voir que la table1 a été créée.

Afficher la structure de la table de données

AFFICHER LES COLONNES DE tbl_name

mysql> SHOW COLUMNS FROM table1;
+----------+---------------------+------+-----+---------+-------+
| Field    | Type                | Null | Key | Default | Extra |
+----------+---------------------+------+-----+---------+-------+
| username | varchar(20)         | YES  |     | NULL    |       |
| age      | tinyint(3) unsigned | YES  |     | NULL    |       |
| salary   | float(8,2) unsigned | YES  |     | NULL    |       |
+----------+---------------------+------+-----+---------+-------+3 rows in set (0.10 sec)
Copier après la connexion

Insérer des enregistrements

Écrire après avoir créé la table Après en saisissant les données, insérez l'enregistrement via l'instruction suivante :

INSERT [INTO] tbl_name [(col_name,...)] VALUE(val,...)

Ici [(col_name,...)] est facultatif. S'il n'est pas ajouté, les valeurs de VALUE doivent correspondre aux champs de la table de données un par un, sinon cela ne peut pas l'être. inséré. Jetons un coup d'oeil :

mysql> INSERT table1 VALUE("LI",20,6500.50);
Query OK, 1 row affected (0.14 sec)
Copier après la connexion

Les parenthèses VALUE correspondent ici aux champs de la table1 un à un, qui sont username="LI", age=20, salaire=6500.50

Ensuite, nous insérons une autre donnée, mais il n'y a pas de correspondance :

mysql> INSERT table1 Value("Wang",25);
ERROR 1136 (21S01): Column count doesn't match value count at row 1
Copier après la connexion

ne peut pas être inséré car aucune valeur de salaire n'est donnée.

En ajoutant [(col_name,...)] vous pouvez insérer des données de manière flexible :

mysql> INSERT table1(username,age) VALUE("Wang",25);
Query OK, 1 row affected (0.11 sec)
Copier après la connexion

table1 correspond à VALEUR un à un.

Rechercher les données du tableau

Deux données ont été insérées précédemment. Vous pouvez rechercher les données du tableau via l'instruction suivante :

SELECT expr,.. . FROM tbl_name

Pour l'instruction de recherche de base de données SELECT, il y a beaucoup de contenu. L'article suivant l'expliquera en détail. Nous utilisons une instruction simple pour trouver le contenu de la table : <🎜. >

mysql> SELECT * FROM table1
    -> ;
+----------+------+---------+
| username | age  | salary  |
+----------+------+---------+
| LI       |   20 | 6500.50 |
| Wang     |   25 |    NULL |
+----------+------+---------+2 rows in set (0.00 sec)
Copier après la connexion
Notez que l'instruction MySQL commence par A la fin de ";", si vous oubliez d'écrire, l'instruction ne peut pas être exécutée, ajoutez simplement un point-virgule après la flèche ici nous pouvons voir qu'il y en a deux ; des éléments de données qui viennent d'être écrits dans le tableau.

Contraintes de base sur la création de table

NULL et NOT NULL dans les champs

Lors de la création d'une table, nous pouvons définir si le champ peut être nul, et s'il ne peut pas l'être , alors lors de l'insertion de données, il ne peut pas être vide.

Créons une table de données

table2 :

mysql> CREATE TABLE table2(
    -> username VARCHAR(20) NOT NULL,
    -> age TINYINT UNSIGNED NULL,
    -> salary FLOAT(8,2)
    -> );
Copier après la connexion
Ici, le nom d'utilisateur n'est pas vide, l'âge est NULL, le salaire n'est pas écrit, vérifions la structure de la table :

mysql> SHOW COLUMNS FROM table2;
+----------+---------------------+------+-----+---------+-------+
| Field    | Type                | Null | Key | Default | Extra |
+----------+---------------------+------+-----+---------+-------+
| username | varchar(20)         | NO   |     | NULL    |       |
| age      | tinyint(3) unsigned | YES  |     | NULL    |       |
| salary   | float(8,2)          | YES  |     | NULL    |       |
+----------+---------------------+------+-----+---------+-------+3 rows in set (0.01 sec)
Copier après la connexion
De là, nous pouvons voir que le NULL du nom d'utilisateur est NON, et les deux autres champs sont OUI. Pour les champs qui peuvent être vides, écrire NULL ou non signifie qu'ils peuvent être vides.

Numéro automatique

AUTO_INCREMENT

auto_increment, auto automatiquement, l'incrément signifie une augmentation Lorsqu'il est combiné, cela signifie une augmentation automatique, c'est-à-dire qu'il peut automatiquement. augmenter selon l'enfance jusqu'au numéro séquentiel le plus élevé.

  • ne peut être utilisé que pour la clé primaire (la clé primaire représente la représentation unique des données dans le tableau, et les données dans le tableau peuvent être distinguées par la clé primaire)

  • Par défaut Dans ce cas, il est 1, et l'incrément est 1

Faisons ce qui suit :

mysql> CREATE TABLE table3(
    -> id SMALLINT UNSIGNED AUTO_INCREMENT,
    -> username VARCHAR(20)
    -> );
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
Copier après la connexion
Une erreur est signalée car l'identifiant n'est pas défini comme clé primaire.

Définir la clé primaire

CLÉ PRIMAIRE

  • Contrainte de clé primaire

  • Chaque table ne peut avoir qu'une seule clé primaire

  • La clé primaire garantit l'unicité de l'enregistrement

  • La clé primaire est automatiquement NON NULL

Ensuite, on ajoute la clé primaire et on recommence :

mysql> CREATE TABLE table3(
    -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    -> username VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.42 sec)
Copier après la connexion
Faites attention à la commande, PRIMARY KEY doit être placée en dernier.

De cette façon, nous l'avons créé avec succès. Insérons les données une par une et visualisons les résultats :

mysql> INSERT table3(username) VALUES("Zhang");
Query OK, 1 row affected (0.09 sec)

mysql> INSERT table3(username) VALUES("Weng");
Query OK, 1 row affected (0.07 sec)

mysql> INSERT table3(username) VALUES("Chen");
Query OK, 1 row affected (0.09 sec)

mysql> SELECT * FROM table3;
+----+----------+
| id | username |
+----+----------+
|  1 | Zhang    |
|  2 | Weng     |
|  3 | Chen     |
+----+----------+3 rows in set (0.00 sec)
Copier après la connexion
Nous pouvons voir que les identifiants sont automatiquement numérotés, de petit à petit. grand.

Contrainte unique

CLÉ UNIQUE

  • Contrainte unique

  • Contrainte unique Garantir que les enregistrements sont non répétables (uniques)

  • Les contraintes uniques peuvent être nulles (NULL)

  • Il peut y avoir plusieurs contraintes uniques

mysql> CREATE TABLE table4(
    -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    -> username VARCHAR(20) UNIQUE KEY,
    -> age TINYINT UNSIGNED
    -> );
Query OK, 0 rows affected (0.43 sec)

mysql> INSERT table4(username) VALUE("Li");
Query OK, 1 row affected (0.11 sec)

mysql> INSERT table4(username) VALUE("Li");
ERROR 1062 (23000): Duplicate entry &#39;Li&#39; for key &#39;username&#39;

mysql> INSERT table4(username) VALUE("Chen");
Query OK, 1 row affected (0.10 sec)
Copier après la connexion
Nous définissons le nom d'utilisateur comme une contrainte unique, donc Li ne peut pas être créé à plusieurs reprises, remplacez-le simplement par "Chen". Notez qu'il ne s'agit que d'une expérience. En fonctionnement réel, les mêmes noms sont courants et le tableau de données doit être établi en fonction de la situation réelle.

Valeur par défaut DEFAULT

Définissez la valeur par défaut via

DEFAULT Si aucune valeur correspondante n'est donnée lors de l'insertion des données, alors la valeur par défaut sera utilisée. consiste à définir la valeur par défaut du nombre sur 3. Lors de l'insertion de données, comme le nombre n'est pas donné, la valeur par défaut est 3.

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!