sqlserver建库建表相关

433 阅读2分钟

sqlserver建库建表

创建数据库

在这里插入图片描述

建库成功

在这里插入图片描述

建表操作

新建一个学生表

建一个老师表

学生表与老师表是有关联的

一个老师带多个学生

多个学生由一个老师带

两张表的关系:

一对多的关系

一(老师),多(学生)

外键关联的原则

多表作为从表,一表作为主表

我们在此明确了主从关系

新建主表

新建主表的原因,优先新建请表的原因是

主表的数据不依赖别的表

明确主表中所需要有的列

id,name,skill

》 建老师表

选中数据库

右击

新建数据表

》id主键,自动增长

在这里插入图片描述 在这里插入图片描述

》其它列

在这里插入图片描述

新建学生表

学生表是从表

它会与老师表有一个外键的关联

会有一个列,它记录的数据是老师表的主键列

学生表需要的列有

id , name , tid , place

》学生表的主键列

在这里插入图片描述

》其它列

在这里插入图片描述

》创建外键关联

让学生表(从表)与老师表(主表)

产生关联

具体操作:

在从表的设计模式(数据表编辑模式)

右击,关系,添加关系,表和列规范

在这里插入图片描述 定义好了外键关系后,记得要保存一下

添加数据

先添加主表数据,再添加从表数据

因为,先有主才有从

先有了老师,才会有学生

》在老师表添加数据

在这里插入图片描述

》添加从表数据(学生表)

在这里插入图片描述

连表查询

》查询所有的老师信息

在这里插入图片描述

》查询所有学生信息

在这里插入图片描述

》查询学生信息 对应 老师的信息

查学生的老师是什么技能

select * from student inner join teacher on student.tid = teacher.id;

在这里插入图片描述

只需要获取期望的内容

在星花符号这里做操作

把*替换为需显示的列即可

select student.id, student.name, student.place, teacher.name, teacher.skill from student inner join teacher on student.tid = teacher.id;

在这里插入图片描述

存在的问题

这张表中有两个同名的列,后面用时不方便

期望修改,使列名不同

解决办法:起别名

select student.id, student.name as sname, student.place, teacher.name as tname, teacher.skill from student inner join teacher on student.tid = teacher.id;

在这里插入图片描述

再次演练

如果老师也要显示id

select student.id, student.name as sname, student.place, teacher.name as tname, teacher.skill, teacher.id from student inner join teacher on student.tid = teacher.id;

又出现了同名问题

列名又相同了

在这里插入图片描述

》使用同样的方案解决:起别名

select student.id, student.name as sname, student.place, teacher.name as tname, teacher.skill, teacher.id as teacher_id from student inner join teacher on student.tid = teacher.id;

在这里插入图片描述

小结

完成了

建库

建表

外键关联

添加数据(先主表,再从表)

连表查询(列重名,我们起别名)