利用SQL语言进行增删改


目录:1.SQL更新操作

   2.元组新增的两种格式

   3.批元组新增训练

   4.元组删除命令

   5.元组更新命令

1.SQL更新操作

  (1)元组新增 Insert:新增一个或一些元组到数据库的 Table 中

  (2)元组更新 Update:对某些元组的某些属性值进行重新设定

  (3)元组删除 Delete:删除某些元组

2.元组新增 Insert 命令的两种形式

  (1)单一元组新增命令形式:插入一条指定元组值的元组

    Insert into  表名 [ (列名 [ , 列名 ] ... ) ]   (中括号的意思:括号中内容的出现是可选的)

    values (值 [ , 值 ] ... );

  (2)批数据新增命令形式:插入子查询结果中的若干条元组。待插入的元组由子查询给出

    Insert into  表名 [ (列名 [, 列名 ] ... ) ]

    子查询;  (常与Select ... From ... Where ...联合)

3.批元组新增训练

  (1)新建立 Table :St( S#, Sname ),将检索到的满足条件的同学新增到该表中

    Insert into St (S#, Sname)

    Select S#, Sname

    From Student

    Where Sname like '%伟';

    注意 Select 后面的排列次序须与 Insert into St (S#, Sname)中列名的顺序一致

  (2)将 Student 表中所有同学的学号和姓名检索出来并按照姓名进行排序

    Insert into St (S#, Sname)

    Select S#, Sname

    From Student

    Order By Sname;

  (3)新建 Table :SCt(S#, C#, Score),将检索到的成绩及格的同学的记录新增到该表中

    Insert into SCt(S#, C#, Score)

    Select S#, C#, Score

    From SC

    Where Score >= 60;

  (4)新建 Table :St(S#, Sname, avgScore),将检索到的同学的平均成绩新增到该表中

    Insert into St(S#, Sname, avgScore)

    Select S#, Sname, Avt(Score)

    From Student, SC

    Where Student.S# = SC.S#

    Group by Student.S#;

4.元组删除命令

  (1)元组删除命令的格式

    Delete  From  表名 [ Where 条件表达式 ]

    如果 Where 条件省略,则删除所有元组

  (2)元组删除命令练习

    1)删除 SC 表中所有元组

      Delete From SC;

    2)删除 98030101 号同学所选的所有课程

      Delete From SC

      Where S# = '98030101';

    3)删除自动控制系的所有同学

      Delete From Student

      Where D# in (Select D# From Dept Where Dname = '自动控制');

5.元组更新命令

  (1)元组更新Update命令的格式

    Update  表名

    Set  列名 = 表达式  | (子查询)[ [, 列名 = 表达式 |(子查询)] ... ]

    [ Where 条件表达式 ]

    如果 Where 条件省略,则更新所有元组

  (2)元组更新命令练习

    1)将所有教师工资上调 5%

      Update Teacher

      Set Salary = Salary*(1+0.05);

    2)将所有计算机系教师的工资上调10%

      Update Teacher

      Set Salary = Salary*1.1

      Where D# in (Select D# From Dept Where Dname = '计算机');

    3)条件控制的更新:当某同学001号课的成绩低于该课程平均成绩时,将该同学该门课程的成绩提高 5%

      Update SC

      Set Score = Score*1.05

      Where C# = '001' and Score < some ( Select AVG(Score) From SC Where C# = '001' );

相关