Maison >base de données >tutoriel mysql >Opérations sur les tables MYSQL

Opérations sur les tables MYSQL

齐天大圣
齐天大圣original
2020-05-27 08:48:45195parcourir

Lorsqu'une bibliothèque est créée, les tables doivent ensuite être créées. Pour créer une table, vous devez connaître non seulement la syntaxe, mais également les types de colonnes, les index, etc. Ce qui suit ne parlera que de la syntaxe de création de tables et ne décrira pas les types de colonnes.

Créer une table

Syntaxe pour créer une table :

CREATE TABLE [IF NOT EXISTS] 表名 (
    字段名1 列类型 [属性] [索引],
    字段名2 列类型 [属性] [索引],
    字段名3 列类型 [属性] [索引],
    ......
) [表类型] [表字符集]

Une chose à noter ici est que le nom du champ ne doit pas être la même que la clé de mysql. Si vous voulez vraiment faire cela, vous devez ajouter les symboles ` avant et après le nom du champ. Ce symbole est au-dessus de la touche de tabulation.

Créons maintenant une table utilisateur avec des champs : ID utilisateur, nom d'utilisateur, mot de passe utilisateur, numéro de téléphone portable, sexe et anniversaire.

create table if not exists users(
  user_id int(10) unsigned auto_increment primary key,
  username varchar(16) not null default '' collate utf8mb4_bin comment '用户名',
  userpass char(32) not null collate utf8mb4_bin default '',
  mobile char(11) not null default '' unique,
  gender enum('未知', '男', '女') default '未知',
  birth date not null default '1900-01-01',
  index username(username)
) engine=innodb default charset utf8mb4 collate utf8mb4_general_ci;

Habituellement, nous créerons un champ d'identification unique pour chaque table, ici user_id, pour faciliter les opérations futures. L'assemblage est défini ici pour les champs de nom d'utilisateur et de passe utilisateur. En effet, ces deux champs sont différents des autres dans la mesure où ils sont sensibles à la casse. De plus, nous avons créé deux index pour la table, à savoir le champ mobile et le champ nom d'utilisateur. Un index unique est défini pour le mobile, ce qui signifie que le numéro de téléphone mobile ne peut pas être répété. Créer un index général pour le nom d'utilisateur consiste à accélérer les recherches via le nom d'utilisateur.

Afficher la table et la structure de la table

Une fois la table créée, nous voulons voir si elle est vraiment créée avec succès. Vous pouvez afficher toutes les tables de la bibliothèque actuelle via Afficher les tables.

mysql> show tables;
+---------------+
| Tables_in_job |
+---------------+
| users      |
+---------------+
1 row in set

La table est en effet générée avec succès, mais si vous voulez voir quels champs et attributs se trouvent dans la table, vous pouvez le vérifier via le nom de la table desc.

Effacer et supprimer des tables

Remarque : La suppression d'une table est une opération dangereuse, opérez avec prudence !

Syntaxe de table de suppression : DROP TABLE [IF EXISTS] Nom de la table

Aucune démonstration ici.

Effacer la syntaxe du tableau : TRUNCATE nom de la table

Ici, nous allons nous concentrer sur la différence entre tronquer les utilisateurs et supprimer des utilisateurs.

  • tronquer équivaut à supprimer d'abord la table puis à recréer la table. Toutes les données du tableau ont été réinitialisées.

  • Bien que la suppression supprime uniquement les données de la table, certaines informations d'attribut de la table, telles que l'identifiant auto-incrémenté, ne seront pas réinitialisées.

Modifier le tableau

Enfin, voyons comment modifier le tableau. Il est placé en dernier car sa syntaxe est la plus compliquée et la partie la plus difficile des opérations sur les tables. Sa syntaxe est la suivante :

ALTER TABLE 数据表名 alter_spec[,alter_spec] ... table options

J'ai organisé les opérations courantes et les fonctions communes sont les suivantes :

  • Ajouter de nouveaux champs : ALTER TABLE nom de la table ADD field. nom 3802ba1a7cc8c5b43e52165f18cc1787 [FISRT|ALTER nom de la colonne]

  • Modifier les champs : ALTER TABLE nom de la table changer|modifier la liste 3802ba1a7cc8c5b43e52165f18cc1787 est que modifier ne peut modifier que le type de colonne, tandis que changement peut changer le nom de la colonne en plus de modifier le type de colonne.

  • Supprimer le champ : ... DROP nom de la colonne

  • Ajouter le nom de l'index : ... ADD INDEX [INDEX_NAME] (index_col1,index_col2, ...)

  • DROP INDEX INDEX_NAME

  • DROP PRIMARY KEY

  • Ajouter une clé primaire : ... AJOUTER UNE CLÉ PRIMAIRE (INDEX_COL1,INDEX_COL2,...)

  • Ajouter un index unique : ... AJOUTER UNIQUE [index_name] (index_col1,index_col2,...)

  • Modifiez le nom de la table : RENAME newName

Pratiquez-le

Tout d'abord, ajoutez un nouveau champ email et placez-le après le passage de l'utilisateur .

ALTER TABLE users ADD email VARCHAR(255) NOT NULL DEFAULT '' AFTER userpass;

Modifiez le pass utilisateur et changez la longueur à 64 bits

ALTER TABLE users MODIFY userpass CHAR(64) NOT NULL DEFAULT '' COMMENT '用户登录密码';

Modifiez le pass utilisateur et changez-le en auth

ALTER TABLE users CHANGE userpass `auth` char(32) NOT NULL DEFAULT '';

Ajoutez un index normal à l'e-mail

ALTER TABLE users ADD INDEX eamil(email);

Supprimer l'index des e-mails

ALTER TABLE users DROP INDEX eamil;

Supprimer un index unique, tout comme supprimer un index normal

ALTER TABLE users DROP INDEX mobile;

Ajouter un index unique

ALTER TABLE users ADD UNIQUE mobile(mobile);
或
ALTER TABLE users ADD UNIQUE (mobile);

Supprimer la clé primaire, vous devez supprimer aoto_increment avant suppression ;

ALTER TABLE users MODIFY user_id INT(10) NOT NULL;
ALTER TABLE users DROP PRIMARY KEY;

Ajouter une clé primaire

ALTER TABLE users ADD PRIMARY KEY (user_id);

Ce qui précède décrit simplement une syntaxe des opérations de table, des types de colonnes et des index, etc. Si vous êtes intéressé, vous pouvez lire les informations pertinentes.

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