SQL Server学习笔记——建表

Posted Aiden_Zhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server学习笔记——建表相关的知识,希望对你有一定的参考价值。

SQL Server学习笔记——建表

建立一个学生信息的数据库,其中,数据库中包含一下四个表:

  1. major(专业)
    字段:mno(专业号),mname(专业名)
  2. stu(学生)
    字段:sno(学号),sname(学生名),age(年龄),sex(性别),mno(专业号)
  3. cou(课程)
    cno(课程号),cname(课程名),ctime(课时),ccredit(学分)
  4. 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学习笔记——建表的主要内容,如果未能解决你的问题,请参考以下文章

数据库建库建表学习笔记

Microsoft SQL Server 代码片段收集

SQL SERVER 建表时先判断表有没有存在

缺少 SQL SERVER 2014 代码片段

怎样用sql语句在sqlserver建表 和插入数据~

用sql server 建了一个表,可是查询此表时怎莫说不存在呢?