数据库|数据库入门(二)
- 2019 年 12 月 17 日
- 筆記
问题描述
数据库是我们前后端不可缺少的东西,数据库中最多的就是数据,当我们初次插入数据时,在一个表中的数据相对较少时我们可以一行一行的插入,但当我们遇到有逻辑关联的数据时,我们插入就会报错,我们该怎么插入呢?
解决方案
在某个数据库的一张course表中,有cno、cname、cpno、ccredit四个属性列,分别为课程号,课程名,先行课号和成绩,先给大家解释一下什么是先行课就例如我们很多课为基础课,我们必须要先学完基础课才能学习在此课程基础之上的课程。
对于这种有依赖的数据该怎么插入呢?我们最常用的插入语句就是insert语句,但这个语句如果在大批量的数据时这个语句就可能就不是很方便,我们就会用批量插入的方法:
insert into s values('s1','精益','天津'),('s2','万胜','北京'),('s3','东方','北京'),('s4','丰泰隆','上海'),('s5','康健','南京') |
---|
这是一种批量插入的方法,这种方法会相对便捷一点,但当将这种方法应用到这种具有逻辑性的表中时,就会发现这个语句会报错。
insert into course values('1','数据库','5',4),('2','数学','',2),('3','信息系统','',4),('4','操作系统','6',3),('5','数据结构','7',4),('6','数据处理','',2),('7','PASCAL语言','6',4) |
---|

图2.1 结果
对于这种相对较少的数据我们可以依照逻辑性一条一条的插入,但我们也要依据这张表中的逻辑性插入数据,这样对于数据较多时就会较麻烦。
insert into course values('1','数据库','5',4);insert into course(cno,cname,ccredit) values('2','数学',2);insert into course(cno,cname,ccredit) values('3','信息系统',4);insert into course values('4','操作系统','6',3);insert into course values('5','数据结构','7',4);insert into course(cno,cname,ccredit) values('6','数据处理',2);insert into course values('7','PASCAL语言','6',4); |
---|
我们还可以利用另一种方法插入这些数据,就是insert语句中的select语句,这样我们就能批量插入啦。
insert into courseselect '6','python',null,'周老师','5'select '3','大学英语',null,'贺老师','4'select '2','信息安全','1','马老师','4'select '1','数据库','4','刘老师','5'select '4','概率论','5','王老师','5'select '5','高等数学',null,'张老师','6' |
---|
结语
在不同的SQL sever版本中会存在命令不兼容的情况,所以在不同的版本中可能会出现报错的情况,本次命令在SQL sever 2008中运行。
END
实习编辑 | 王楠岚
责 编 | 桂 军