欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » 关系数据库基础教程 » 正文

最新评论

数据的增删修语句使用教程

创建时间:2012年06月02日 10:25  阅读次数:(4881)
分享到:

insert into新增数据


数据的插入常用的是以下四种方法:
(1)单元组的插入
INSERT INTO 基本表名 [(列名表)] VALUES(元组值)

(2)多元组的插入
INSERT INTO 基本表名 [(列名表)] VALUES (元组值),(元组值),……,(元组值)

(3) 查询结果的插入
INSERT INTO 基本表名 [(列名表)]<SELECT查询语句>

这个语句可把一个SELECT语句的查询结果插到某个基本表中。
(4)表的插入
INSERT INTO 基本表名1 [(列名表)]TABLE  基本表名2
这个语句可把基本表2的值插入到基本表1中。

例3.24往表SC中插入元组的若干实例
①往SC中插入一个元组(S4,C6,90)
INSERT INTO SC(S#,C#,GRADE) VALUES('S4','C6','90')

②往表SC中插入一个元组(S4,C4),此处成绩值为空值
INSERT INTO SC(S#,C#) VALUES('S4','C4')

③在表SC中,把平均成绩大于80分的男学生的学号和平均成绩存入另一个已知的表S_GRADE(S#,AVG_GRADE)
注:需提前建立表S_GRADE(S#,AVG_GRADE)
INSERT INTO S_GRADE(S#,AVG_GRADE)
  SELECT S#,AVG(GRADE)
  FROM SC
  WHERE S# IN 
   (SELECT S# FROM S WHERE SEX='M')
  GROUP BY S#
  HAVING AVG(GRADE)>80

注:在执行语句时直接就把表建立好了,不需要提前建立
SELECT S#,AVG(GRADE) AVG_GRADE INTO STU_GRADE
  FROM SC
  WHERE S# IN 
   (SELECT S# FROM S WHERE SEX='M')
  GROUP BY S#
  HAVING AVG(GRADE)>80

④某一个班级的选课情况已在基本表SC4(S#,C#)中,把SC4的数据插入到表SC中
INSERT INTO  SC(S#,C#)
SELECT * FROM SC4


delete删除数据


SQL的删除操作是指从基本表中删除元组,其句法如下:
DELETE FROM基本表名 [WHERE 条件表达式]

其语义是从基本表中删除满足条件表达式的元组。删除语句实际上是“SELECT * FROM基本表名[WHERE条件表达式]”和DELETE操作的结合,每找到一个元组,就把它删去。应该注意,DELETE语句只能从一个基本表中删除元组。WHERE子句中条件可以嵌套,也可以是来自几个基本表的复合条件。

例3.25把课程名为DB的成绩从基本表SC中删除
DELETE FROM SC WHERE C# IN (SELECT C#
 FROM C WHERE CNAME='DB')

把C4课程中小于该课程平均成绩的成绩元组从基本表SC中删除
DELETE FROM SC WHERE C#='C4' 
 AND GRADE<(SELECT AVG(GRADE)
  FROM SC WHERE C#='C4')

注:以上语句先执行WHERE,然后才执行DELETE语句。所以两次引用SC是不会影响删除的
经验:如果只删除一张表,不需要任何条件,建议用TRUNCATE TABLE name

update修改数据


当需要修改基本表中元组的某些列值时,可以用UPDATE语句实现,其句法如下:
UPDATE 基本表名 SET 列名=值表达式[,列名=值表达式…]│ROW =(元组) [WHERE 条件表达式]

其语义是:修改基本表中满足条件表达式的那些元组中的列值,需修改的列值在SET子句中指出。

例3.26
①把C5课程的任课教师姓名改为WU
UPDATE C SET TEACHER='WU'WHERE C#='C5'

②把女同学的成绩提高10%
UPDATE SC SET GRADE=GRADE*1.1
WHERE S# IN (SELECT S# FROM S WHERE SEX='F')

③当C4课的成绩低于该门课程的平均成绩时,提高5%
UPDATE SC
SET GRADE=GRADE*1.05
WHERE C#='C4'
AND GRADE<(SELECT AVG(GRADE)
           FROM SC
           WHERE C#='C4')
8
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf】

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 71+49=? 的结果(结果是:120)
结  果: