DDL语句(五) -- 约束

一、常见约束

NOT NULL:非空,该字段的值必填

UNIQUE:唯一,该字段的值不可重复

DEFAULT:默认,该字段的值当没有插入时有默认值

CHECK:检查,mysql 不支持

PRIMARY KEY:主键,该字段的值不可重复并且非空   UNIQUE + NOT NULL

FOREIGN KEY:外键,该字段的值引用了另外的表的字段

 

主键约束和唯一约束 

1、区别

① 一个表至多有一个主键约束,但可以有多个唯一约束

② 主键约束不允许为空 ,唯一约束可以为空

2、相同点

都具有唯一性

都支持组合键,但不推荐

 

外键:

1、用于限制两个表的关系,从表的字段值引用了主表的某字段值;

2、外键列和主表的被引用列要求类型一致,意义一样,名称无要求;

3、主表的被引用列要求时一个 key(一般就是主键);

4、插入数据时,先在主表中插入,再在从表中插入

 删除数据是,先从从表中删除数据,再从主表中删除数据。

 

可以通过以下两种方式来删除主表的记录

方式一:级联删除

ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY(maiorid) REFERENCES major(id) ON DELETE CASCADE;

方式二:级联置空

ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY(maiorid) REFERENCES major(id) ON DELETE SET NULL;

 

二、创建表时添加约束

CREATE TABLE 表名(
  字段名 字段类型 PRIMARY KEY, #主键约束
  字段名 字段类型 NOT NULL, #非空约束
  字段名 字段类型 UNIQUE, #唯一约束
  字段名 字段类型 DEFAULT 值, #默认约束
  字段名 字段类型,
  CONSTRAINT 约束名 FOREIGN KEY(字段名) REFERENCES 主表(被引用列)
)

注意:

      支持类型          约束名

列级约束  除了主键约束        可以重新设置

表级约束  除了非空约束和默认约束   可以重新设置,但对主键约束无效

 

列级约束可以在一个字段上追加多个,中间用空格隔开,没有顺序要求

 

三、修改表时添加或删除约束

1、非空约束

添加非空约束

ALTER TABLE 表名 MODIFY COLUMN 字段名 字段类型  NOT NULL;

删除非空约束

ALTER TABLE 表名 MODIFY COLUMN 字段名 字段类型 ;

 

2、默认约束

添加默认约束

ALTER TABLE 表名 MODIFY COLUMN 字段名 字段类型 DEFAULT 值;

删除默认约束

ALTER TABLE 表名 MODIFY COLUMN 字段名 字段类型 ;

 

3、主键约束

添加主键约束

ALTER TABLE 表名 ADD 【CONSTRAINT 自定义的约束名称】 PRIMARY KEY(字段名);

删除主键约束

ALTER TABLE 表名 DROP PRIMARY KEY;

 

4、唯一约束

添加唯一约束

ALTER TABLE 表名MODIFY COLUMN UNIQUE(字段名);

删除主键唯一约束

ALTER TABLE 表名 DROP INDEX 索引名;

 

5、外键约束

添加外键约束

ALTER TABLE 表名 ADD  【CONSTRAINT 自定义的约束名称】 CONSTRAINT (字段名) REFERENCES 主表(被引用列); 

删除外键约束

ALTER TABLE 表名DROP FOREIGN KEY 自定义的约束名称;

 

转载于:https://www.cnblogs.com/xifengbuqi/p/9219063.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle SQL Hand-Oracle工具,是专为Oracle数据库开发人员及操作人员精心打造的一款Oracle开发工具(客户端工具)。 Oracle SQL Hand-Oracle工具特点如下: (1) 跨平台,能运行于平台 Windows(WIN7,XP...)、Linux 、Mac OS; (2) 不需要安装Oracle客户端,解压即用,通过提供的JDBC直接连接服务器; (3) 超智能的SQL编辑器,具有代码跟踪提示功能,弹出提示窗口列出关键字、关键字组合、函数名、列名、对象名、对象类型等,极大地提高SQL编辑效率; (4) 超方便实用的工作表用来显示和操作SELECT语句的查询结果,象操作Excel表格一样方便地选择行/列/单元格数据,可以将工作表的数据修改写入数据库表。另外,工作表还有单条记录操作、多功能拷贝、数值统计、查找替换等实用功能; (5) 能方便导出 XLS、CSV、INSERT Statement、HTML、XML等多种格式数据; (6) 方便操作常用数据字典如表、视图、索引、过程、函数、触发器等(能显示和编辑编译PL/SQL代码); (7) 英文双语界面并能随时切换,个性化界面设置,界面简洁清爽; (8) 运行语句“DESC tableName”清晰地显示表的所有逻辑结构信息,包括列信息、所有约束、索引、子表及触发器等; (9) 运行语句“SCHEMA objectName”显示表或视图的DDL源码; (10) 以缩进的阶梯格式清晰地显示SQL的解释计划; (11) 能运行和调试PL/SQL语句,能精确定位到错误所在的行列位置; (12) SQL格式美化,将杂乱的语句美化成缩进的美观格式; (13) 多线程多连接,会话在运行可以断,或编辑,或创建新会话; (14) 监控批量SQL语句的运行,在运行可暂停、更正等; (15) 连接配置简单,自动重新连接; (16) 占用系统资源极少,启动快,连接快,运行快; (17) 高效的语句块操作,高亮显示配对括号; (18) 功能实用,操作简便; 鼠标双击批处理文件 start.bat 即可启动运行

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值