概述
目录
合并查询
存储查询结果到表中
数据表中数据的操纵
添加数据
修改数据
删除数据
合并查询
合并查询是使用UNION 操作符将来自不同查询的数据合并起来,形成一个具有综合信息的查询结果,UNION操作会自动将重复的数据行剔除。
参与合并查询的各个子查询使用的表结构应该相同,即各个子查询中的字段数目和对应的数据类型都必须相同。
[例]从SC数据表中查询出学号为“S1”同学的学号和总分,再从SC数据表中查询出学号为“S5”的同学的学号和总分,然后将两个查询结果合并成一个结果集。
SELECT SNo AS 学号,SUM(Score) AS 总分 FROM SC WHERE (SNo='S1') GROUP BY SNo UNION SELECT SNo AS 学号,SUM(Score) AS 总分 FROM SC WHERE (SNo='S5') GROUP BY SNo
存储查询结果到表中
使用SELECT ...INTO语句可以将查询结果存储到一个新建的数据库表或临时表中。
[例]从SC数据表中查询出所有同学的学号和总分,并将结果存放到一个新的数据表Cal_Table中。
SELECT SNo AS 学号,SUM(Score) AS 总分
INTO Cal_Table FROM SC GROUP BY SNo
数据表中数据的操纵
添加数据
添加一行新记录
[例]在SC表中添加一条选课记录('S7','C1')。
INSERT INTO SC(SNo,CNo) VALUES('S7','C1')
添加多行记录
[例] 求出各系教师的平均工资,把结果存放在新AvgSal中。
首先建立新表AvgSal,用来存放系名和各系的平均工资。
CREATE TABLE AvgSal
( Department VARCHAR(20),Average SMALLINT )
然后利用子查询求出T表中各系的平均工资,把结果存放在新表AvgSal中。
INSERT INTO AvgSal SELECT Dept,AVG(Sal) FROM T GROUP BY Dept
修改数据
修改一行
[例]把刘伟老师转到信息系
UPDATE T SET Dept='信息' WHERE SN ='刘伟'
修改多行
[例]将所有学生的年龄增加1岁。
UPDATE S SET Age=Age+1
[例]将教师表中工资小于或等于1000元的讲师的工资提高20%
UPDATE T SET Sal =1.2*Sal WHERE (Prof='讲师') AND (sal<=1000)
用子查询选择要修改的行
[例]把讲授C5课程的教师的岗位津贴增加100元。
UPDATE T SET Comm=Comm+100 WHERE(TNo IN (SELECT TNo FROM T,TC WHERE T.TNo=TC.TNo AND TC.CNo='C5'))
(教师表有教师津贴和教师号,教师授课表有教师号和讲授课程)
用子查询提供要修改的值
[例]把所有教师的工资提高到平均工资的1.2倍。
UPDATE T SET Sal = (SELECT 1.2*AVG(Sal) FROM T )
删除数据
删除一行记录
[例]删除刘老师的记录。
DELETE FROM T WHERE TN='刘伟'
删除多行记录
[例]删除所有老师的授课记录。
DELETE FROM TC
用子查询选择要删除的行
[例]删除刘伟老师授课的记录
DELETE FROM TC WHERE(TNo =(SELECT TNo FROM T WHERE TN ='刘伟'))
纯属个人学习笔记,转载记得附上原文链接
喜欢的小伙伴可以关注点赞收藏三连哦
最后
以上就是暴躁嚓茶为你收集整理的SQL入门学习(4)数据表中数据的操纵的全部内容,希望文章能够帮你解决SQL入门学习(4)数据表中数据的操纵所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复