数据库的增删改查.ppt课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据库的增删改查.ppt课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 增删 ppt 课件
- 资源描述:
-
1、回顾回顾数据类型分哪两种类型数据类型分哪两种类型装箱和拆箱的关系装箱和拆箱的关系简单类型以及其字节数与范围简单类型以及其字节数与范围课程目标课程目标示例数据库示例数据库: :学生学生-课程数据库课程数据库学生表:学生表:Student(SnoStudent(Sno,SnameSname,SsexSsex,SageSage,Sdept)Sdept)课程表:课程表:Course(CnoCourse(Cno,Cname)Cname)学生选课表:学生选课表:SC(SnoSC(Sno,CnoCno,Grade)Grade) 2.12.1添加数据添加数据使用使用insertinsert语句添加数据的一般格
2、式:语句添加数据的一般格式:insert into insert into 列名列名 values values 省略列名省略列名-指定值的顺序必须与表中的列顺序一致指定值的顺序必须与表中的列顺序一致只有部分列包含值只有部分列包含值insert into 员工信息表员工信息表(姓名姓名,性别性别,职务职务) values(张三张三,男男,经理经理)insert into 员工信息表员工信息表values(张三张三,经理经理,男男)insert into 员工信息表员工信息表(姓名姓名,职务职务)values(李四李四,null)使用使用select into select into 语句复制表
3、的结构和数据语句复制表的结构和数据 select select * * into into 普通职员表普通职员表from from 员工信息表员工信息表where where 职务职务=职员职员 select intoselect into和和insert intoinsert into都可以添加多行数据都可以添加多行数据, ,两者的两者的区别区别 insert into insert into 语句中用于添加数据的目标表要求已经语句中用于添加数据的目标表要求已经存在存在 select into select into 语句会创建新表语句会创建新表, ,要求不存在同名的表要求不存在同名的表2.
4、22.2更新数据更新数据updateupdate语句语句: :可更新表中单行可更新表中单行, ,行组或所有行的数据行组或所有行的数据一般格式为:一般格式为:update update 表名表名 set set 列名列名1=1=新值新值1,1,列名列名2=2=新值新值2 2 where where 条件条件 update update 员工信息表员工信息表set set 职务职务=职员职员 where where 姓名姓名= =张三张三 update update 图书信息图书信息set set 库存数量库存数量= =库存数据库存数据+20+20where where 出版社编号出版社编号=1=
5、12.32.3删除数据删除数据使用使用deletedelete语句删除行语句删除行 delete from delete from 表名表名 where where 条件条件delete from delete from 教师教师信息表信息表where where 职务职务 is null is null注意注意: :如果如果deletedelete语句没有语句没有wherewhere条件条件, ,则删除表中所有行则删除表中所有行, ,但保留表的结构但保留表的结构delete delete 新职员表新职员表使用使用truncate tabletruncate table删除表中所有行删除表中所
6、有行truncate table truncate table 新职员表新职员表用用truncatetruncate和和deletedelete都可以删除表的所有行都可以删除表的所有行, ,两者的区别两者的区别 truncatetruncate语句不写日志语句不写日志, ,执行速度比执行速度比deletedelete语句快语句快, ,但不可但不可回滚回滚数据查询是数据库中最常见的操作。数据查询是数据库中最常见的操作。SQLSQL语言提供语言提供SELECTSELECT语语 句,通过查询操作可得到所需的信息。句,通过查询操作可得到所需的信息。 SELECTSELECT语句的一般格式为:语句的一般
7、格式为: 2.42.4查询数据查询数据SELECT SELECT FROM FROM WHERE WHERE GROUP BY GROUP BY HAVING HAVING ORDER BY ORDER BY ASCASC或或DESCDESC SELECTSELECT语句的执行过程是语句的执行过程是: : 根据根据WHEREWHERE子句的检索条件,从子句的检索条件,从FROMFROM子句指定的基本表子句指定的基本表或视图中选取满足条件的元组,再按照或视图中选取满足条件的元组,再按照SELECTSELECT子句中指定子句中指定的列,投影得到结果表。的列,投影得到结果表。 如果有如果有GROUP
8、GROUP子句,则将查询结果按照子句,则将查询结果按照 1相同的值相同的值进行分组。进行分组。 如果如果GROUPGROUP子句后有子句后有HAVINGHAVING短语,则只输出满足短语,则只输出满足HAVINGHAVING条件的元组。条件的元组。 如果有如果有ORDERORDER子句,查询结果还要按照子句,查询结果还要按照 2的值进行的值进行排序。排序。例3-23 查询全体学生的学号、姓名和年龄。SELECT SNo, SN, AgeFROM S 例3-24 查询学生的全部信息。SELECT * FROM S 例3-25 查询选修了课程的学生号。SELECT DISTINCT SNo FRO
9、M SC例3-26 查询全体学生的姓名、学号和年龄。SELECT SN Name, SNo, Age FROM SSELECT SN AS Name, SNo, Age2.4.2 2.4.2 条件查询条件查询运算符含义=, , =,=, != ,比较大小AND, OR, NOT多重条件BETWEEN AND确定范围IN确定集合LIKE字符匹配IS NULL空值2.4.2.12.4.2.1 比较大小比较大小 例例2 2.5.5 查询选修课程号为查询选修课程号为C1C1的学生的学号和成绩的学生的学号和成绩 SELECT SNO,SCORE SELECT SNO,SCORE FROM SC FROM
10、 SC WHERE WHERE CNO=CNO=C1C1 例例2.6 2.6 查询成绩高于查询成绩高于8585分的学生的学号、课程号和成绩。分的学生的学号、课程号和成绩。 SELECT SNO,CNO,SCORESELECT SNO,CNO,SCORE FROM SC FROM SC WHERE WHERE SCORE85SCORE85 2.4.2.2 2.4.2.2 多重条件查询多重条件查询 当当WHEREWHERE子句需要指定一个以上的查询条件时,则需要使子句需要指定一个以上的查询条件时,则需要使用逻辑运算符用逻辑运算符ANDAND、OROR和和NOTNOT将其连结成复合的逻辑表达式。将其
11、连结成复合的逻辑表达式。 其优先级由高到低为:其优先级由高到低为:NOTNOT、ANDAND、OROR,用户可以使用括号,用户可以使用括号改变优先级。改变优先级。 例例2.7 2.7 查询选修查询选修C1C1或或C2C2且分数大于等于且分数大于等于8585分学生的的学号、分学生的的学号、课程号和成绩。课程号和成绩。 SELECT SNOSELECT SNO,CNOCNO,SCORE SCORE FROM SC FROM SC WHERE WHERE(CNO=CNO=C1C1 OROR CNO= CNO=C2C2 ANDAND SCORE=85 SCORE=85 )) ) 2.4.2.3 2.4
12、.2.3 确定范围确定范围例例2.82.8查询工资在查询工资在10001000至至15001500间的教师的教师号姓名及职称间的教师的教师号姓名及职称SELECT TNO,TN,PROF SELECT TNO,TN,PROF FROM T FROM T WHERE SAL WHERE SAL BETWEENBETWEEN 1000 1000 ANDAND 1500 1500 等价于等价于 SELECT TNO,TN,PROFSELECT TNO,TN,PROFFROM T FROM T WHERE WHERE SAL1000 AND SAL1000 AND SAL1500 例例3.93.9查询
13、工资不在查询工资不在10001000至至15001500之间的教师的教师号、姓名之间的教师的教师号、姓名及职称。及职称。 SELECT TNO,TN,PROFSELECT TNO,TN,PROFFROM T FROM T WHERE SAL WHERE SAL NOT BETWEENNOT BETWEEN 1000 1000 ANDAND 1500 1500 2.4.2.42.4.2.4确定集合确定集合利用利用“ININ”操作可以查询属性值属于指定集合的元组操作可以查询属性值属于指定集合的元组。例例3.10 3.10 查询选修查询选修C1C1或或C2C2的学生的学号、课程号和成绩。的学生的学号
14、、课程号和成绩。 SELECT SNO, CNO, SCORE SELECT SNO, CNO, SCORE FROM SC FROM SC WHERE CNO WHERE CNO ININ( (C1C1, , C2C2) ) 此语句也可以使用逻辑运算符此语句也可以使用逻辑运算符“OROR”实现。实现。 SELECT SNO, CNO, SCORE SELECT SNO, CNO, SCORE FROM SC FROM SC WHERE CNO=WHERE CNO=C1C1 OROR CNO= CNO= C2C2 利用利用“NOT INNOT IN”可以查询指定集合外的元组。可以查询指定集合外
15、的元组。 例例2.11 2.11 查询没有选修查询没有选修C1C1,也没有选修,也没有选修C2C2的学生的学号、课的学生的学号、课程号和成绩。程号和成绩。 SELECT SNO, CNO, SCORE SELECT SNO, CNO, SCORE FROM SC FROM SC WHERE CNO NOT IN( WHERE CNO NOT IN(C1C1, , C2C2) ) 等价于:等价于: SELECT SNO, CNO, SCORE SELECT SNO, CNO, SCORE FROM SC FROM SC WHERE CNO!= WHERE CNO!=C1C1 AND CNO!=
16、AND CNO!= C2C2 最后一行也可以写成:最后一行也可以写成: WHERE WHERE (CNOCNOC1C1) AND (CNO) AND (CNOC2C2) )2.4.2.5 2.4.2.5 部分匹配查询部分匹配查询 上例均属于完全匹配查询,当不知道完全精确的値时,用上例均属于完全匹配查询,当不知道完全精确的値时,用户还可以使用户还可以使用LIKELIKE或或NOT LIKENOT LIKE进行部分匹配查询(也称模进行部分匹配查询(也称模糊查询)。糊查询)。 LIKELIKE定义的一般格式为:定义的一般格式为: LIKE LIKE 属性名必须为字符型属性名必须为字符型,字符串常量的
17、字符可以包含如下两,字符串常量的字符可以包含如下两个特殊符号:个特殊符号: 通配符功能实例%代表0个或多个字符ab%,ab后可连接任意字符串_下划线代表一个字符a_b,a与b间可以有一个字符表示在某一范围内的字符0-9,09之间的字符表示不在某一范围内的字符0-9,不在09之间的字符 % %:表示任意知长度的字符串;表示任意知长度的字符串; _ _:表示任意单个字符。表示任意单个字符。例例3.12 3.12 查询所有姓张的教师的教师号和姓名。查询所有姓张的教师的教师号和姓名。 SELECT TNO, TN SELECT TNO, TN FROM T WHERE TN FROM T WHERE
18、TN LIKE LIKE 张张% % 例例3.13 3.13 查询姓名中第二个汉字是查询姓名中第二个汉字是“力力”的教师号和姓名。的教师号和姓名。 SELECT TNO, TN SELECT TNO, TN FROM T FROM T WHERE TN LIKE WHERE TN LIKE _ _力力% %2.4.2.6 2.4.2.6 空值查询空值查询 某个字段没有值称之为某个字段没有值称之为具有空值(具有空值(NULLNULL)。)。通常没有为一个通常没有为一个列输入值时,该列的值就是空值。列输入值时,该列的值就是空值。 空值不同于零和空格,它不占任何存储空间空值不同于零和空格,它不占任何
19、存储空间。例如,某些。例如,某些学生选课后没有参加考试,有选课记录,但没有考试成绩,学生选课后没有参加考试,有选课记录,但没有考试成绩,考试成绩为空值,这与参加考试,成绩为零分的不同。考试成绩为空值,这与参加考试,成绩为零分的不同。例例3.14 3.14 查询没有考试成绩的学生的学号和相应的课程号。查询没有考试成绩的学生的学号和相应的课程号。 SELECT SNO, CNO SELECT SNO, CNO FROM SC FROM SC WHERE SCORE IS NULL WHERE SCORE IS NULL 注意:这里的空值条件为注意:这里的空值条件为IS NULLIS NULL,不能
20、写成,不能写成SCORE=NULLSCORE=NULL。 2.4.32.4.3 常用库函数及统计汇总查询常用库函数及统计汇总查询SQLSQL提供了许多库函数增强了基本检索能力。提供了许多库函数增强了基本检索能力。常用的常用的库函数库函数,如表,如表3.23.2所示:所示: 函数名称功能AVG按列计算平均值SUM按列计算值的总和MAX求一列中的最大值MIN求一列中的最小值COUNT按列值同济个数例例3.15 3.15 求学号为求学号为S1S1学生的总分和平均分。学生的总分和平均分。 SELECT SELECT SUM(SCORE)SUM(SCORE)AS TotalScore,AVG(SCORE
21、)AS AveScoreAS TotalScore,AVG(SCORE)AS AveScoreFROM SC FROM SC WHERE (SNO = S1) WHERE (SNO = S1) 注意:函数注意:函数SUMSUM和和AVGAVG只能对只能对数值型字段数值型字段进行计算。进行计算。例例2.162.16求选修求选修C1C1号课程的最高分、最低分及之间相差的分数号课程的最高分、最低分及之间相差的分数 SELECT MAX(SCORE) AS MaxScore, MIN(SCORE) AS SELECT MAX(SCORE) AS MaxScore, MIN(SCORE) AS MinS
22、core, MAX(SCORE) - MIN(SCORE) AS Diff MinScore, MAX(SCORE) - MIN(SCORE) AS Diff FROM SC FROM SC WHERE (CNO = C1) WHERE (CNO = C1) 例例3.17 3.17 求计算机系学生的总数求计算机系学生的总数 SELECT COUNT(SELECT COUNT(* *) ) FROM S FROM S WHERE DEPT= WHERE DEPT=计算机计算机 例例3.18 3.18 求学校中共有多少个系求学校中共有多少个系 SELECT COUNT(DISTINCT DEPT)
23、 AS DeptNum SELECT COUNT(DISTINCT DEPT) AS DeptNum FROM S FROM S 注意:加入关键字注意:加入关键字DISTINCTDISTINCT后表示消去重复行,可计算字段后表示消去重复行,可计算字段“DEPTDEPT“不不同值的数目。同值的数目。 COUNTCOUNT函数对空值不计算,但对零进行计算函数对空值不计算,但对零进行计算。例例2.192.19统计有成绩同学的人数统计有成绩同学的人数 SELECT COUNT (DISTINCT SNO) SELECT COUNT (DISTINCT SNO) FROM SC FROM SC WHER
24、E SCORE IS NOT NULL WHERE SCORE IS NOT NULL 上例中成绩为零的同学计算在内,没有成绩(即为空值)上例中成绩为零的同学计算在内,没有成绩(即为空值)的不计算。的不计算。 例例2.20 2.20 利用特殊函数利用特殊函数COUNT(COUNT(* *) )求计算机系学生的总数求计算机系学生的总数 SELECT COUNT(SELECT COUNT(* *) ) FROM S FROM S WHERE DEPT= WHERE DEPT=计算机计算机 COUNTCOUNT(* *)用来统计元组的个数,不消除重复行,不允许)用来统计元组的个数,不消除重复行,不允
25、许使用使用DISTINCTDISTINCT关键字。关键字。 2.4.4 2.4.4 分组查询分组查询GROUP BYGROUP BY子句可以将查询结果按属性列或属性列组合在子句可以将查询结果按属性列或属性列组合在行的行的方向方向上进行分组,每组在属性列或属性列组合上具有相同上进行分组,每组在属性列或属性列组合上具有相同的值。的值。 例例3.21 3.21 查询各位教师的教师号及其任课的门数。查询各位教师的教师号及其任课的门数。 SELECT TNO,COUNT(SELECT TNO,COUNT(* *) AS C_NUM ) AS C_NUM FROM TC G FROM TC G ROUP
展开阅读全文