[JavaWeb-MySQL]约束(非空约束,唯一约束,主键约束,外键约束_级联操作)
生活随笔
收集整理的這篇文章主要介紹了
[JavaWeb-MySQL]约束(非空约束,唯一约束,主键约束,外键约束_级联操作)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
約束
* 概念: 對表中的數據進行限定,保證數據的正確性、有效性和完整性。 * 分類:1. 主鍵約束:primary key2. 非空約束:not null3. 唯一約束:unique4. 外鍵約束:foreign key* 非空約束:not null,某一列的值不能為null1. 創建表時添加約束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);* 唯一約束:unique,某一列的值不能重復1. 注意:* 唯一約束可以有NULL值,但是只能有一條記錄為null2. 在創建表時,添加唯一約束CREATE TABLE stu(id INT,phone_number VARCHAR(20) UNIQUE -- 手機號);3. 刪除唯一約束ALTER TABLE stu DROP INDEX phone_number;4. 在表創建完后,添加唯一約束ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE;* 主鍵約束: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;* 外鍵約束: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總結
以上是生活随笔為你收集整理的[JavaWeb-MySQL]约束(非空约束,唯一约束,主键约束,外键约束_级联操作)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 痛经怎么缓解
- 下一篇: [JavaWeb-MySQL]DQL_查