• <button id="eiyoe"><acronym id="eiyoe"></acronym></button>
    <em id="eiyoe"></em>

  • <rp id="eiyoe"><acronym id="eiyoe"><input id="eiyoe"></input></acronym></rp>
      查看: 137|回復: 0
      上一主題 下一主題

      MySQL約束超詳解

      79910

      主題

      0

      好友

      積分

      離線 發信

      跳轉到指定樓層
      樓主
      發表于 2021-09-16 12:21 | 只看該作者 | 倒序瀏覽
      目錄
      • MySQL約束操作
        • 1.非空約束
        • 2.唯一約束
        • 3.主鍵約束
        • 4.外鍵約束
        • 5、級聯

      MySQL約束操作

      概念:對表中的數據進行限定,保證數據的正確性,有效性和完整性。

      分類:

      • 主鍵:primary key
      • 非空約束:not null
      • 唯一約束:unique
      • 外鍵約束:foreign key

      1.非空約束

      not null,值不能為空。

      創建表時添加非空約束:

      CREATE TABLE stu(
       id INT,
       NAME VARCHAR(20) NOT NULL
      );
      
      

      創建表完后,添加非空約束

      ALTER TABLE stu 
      MODIFY NAME VARCHAR(20) NOT NULL;
      
      

      刪除非空約束

      ALTER TABLE stu 
      MODIFY NAME VARCHAR(20);
      
      

      2.唯一約束

      unique,值不能重復。

      創建表時添加唯一約束

      CREATE stu(
       id INT;
       phone_number VARCHAR(20) UNIQUE
      );
      
      

      注意:mysql中,唯一約束限定的列的值可以有多個null。

      刪除唯一約束

      ALTER TABLE stu
      DROP INDEX phone_number;
      
      

      創建表完后,添加唯一約束

      ALTER TABLE stu 
      MODIFY phone_number VARCHAR(20) UNIQUE;
      
      

      3.主鍵約束

      primary key,

      • 非空且唯一。
      • 一張表只能有一個字段為主鍵。
      • 主鍵就是表中記錄的唯一標識。

      創建表時添加主鍵約束

      CREATE TABLE stu( 
       id INT PRIMARY KEY,
       NAME VARCHAR(20)
      );
      
      

      刪除主鍵

      ALTER TABLE stu 
      DROP PRIMARY KEY;
      
      

      創建表完后,添加主鍵

      ALTER TABLE stu 
      MODIFY id INT PRIMARY KEY ;
      
      

      這里補充一個知識點:自動增長

      概念:如果某一列是數值類型的,使用auto_increment可以來完成自動增長。

      例子:

      在創建表時,添加主鍵約束,并且完成主鍵自動增長

      CREATE TABLE stu(
       id INT PRIMARY KEY AUTO_INCREMENT,
       NAME VARCHAR(20)
      );
      #自動增長會根據當前列的最后一行的值往后增加。
      
      

      刪除自動增長

      ALTER TABLE stu
      MODIFY id INT;
      #這樣只會刪除自動增長,主鍵刪不掉。
      
      

      創建表完后,在添加自動增長

      ALTER TABLE stu
      MODIFY id INT AUTO_INCREMENT;
      
      

      4.外鍵約束

      foreign ley,讓表與表產生關系,從而保證數據的正確性。

      在創建表時,可以添加外鍵

      CREATE TABLE 表名(
       ...
       外鍵列
       CONSTRAINT 外鍵名稱 FOREIGN KEY (外鍵列名稱) REFERENCES 主表名稱(主表列名稱)
      );
      
      

      刪除外鍵

      ALTER TABLE 表名 DROP FOREIGN KEY 外鍵名稱;
      
      

      創建表之后,添加外鍵

      ALTER TABLE 表名 ADD CONSTRAINT 外鍵名稱 FOREIGN KEY (外鍵字段名稱) REFERENCES 主表名稱(主表列名稱);
      
      

      5、級聯

      添加級聯操作

      ALTER TABLE 表名 ADD CONSTRAINT 外鍵名稱 
      FOREIGN KEY (外鍵字段名稱) REFERENCES 主表名稱(主表列名稱)
      ON UPDATE CASCADE ON DELETE CASCADE  ;

      級聯刪除

      ON UPDATE CASCADE
      
      

      到此這篇關于MySQL約束超詳解的文章就介紹到這了,更多相關MySQL約束內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

      來源:http://www.jb51.net/article/221678.htm