SQL Server学习笔记——建表
Posted Aiden_Zhao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server学习笔记——建表相关的知识,希望对你有一定的参考价值。
SQL Server学习笔记——建表
建立一个学生信息的数据库,其中,数据库中包含一下四个表:
- major(专业)
字段:mno(专业号),mname(专业名) - stu(学生)
字段:sno(学号),sname(学生名),age(年龄),sex(性别),mno(专业号) - cou(课程)
cno(课程号),cname(课程名),ctime(课时),ccredit(学分) - sc(成绩)
sno(学号),cno(课程),grade(分数)
create database stuinfo
use stuinfo
--major 专业
--mno mname
create table major(
mno varchar(20),
mname varchar(20),
primary key(mno) --主键:主键唯一且非空
)
--stu 学生
--sno sname age sex mno
create table stu(
sno varchar(20),
sname varchar(30),
age smallint,
sex bit,
mno varchar(20),
primary key(sno),
foreign key(mno) references major(mno) --外键:即别的表中出现的主键
)
--cou 课程
--cno cname ctime ccredit
create table cou(
cno varchar(20),
cname varchar(30),
ctime smallint,
ccredit decimal(4, 2), --4位,小数点后2位
primary key(cno)
)
--sc 成绩
--sno cno grade
create table sc(
sno varchar(20),
cno varchar(20),
grade decimal(5, 2),
primary key(sno, cno), --联合主键
foreign key(sno) references stu(sno)
)
--对sc表加一个外键(在这里,sno和cno既是主键又是外键)
alter table sc add constraint fk_sc foreign key(cno) references cou(cno)
查询数据库中所有的表:
select name from sysobjects where xtype='u'
结果为:
建表成功!
注意:
- 表的主键,指的是一列或多列的组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性。主键主要是用与其他表的外键关联,以及本记录的修改与删除。主键唯一且非空,但主键不是必须的,也可以不设置主键。
- 表的外键:某张表中的列在另外一张表中存储,而且是另一张表的主键,就可以说该列为外键,外键可以有一列或多列。只有有主键约束或唯一约束的列才能被其他表引用为外键,并且外键只能引用外键表中对应列的值或空值。
以上是关于SQL Server学习笔记——建表的主要内容,如果未能解决你的问题,请参考以下文章
用SQL语句在SQL Server2000下实现如下功能。所用数据库表结构如下: student(学生表):(sno,学号,9字