SQL--約束


SQL--約束

博客說明

文章所涉及的資料來自互聯網整理和個人總結,意在於個人學習和經驗匯總,如有什么地方侵權,請聯系本人刪除,謝謝!

概念

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

分類

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

非空約束

not null,值不能為null

  1. 創建表時添加約束

    CREATE TABLE stu(
    	id INT,
    	NAME VARCHAR(20) NOT NULL -- name為非空
    );
    
  2. 創建表完后,添加非空約束

    ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL;
    
  3. 刪除name的非空約束

    ALTER TABLE stu MODIFY NAME VARCHAR(20);
    

主鍵約束

primary key

  1. 注意:

    1. 含義:非空且唯一
    2. 一張表只能有一個字段為主鍵
    3. 主鍵就是表中記錄的唯一標識
  2. 在創建表時,添加主鍵約束

    create table stu(
    	id int primary key,-- 給id添加主鍵約束
    	name varchar(20)
    );
    
  3. 刪除主鍵

    -- 錯誤 alter table stu modify id int ;
    ALTER TABLE stu DROP PRIMARY KEY;
    
  4. 創建完表后,添加主鍵

    ALTER TABLE stu MODIFY id INT PRIMARY KEY;
    
  5. 自動增長:

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

    2. 在創建表時,添加主鍵約束,並且完成主鍵自增長

      create table stu(
      	id int primary key auto_increment,-- 給id添加主鍵約束
      	name varchar(20)
      );
      
    3. 刪除自動增長

      ALTER TABLE stu MODIFY id INT;
      
    4. 添加自動增長

      ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;
      

唯一約束

unique,值不能重復

  1. 創建表時,添加唯一約束

    CREATE TABLE stu(
    		id INT,
    		phone_number VARCHAR(20) UNIQUE -- 添加了唯一約束
    );
    
    • 注意mysql中,唯一約束限定的列的值可以有多個null
  2. 刪除唯一約束

    ALTER TABLE stu DROP INDEX phone_number;
    
  3. 在創建表后,添加唯一約束

    ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE;
    

外鍵約束

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

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

    • 語法:

      create table 表名(
      	....
      	外鍵列
      	constraint 外鍵名稱 foreign key (外鍵列名稱) references 主表名稱(主表列名稱)
      );
      
  2. 刪除外鍵

    ALTER TABLE 表名 DROP FOREIGN KEY 外鍵名稱;
    
  3. 創建表之后,添加外鍵

    ALTER TABLE 表名 ADD CONSTRAINT 外鍵名稱 FOREIGN KEY (外鍵字段名稱) REFERENCES 主表名稱(主表列名稱);
    
  4. 級聯操作

    1. 添加級聯操作

      語法:ALTER TABLE 表名 ADD CONSTRAINT 外鍵名稱

      FOREIGN KEY (外鍵字段名稱) REFERENCES 主表名稱(主表列名稱) ON UPDATE CASCADE ON DELETE CASCADE  ;
      
    2. 分類:

      1. 級聯更新:ON UPDATE CASCADE
      2. 級聯刪除:ON DELETE CASCADE

感謝

黑馬程序員

以及勤勞的自己
關注公眾號: 歸子莫,獲取更多的資料,還有更長的學習計划


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM