数据库|数据库入门(二)
  TEZNKK3IfmPf 2023年11月14日 21 0

问题描述

数据库是我们前后端不可缺少的东西,数据库中最多的就是数据,当我们初次插入数据时,在一个表中的数据相对较少时我们可以一行一行的插入,但当我们遇到有逻辑关联的数据时,我们插入就会报错,我们该怎么插入呢?

解决方案

在某个数据库的一张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)

 

数据库|数据库入门(二)
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 course

select '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中运行。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年04月26日   55   0   0 java数据库sql
  TEZNKK3IfmPf   2024年05月31日   26   0   0 sqlite数据库
  TEZNKK3IfmPf   2024年05月31日   31   0   0 数据库mysql
  TEZNKK3IfmPf   2024年05月31日   27   0   0 数据库mysql
TEZNKK3IfmPf