标准SQL语句(6) --- 数据的增删改

来源:互联网 发布:ddg1000数据 编辑:程序博客网 时间:2024/04/30 22:43

声明:本文使用到的数据表请参看本博客的另一篇文章:标准SQL语句(2)--- 表的增删改


1. 添加数据

添加数据使用的SQL命令是insert into ,可分为以下几种情况。


1)添加一行记录

insert into <表名> [ ( <列名1>[, <列名2> ... ] ) ] values ( <值> )

列名可以不指定,但是如果不指定的话,必须在每个属性列上均有值,且values子句中值的排列顺序要和表中各属性列的排列顺序一致。


例:在S表中添加一条学生记录(学号:S7、姓名:郑东、性别:女、年龄:21、系别:计算机)

insert into S (SNo, SN, Age, Sex, Dept) values ('S7', '郑东', 21, '女', '计算机')

2)添加一行记录的部分数据值


例:在SC表中添加一条选课记录(’S7‘, ’C1')

insert into SC (SNo, CNo) values ('S7', 'C1')

3)添加多行记录

添加多行记录用于表间的拷贝,即将一张表中的数据抽取数行添加到另一张表中,可以通过子查询实现。

添加数据的命令语法格式为:

insert into <表名> [ (< 列名1>[, <列名2>] ) ]  子查询


例:求出各个系教师的平均工资,把结果存放在新表AvgSal中。

首先创建一张AvgSal表:

create table AvgSal(Department varchar(20),Average int)

然后利用子查询求出表T中各个系的平均工资,把结果存入新表AvgSal中。

insert into AvgSal  select Dept, avg(Sal) from T group by Dept

2. 修改数据

使用SQL的update语句对表中的一行或多行记录的某些列值进行修改,其语法格式为:

update <表名> set <列名>=<表达式> [ ,  <列名>=<表达式> ]... [ where <条件> ]


1)修改一行数据

例:把刘伟老师转到信息系。

update T set Dept='信息' where TN='刘伟'

2)修改多行数据

例1:将所有的学生的年龄增加1岁。

update S set Age=Age+1

例2:把教师表中工资小于或等于1000元的讲师的工资提高20%。

update T set Sal = Sal *1.2 where Sal<=1000 and Prof='讲师'

3)用子查询选择要修改的行。

例1:把讲授C5课程的教师的岗位津贴增加100元。

update T set Comm=Comm+100 where TNo = any (select TNo from TC where CNo='C5')

例2: 把所有教师的工资提高到平均工资的1.2倍.

update T set Sal = (select  avg(Sal)*1.2 from T )


3. 删除数据

使用SQL的delete语句可以删除表中的一行或多行记录,其语法格式为:

delete from <表名> [ where <条件> ]

注:当省略where子句时,则删除表中的所有记录。


1)删除一行记录

例:删除刘伟老师的记录。

delete from T where TN='刘伟'


2)删除多行记录

例:删除所有教师的授课记录。

delete from TC

3)利用子查询选择要删除的行

例:删除刘伟老师的授课记录。

delete from TC where TNo = (select TNo from T where TN='刘伟')



0 0