第13讲MySql增删改查精选课件.ppt

上传人:小飞机 文档编号:2108421 上传时间:2023-01-11 格式:PPT 页数:41 大小:181.97KB
返回 下载 相关 举报
第13讲MySql增删改查精选课件.ppt_第1页
第1页 / 共41页
第13讲MySql增删改查精选课件.ppt_第2页
第2页 / 共41页
第13讲MySql增删改查精选课件.ppt_第3页
第3页 / 共41页
第13讲MySql增删改查精选课件.ppt_第4页
第4页 / 共41页
第13讲MySql增删改查精选课件.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《第13讲MySql增删改查精选课件.ppt》由会员分享,可在线阅读,更多相关《第13讲MySql增删改查精选课件.ppt(41页珍藏版)》请在三一办公上搜索。

1、第十三讲 MYSQL-增删改查,第十三讲 MYSQL-增删改查,插入记录操作,语法:叙述:如果表名后面没写字段名,则默认是向所有的字段添加值,另外字符串值应该用 或“”引号括起来举例1:向people表中添加一条记录:insert into people(name,age)values(“zhangsan”,20);,INSERT INTO 列名 VALUES,插入记录操作语法:INSERT INTO,插入案例,创建一张学生信息表,往表中插入数据create table students(scode int not null auto_increment,sname varchar(20)no

2、t null,saddress varchar(20)default未知,sage int,semail varchar(20),ssex bit,primary key(scode);,插入案例创建一张学生信息表,往表中插入数据,插入数据行 1,注意事项1:每次插入一行数据,不可能只插入半行或者几列数据,因此,插入的数据是否有效将按照整行的完整性的要求来检验;,插入数据行 1注意事项1:每次插入一行数据,不可能只插入半行,插入数据行 2,注意事项2:每个数据值的数据类型、精度和小数位数必须与相应的列匹配;,插入数据行 2注意事项2:每个数据值的数据类型、精度和小数位,插入数据行3,注意事项4

3、:如果在设计表的时候就指定了某列不允许为空,则必须插入数据;,插入数据行3注意事项4:如果在设计表的时候就指定了某列不允许,插入数据行4,注意事项6:具有缺省值的列,可以使用DEFAULT(缺省)关键字来代替插入的数值,INSERT INTO Students(SName,SAddress,Sage,SEmail,SSEX)VALUES(张青裁,DEFAULT,6,ZQCSohu,0),插入数据行4注意事项6:具有缺省值的列,可以使用DEFAUL,插入多行数据,INSERT INTO(列名)VALUES(),(),(),插入多行数据INSERT STUDENTS(SName,插入多行数据,IN

4、SERT INTO(列名)SELECT FROM,插入多行数据INSERT INTO TongXunLu(,学生、课程、成绩插入数据,学生信息95001,洛燕妮,女,20,信息系 95002,欧阳炎,男,19,计算机系 95003,何东升,男,21,美术系 95004,刘晨,男,18,计算机系 95005,沙明华,女,21,美术系 95006,欧阳宝宝,男,19,美术系课程信息1,JAVA2,C3,.NET成绩信息95001,1,98 95002,1,50 95004,1,70 95003,4,95 95005,4,40 95006,4,77 95001,2,80 95002,3,58 950

5、06,2,70,学生、课程、成绩插入数据学生信息,更改记录操作,语法:叙述:where 子句是判断语句,用来设定条件,限制只更新匹配的行,如果不带where子句,则更新所有行数据。举例:将student表中的所有学生名称为Alex的改为Tom:update student set sname=Tom where sname=Alex;,UPDATE SET WHERE,更改记录操作语法:UPDATE SET 列名,更新数据行,更新数据行UPDATE Student SET SSEX=,删除记录操作,语法:叙述:此语句删除表中的行,如果不带where子句,则删除整个表中的记录,但是表不被删除。举

6、例:删除student表中的所有年龄小于18岁的记录:delete from student where sage18;,DELETE FROM WHERE,删除记录操作语法:DELETE FROM WHE,补充说明,删除学生编号为95005的学生信息包括成绩信息delete from student,sc using student,sc where student.sno=sc.studentid and student.sno=95005;说明:表和字段的引用方式有两种:绝对引用和相对引用绝对引用:数据库名.表名(.字段名)相对引用:表名.(字段名),补充说明,删除数据行,删除数据行河南

7、新乡赵可以0010016河南新乡张丽鹃0010,什么是查询?,客户程序,SQL SERVER,SELECT*FROM SALES,查询产生一个虚拟表,看到的是表形式显示的结果,但结果并不真正存储,每次执行查询只是现从数据表中提取数据,并按照表的形式显示出来,什么是查询?Application Logic客户程序查询请,怎么查的?,怎么查的?学员编号学员姓名地址所在班级.001张明全湖南,SQL语法,SELECT DISTINCT|DISTINCTROW|ALL select_expression,.FROM table_references WHERE where_definition GRO

8、UP BY col_name,.HAVING where_definition ORDER BY unsigned_integer|col_name|formula ASC|DESC,.LIMIT offset,rows PROCEDURE procedure_name,SQL语法SELECT DISTINCT|DISTIN,查询记录操作,from子句:指定查询数据的表where子句:查询数据的过滤条件group by子句:对匹配where子句的查询结果进行分组having子句:对分组后的结果进行条件限制order by子句:对查询结果结果进行排序,后面跟desc降序或asc升序(默认)。li

9、mit子句:对查询的显示结果限制数目procedure子句:查询存储过程返回的结果集数据,查询记录操作from子句:指定查询数据的表,查询举例,SELECT FROM WHERE ORDER BY ASC或DESC,查询举例SELECT 列名称SELECT,举例1:查询全体学生的学号与姓名。select sno,sname from student;举例2:查询全体学生的详细记录。select sno,sname,ssex,sage,sdept from student;或select*from student;举例3:查全体学生的姓名及其出生年份。select sname,2019-sage

10、 from student;举例4:查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名。select sname,year of birth:,2019-sage,islower(sdept)from student;举例5:查询选修了课程的学生学号(去掉重复的记录)select distinct studentid from sc;,举例1:查询全体学生的学号与姓名。,举例6:查询全体学生的学号与姓名,用中文显示列名。select sno as 编号,sname as 姓名 from student;举例7:给表设置别名。select s.sno,s.sname from st

11、udent as s;举例8:查询年龄在20以下的学生的姓名。select sname from student where sage20;举例9:查询全体学生的姓名、年龄,要求按照年龄降序排序。select sname,sage from student order by sage desc;举例10:查询年龄最大的前3个学生的姓名和年龄,或第4、5个学生select sname,sage from student order by sage desc limit 3;或(limit 3,2),举例6:查询全体学生的学号与姓名,用中文显示列名。,使用集函数,SQL提供的统计函数称为集函数.主

12、要的集函数:记数函数:count(列名)计算元素的个数求和函数:sum(列名)对某一列的值求和,但属性必须是整型计算平均值:avg(列名)对某一列的值计算平均值求最大值:max(列名)找出某一列的最大值求最小值:min(列名)找出某一列的最小值,使用集函数SQL提供的统计函数称为集函数.,举例11:查询学生总数。select count(*)from student;举例12:查询选修了课程的学生人数。select count(distinct studentid)from sc;举例13:查询1号课程的学生平均成绩。select avg(grade)from sc where coursei

13、d=1;举例14:查询1号课程的学生最高分和最低分。select max(grade)as 最高分,min(grade)as 最低分 from sc where courseid=1;举例15:查询每个学生的平均成绩。select studentid,avg(grade)as 平均成绩 from sc group by studentid;举例16:查询学生的平均成绩在70分以上的。select studentid,avg(grade)as 平均成绩 from sc group by studentid having avg(grade)70;,举例11:查询学生总数。select co,在W

14、HERE子句中使用谓词:BETWEEN AND:在两数之间NOT BETWEEN AND:不在两数之间IN:是否在特定的集合里(枚举)NOT IN:与上面相反LIKE:是否匹配于一个模式IS NULL(为空的)或 IS NOT NULL(不为空的)REGEXP:检查一个值是否匹配一个常规表达式。,在WHERE子句中使用谓词:,举例17:查询年龄在2023岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。select sname,sdept,sage from student where sage between 20 and 23;举例18:查询年龄不在2023岁之间的学生姓名、系别和年龄

15、。select sname,sdept,sage from student where sage not between 20 and 23;举例19:查询信息系、美术系和计算机系学生的姓名和性别。select sname,ssex from student where sdept in(信息系,美术系,计算机系);,举例17:查询年龄在2023岁(包括20岁和23岁)之,举例20:查询学号为95001的学生的详细情况。select*from student where sno like 95001;等价于:select*from student where sno=95001;举例21:查询

16、所有姓刘学生的姓名、学号和性别。select sname,sno,ssex from student where sname like 刘%;举例22:某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号。select studentid,courseid from sc where grade is null;举例23:查所有有成绩的学生学号和课程号。select studentid,courseid from sc where grade is not null;举例24:查询计算机系年龄在20岁以下的学生姓名。select sname f

17、rom student where sdept=计算机系 and sage20;,举例20:查询学号为95001的学生的详细情况。,举例25:查询信息系、美术系和计算机系学生的姓名和性别select sname,ssex from student where sdept in(信息系,美术,计算机系);可改写为:Select sname,ssex from student where sdept=信息系 or sdept=美术 or sdept=计算机系;举例26:查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。select studentid,grade from sc wh

18、ere courseid=3 orber by grade desc;举例27:查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。select*from student order by sdept,sage desc;,举例25:查询信息系、美术系和计算机系学生的姓名和性别,多表查询问题,学员内部测试成绩查询的每次显示的都是学员的编号信息,因为该表中只存储了学员的编号;实际上最好显示学员的姓名,而姓名存储在学员信息表;如何同时从这两个表中取得数据?,多表查询问题学员内部测试成绩查询的每次显示的都是学员的编号,多表查询分类,连接查询同时涉及多个表的查询称为连接查询

19、用来连接两个表的条件称为连接条件内连接(INNER JOIN)外连接左外联结(LEFT JOIN)右外联结(RIGHT JOIN)外连接与普通连接的区别普通连接操作只输出满足连接条件的元组外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出:,多表查询分类连接查询,多表查询内连接-1,SELECT S.SName,C.CourseID,C.G,多表查询内连接-2,多表查询内连接-2SELECT Students.SNam,多表查询三表连接,多表查询三表连接SELECT,多表查询左外连接,ScStudentsIDCourseIDGrade12230,多表查询右外连接,多表查询右外

20、连接SELECT Titles.Title_i,子查询:将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为子查询。一个SELECT-FROM-WHERE语句称为一个查询块例如:select sname from student where sno in(select studentid from sc where courseid=2);,子查询:,例如:查询选修了课程名为“Java”的学生学号和姓名 select sno,sname from student where sno in(select studentid from sc where cno=(select cno from course where cname=Java);,例如:,复制表,我们来创建一个副本:,复制表我们来创建一个副本:,复制表,可以通过在SELECT查询中指定字段来限制出现在附表中的字段,复制表可以通过在SELECT查询中指定字段来限制出现在附表中,复制表,通过使用SELECT 语句创建已存在表的空副本,并且返回一个空结果集。,复制表通过使用SELECT 语句创建已存在表的空副本,并且返,数据库之路未完,待续.,数据库之路未完,待续.,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号