Maison >base de données >tutoriel mysql >Explication détaillée des opérations sur les tables de données MySQL
UTILISER le nom de la base de données
mysql> USE D1; Database changed
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)
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)
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)
Ici, nous pouvons voir que la table1 a été créée.
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)
É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)
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
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)
table1 correspond à VALEUR un à un.
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)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 tableNULL et NOT NULL dans les champsLors 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) -> );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)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_INCREMENTauto_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é.
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 keyUne erreur est signalée car l'identifiant n'est pas défini comme clé primaire. Définir la clé primaire
CLÉ PRIMAIRE
mysql> CREATE TABLE table3( -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, -> username VARCHAR(20) -> ); Query OK, 0 rows affected (0.42 sec)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)Nous pouvons voir que les identifiants sont automatiquement numérotés, de petit à petit. grand. Contrainte unique
CLÉ UNIQUE
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 'Li' for key 'username' mysql> INSERT table4(username) VALUE("Chen"); Query OK, 1 row affected (0.10 sec)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!