SQL数据更新

数据更新有三种:插入,修改,删除

一·插入数据

  1. 插入元组(行)

INSERT

Into <表名>[(<属性列1><属性列2><属性列3><属性列4>)]

Values(<常量1><常量2><常量3><常量4>);

注:可以写也可以不用写,如果不写,则表示新元组要在所有表的列属性上都有指定值,并且次序与create table次序相同,值与属性一定要一一对应。

例1:将学生张三信息插入学生表Student当中(原表属性顺序:学号,姓名,性别,年龄,所在院系)

Insert

Into Student

Values(‘20205831’,’张三’,’男’,’18’,’CS’);

例2:将一个新元组(学号:20205830,姓名:李东,性别:男,所在系列IS,年龄18)插入学生表Student中

Insert

Into Student(Sno,Sname,Ssex,Sdept,Sage)

Values (‘20205830’,’李东’,’男’,’IS’,’18’);

注:在新增元组中指定了哪些属性要赋值,属性顺序可以不与create table 相同,但是后面赋值一定要与自己指定的属性一一对应。

若新增加元组只插入部分列属性,则其他列属性自动赋予空值

例3:插入一条选课记录(‘20205832’,’1’)表SC属性次序为(Sno,Cno,grade)

第一种:

Insert
into SC (Sno,Cno)                       /*
表明要赋值得属性*/

Values (‘20205832’,’1’);

其他属性值自动赋值为空

第二种:

Insert
into SC

Values (‘20205832’,’1’,’NULL’);

没有指出赋值属性,所以在其他属性上明确的赋值NUL

  1. 插入子查询结果

Insert

Into<表名>[(<属性列1><属性列2><属性列3><属性列4>)]

子查询;

例1:对每一个系,求学生平均年龄,并把结果放入数据库中

首先在数据库中建立一个新表,其中一列放系名,另一列放平均年龄

Create table Dept_age

(Sdept char(15),

Avg_age smallint);

然后对表Student按系分组,再把系名和平均年龄存入新表中

Insert

Into Dwpt_age(Sdept,Avg_age)

Select Sdept,AVG(Sage)

From Student

Group by Sdept;

  

二.数据修改(更新)

      Update <表名>

Set <列名>=<表达式>[,<列名>=<表达式>]

[Where <条件>]

 功能是修改指定表中where子句条件中的元组,其中set语句中<表达式>的值用于取代相应的属性列值。如果省略where子句,则表示修改所有元组的值

修改一个元组的值

例1:将学生201215121的年龄改成22岁

      Update student

            Set Sage=22

Where Sno=’201215121’;

修改多个元组的值

例2:将所有学生的年龄增加一岁

Update Student

      Set Sage=Sage+1;

带子查询的修改语句

例3:将计算机系全体学生成绩归0

Update SC

Set grade=0

Where Sno(

Selete Son

From Student

Where Sdept=’CS’);

三:删除

            Delete

            From<表名>

            [where <条件>]

      功能从指定表中删除满足where子句条件的所有元组,如果没有where则删除表中的所有数据

例1:删除学号201215128的学生记录

Delete

From Student

Where Sno=’201215128’;

例2;删除表STUSENT所有数据

      Delete

      From STUDENT;

例3:删除计算机系所有学生的选课记录

      Delete

     From SC

      Where Son in(

Selete Sno

From Student

Where Sdept=’CS’);

           

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐