Maison > base de données > tutoriel mysql > Comment définir des contraintes sur les tables dans la base de données MySQL

Comment définir des contraintes sur les tables dans la base de données MySQL

王林
Libérer: 2023-06-01 15:55:30
avant
2317 Les gens l'ont consulté

    1. PK (contrainte de clé primaire)

    1. Qu'est-ce qu'une clé primaire ?

    • Avant de comprendre la clé primaire, comprenez d'abord ce qu'est un mot-clé

    • Mot-clé : un champ unique dans le tableau, tel que le numéro d'identification d'une personne, le numéro d'étudiant. Il peut y avoir plusieurs mots-clés dans un tableau.

    • La clé primaire est une combinaison d'un ou plusieurs mots-clés. Des informations sur l'ensemble de la table peuvent être obtenues via la clé primaire. Elle est parfois également appelée clé primaire. En prenant le tableau des commandes comme exemple, vous pouvez obtenir le nom du destinataire de la commande, les informations sur le produit, le prix et d'autres informations connexes via le numéro de commande.

    Remarque : Le mot-clé ne doit pas nécessairement être la clé primaire, la clé primaire doit être le mot-clé

    Caractéristiques : La clé primaire ne peut pas être vide, est unique et ne peut pas être répétée. Une table n'a qu'une seule clé primaire ou aucune clé primaire et ne peut pas avoir plusieurs clés primaires.

    2. Comment définir la clé primaire ?

    Méthode 1 : Définir la clé primaire lors de la création de la table

    -- 建立User表
    CREATE TABLE User(
    User_id int NOT NULL,
    User_name VARCHAR(20),
    User_pwd VARCHAR(18),
    -- 在这里设置id为主键
    PRIMARY KEY(User_id)
    )
    Copier après la connexion
    CREATE TABLE Users(
    -- 也可以在字段中直接设置主键
    User_id int NOT NULL PRIMARY KEY,
    User_name VARCHAR(20),
    User_pwd VARCHAR(18)
    )
    Copier après la connexion

    Les deux méthodes ci-dessus peuvent créer la clé primaire et l'effet est le même.

    Méthode 2 : Aucune clé primaire n'est définie lors de la création de la table, puis définissez la clé primaire dans la table

    • Créez d'abord une table sans définir la clé primaire

    CREATE TABLE User(
    User_id int NOT NULL,
    User_name VARCHAR(20),
    User_pwd VARCHAR(18)
    )
    Copier après la connexion
    • Ensuite, définissez la clé primaire

    Le principe est de créer une table Ajoutez PRIMARY KEY (User_id) au code lorsque
    Identique au premier principe de la première méthode

    ALTER TABLE user ADD PRIMARY KEY(User_id)
    Copier après la connexion

    Le principe est d'ajouter PRIMARY KEY (User_id) au champ User_id
    Identique au deuxième principe de la première méthode

    ALTER TABLE users MODIFY User_id INT PRIMARY KEY;
    Copier après la connexion

    Deuxièmement, FK (Contraintes de clé étrangère)

    1 Qu'est-ce qu'une clé étrangère

    • Les clés étrangères sont également appelées mots-clés étrangers et représentent la connexion directe entre deux tables ? La clé étrangère d'une table doit être la clé primaire d'une autre table. La table avec la clé étrangère d'une autre relation comme clé primaire est appelée la table maître, et la table avec la clé étrangère est appelée la table esclave de la table maître. .

    • Par exemple, la table de commande contient deux clés étrangères : l'ID produit et l'ID utilisateur. L'ID produit est la clé primaire de la table d'informations sur le produit et l'ID utilisateur est la clé primaire de la table utilisateur.

    Remarque : Il peut y avoir plusieurs ou aucune clé étrangère dans une table.

    2. Comment définir des clés étrangères

    Méthode 1 : définir les contraintes de clé étrangère lors de la création d'une table

    Prenons un exemple basé sur la définition de la clé primaire précédemment, nous avons créé une table utilisateur plus tôt, alors créons maintenant une table de commande.

    CREATE TABLE dingdan(
    DDid INT PRIMARY KEY NOT NULL,
    User_id INT NOT null,
    DDname VARCHAR(20) NOT NULL,
    -- 设置约束关系,dingdan表中的User_id 与 user表中的User_id表示的是同一个数据
    constraint fk FOREIGN KEY(User_id) REFERENCES user(User_id)
    )
    Copier après la connexion

    Méthode 2 : aucune clé primaire n'est définie lors de la création de la table, puis définissez la clé primaire dans la table

    alter table student add constraint stfk foreign key(stid) references teacher(tid)
    Copier après la connexion

    Remarque : une fois les relations de clé primaire et étrangère établies, les données de la table principale ne peuvent pas être supprimées à volonté. Si les informations d'un utilisateur sont incluses dans les données de commande, une erreur se produira lors de la suppression des informations de l'utilisateur, les informations de l'utilisateur doivent donc être conservées.

    3. Unique (contrainte unique)

    1. Qu'est-ce qu'une contrainte unique ?

    Si une contrainte unique est définie sur un champ, alors le champ ne doit pas être écrit, ou s'il est écrit, il ne peut pas être répété.

    2. Comment définir des contraintes uniques

    Créez toujours une table utilisateur, cette fois il y a un champ email dans la table. L'e-mail défini ne peut pas être répété

    CREATE TABLE User(
    User_id int NOT NULL,
    User_name VARCHAR(20),
    User_pwd VARCHAR(18),
    User_Email VARCHAR(40) UNIQUE
    )
    Copier après la connexion

    4. non nul (non vide)

    signifie que ce champ ne peut pas être vide

    Écrivez ensuite la contrainte unique ci-dessus, qui stipule que l'e-mail non seulement ne peut pas être répété mais ne peut pas non plus être vide

    CREATE TABLE User(
    User_id int NOT NULL,
    User_name VARCHAR(20),
    User_pwd VARCHAR(18),
    User_Email VARCHAR(40) UNIQUE not null
    )
    Copier après la connexion

    5. default (Valeur par défaut)

    Cela signifie que si vous n'écrivez pas ce champ, une valeur vous sera attribuée par défaut. Continuez à écrire dans le tableau Utilisateur ci-dessus. Ajoutez un champ de genre ici. Je n'écris pas le sexe, la valeur par défaut est male

    CREATE TABLE User(
    User_id int NOT NULL,
    User_name VARCHAR(20),
    User_pwd VARCHAR(18),
    User_gender enum('男','女') default '男'
    )
    Copier après la connexion

    Six. auto_increment (auto-incrémentation)

    Auto-increment signifie incrément automatique, c'est-à-dire que si vous ne remplissez pas les données dans ce champ, le système le fera. ajouter automatiquement 1 en fonction des données précédentes

    Généralement utilisé dans ID, le numéro

    sera l'ID dans la table utilisateur. Définir sur incrémentation automatique

    CREATE TABLE User(
    User_id int auto_increment,
    User_name VARCHAR(20),
    User_pwd VARCHAR(18),
    User_gender enum('男','女') default '男'
    )
    Copier après la connexion

    Remarque : Si la première donnée n'est pas renseignée, une valeur sera donnée par défaut. Ainsi, même si l’ID est la clé primaire, vous n’avez pas besoin de renseigner les 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!

    Étiquettes associées:
    source:yisu.com
    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