SQL Server中用SQL命令建表和主外键约束

通过一张表来说明什么是主键和外键


字段:也叫属性,是表的某一列

记录:也叫元组,是表的某一行

主键:用来唯一标示一条记录,就相当于我们的身份证号,每个人的都不一样

外键:用来和其他表建立联系,是另一个表的主键


下面介绍如何用SQL来建立dept和emp表,并用dept表中的dept_id设置为emp表的外键

create table dept    --创建部门表dept
(
	dept_name nvarchar(10) not null,--nvarchar(10):n表示为国际标准,即支持中文,var表示实际字符长度可以随着输入变化
	dept_num int not null,
	dept_address nchar(10) not null,
	dept_id int constraint PK_detp primary key not null  --dept表的主键,命名为PK_dept
)


create table emp  --创建员工表emp
(
	emp_name nvarchar(10) not null,
	emp_sal int not null,
	emp_sex nchar(1) not null,
	emp_age int not null,
	emp_id int primary key not null,  --emp表的主键
	dept_id int constraint FK_emp_dept foreign key references dept(dept_id) not null  --外键,命名为FK_emp_dept,通过reference关联到表dept的dept_id属性
)

约束:对一个表中属性操作的限制叫做约束

约束的分类:

  • 主键约束:不允许重复元素,避免的数据的冗余
  • 外键约束:通过外键来体现事物与事物之间的关系
  • check约束:约束属性的取值只能在规定范围之内
  • default约束:指定属性的默认值
  • 唯一约束:保证了属性的取值不允许重复

插入和约束的代码:

create table student
(
	stu_id int constraint PK_stu primary key,
	stu_name nvarchar(20) unique not null,                --unique约束,stu_name的值不能重复
	stu_sex nvarchar(1) not null default('男'),           --stu_sex的默认值为:男
	stu_sal int check (stu_sal>=1000 and stu_sal<=8000)   --check约束,stu_sal的值只能在1000到8000之间
)


insert into student(stu_id,stu_name,stu_sal) values(1,'张三',6000);    --没有给stu_sex赋值,默认为男
insert into student values(2,'李四','男',7000);
insert into student values(3,'小娟','女',5000);

得出的结果:







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值