如何合理的运用主键和唯一键建表
tip:不要用业务逻辑充当主键(例:stu_name等)
例:使用一个编号充当主键,业务逻辑则使用唯一键
create table student
(
stu_id int primary key,--主键
stu_name nvarchar(50) unique not null,--唯一键(代理主键),n(对汉字支持)var(可变)50(长度最大50)
stu_email nvarchar(50) not null,
stu_address nvarchar(50)
)
not null和default的区别
not null:
要求用户必须为该属性赋一个值,否则语法出错!
如果一个字段既不写null也不写not null,但默人值为null,即默认允许为空,用户可以不给该字段赋值;如果用户没用给该字段赋值,则该字段值为NULL。
default:
相同点:
都允许用户不赋值
不同点:
null修饰的字段如果用户不赋值则默认为null;
default修饰的字段如果用户不赋值则默认是default指定的那个值。
表和约束的关系
数据库是通过表来解决事物的存储问题;
数据库是通过约束来解决事物取值的有效性和合法性的问题;
建表的过程就是指定事物属性及其事物属性各种约束的过程。、
什么叫关系
定义:
表和表之间的联系。
实现方式:
通过设置不同形式的外键来体现表和表的不同关系。
分类:
一对一;一对多;多对多。
一对一:
既可以把表A的属性充当表B的外键;
也可以把表B的属性充当表A的外键。
一对多:
把A表的主键添加到B表来充当B表的外键;
(在多的一方添加外键)
多对多:
tip:多对多必须得通过单独的一张表来表示。
例:
班级与教师
答:
班级是一张表;
教师是一张表;
班级和教师的关系也是一张表。