SQL基本使用-表约束

约束

概念

对表中的数据进行限定,保证数据的正确性,有效性和完整性;

分类

  1. 主键约束 PRIMARY KEY

    非空且唯一,一张表只能有一个字段是主键,主键就是表中的唯一标识。

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

    表格创建后,删除主键

    ALTER TABLE stu DROP PRIMARY KEY;
    

    表格创建后,添加主键

    ALTER TABLE stu MODIFY id INT PRIMARY KEY;
    
  2. 非空约束 NOT NULL

    CREATE TABLE stu(
    	id INT,
    	name VARCHAR(10) NOT NULL
    );
    

    表格创建后,删除非空约束

    ALTER TABLE stu MODIFY name VARCHAR(10);
    

    表格创建后,添加非空约束

    ALTER TABLE stu MODIFY name VARCHAR(10) NOT NULL;
    
  3. 唯一约束 UNIQUE

    CREATE TABLE stu(
    	id INT,
    	phone VARCHAR(20) UNIQUE
    );
    

    表格创建后,删除唯一约束

    ALTER TABLE stu DROP INDEX phone;
    

    表格创建后,增加唯一约束

    ALTER TABLE stu MODIFY name VARCHAR(10) UNIQUE;
    
  4. 外键约束 FOREIGN KEY
    创建部门表

    CREATE TABLE department(
    	id INT PRIMARY KEY auto_increment,
    	name VARCHAR(10) NOT NULL
    );
    

    向表内添加数据

    INSERT INTO department VALUES(NULL,'技术部');
    INSERT INTO department VALUES(NULL,'产品部');
    

    创建人员表,并使用外键关联部门表

    CREATE TABLE users(
    	id INT PRIMARY KEY auto_increment,
    	name VARCHAR(10) NOT NULL,
    	age INT NOT NULL,
    	dem_id INT NOT NULL,
    	-- 外键关联部门表 
    	CONSTRAINT dem_user_fk FOREIGN KEY (dem_id) REFERENCES department(id)
    );
    

    向表内添加数据

    INSERT INTO users VALUES(NULL,'进击的煎饼果子',20,1);	
    INSERT INTO users VALUES(NULL,'进击的山竹',20,2);	
    INSERT INTO users VALUES(NULL,'进击的菠萝',20,1);	
    

    删除外键关联

    ALTER TABLE users DROP FOREIGN KEY dem_user_fk;
    

    添加外键

    ALTER TABLE users ADD CONSTRAINT dem_user_fk FOREIGN KEY (dem_id) REFERENCES department(id);
    

    添加外键,设置级联更新,设置级联删除

    ALTER TABLE users ADD CONSTRAINT dem_user_fk FOREIGN KEY (dem_id) REFERENCES department(id) ON UPDATE CASCADE ON DELETE CASCADE;
    
  5. 自动增长
    和主键约束一起使用

    CREATE TABLE stu(
    	id INT PRIMARY KEY AUTO_INCREMENT,
    	phone VARCHAR(20) UNIQUE
    );
    

    表格创建后,删除自动增长

    ALTER TABLE stu MODIFY id INT;
    

    表格创建后,添加自动增长

    ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值