更新时间:2021-08-16 10:48:23 来源:极悦 浏览904次
要求主键列的数据唯一,且不允许为空。主键能够唯一的标识表中的每一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度。
主键分为:单字段主键和多字段联合主键。
(1)单字段主键
1)定义方式一:在定义列的同时指定主键
2)定义方式二:在定义完所有的列之后指定主键
(2)多字段联合主键
外键用来在两个表之间建立连接,可以是一列或多列。一个表的外键可以是空值,若不为空值,则每一个外键值必须等于另一个表中主键的某个值。
外键可以不是本表的主键,但对应另外一个表的主键。作用是保证数据的完整性和一致性。
主表:相关联字段中主键所在的那个表即是主表
从表:相关联字段中外键所在的那个表即是从表
创建一个部门表作为主表,让其主键作为外键关联到员工表的主键id
在表tb_emp5上添加了名称为fk_emp_dept1的外键约束,外键名称为deptId,其依赖于表tb_dept1的主键id
Not Null Constraint,指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库会报错
指定员工姓名不能为空
Unique Constraint,要求该列唯一,允许为空,但只能出现一个空值,唯一约束可以保证一列或几列不出现重复值
(1)定义方式一:在定义完列之后直接指定唯一约束
指定部门名称唯一
(2)定义方式二:在定义完所有的列之后指定唯一约束
唯一约束和主键的区别:
一个表中有多个字段可以声明为UNIQUE,但只能声明一个PRIMARY KEY,主键的列不能有空值,但声明UNIQUE的列可以允许空值的存在
如果插入一条新的记录时没有为这个字段赋值,那么系统会自动为这个字段赋值为默认值
指定员工的部门编号默认为1111
为主键添加AUTO_INCREMENT关键字来实现,让主键自增,默认的初始值是1
一个表只有一个字段只用此约束,且该字段必须为主键的某一列,可以是任何整数类型(tinyint/smallint/int/bigint)
指定员工的编号自动递增,每次新添加一条记录,该值自动加1
新增加三条数据测试
使用select命令查看记录,得到主键值是依次递增的
以上就是极悦小编介绍的"SQL创建数据库表",希望对大家有帮助,想了解更多可查看数据库教程。极悦在线学习教程,针对没有任何Java基础的读者学习,让你从入门到精通,主要介绍了一些Java基础的核心知识,让同学们更好更方便的学习和了解Java编程,感兴趣的同学可以关注一下。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习