WEB程序设计WEB程序设计 (39).pdf
4任务二:Mysql数据库查询知识点4:select查询select查询SELECT语句用来查询出表中的数据。SELECT语句是SQL中最复杂的语句之一。因为用SELECT语句可以实现极为复杂的查询功能。可以查询某个表中全部记录、部分满足条件的记录、全部字段、部分满足条件的字段等等。还可以同时从多个表中查询满足条件的记录,以及对查询结果进行排序等select查询语法SELECT all/distinct|表名.字段AS 别名1,表名.字段2 AS 别名2nFROM 表名1 as 别名 ,表名2 as 别名WHEREGROUP BYHAVING ORDER BYasc/desclimit 偏移量,行数select中 和 含义说明:在这个语法中,代表可选项 代表必选项 写命令时不写 和select查询语法说明:在这个语法中,select 字段名 from 表名是基本语法,不能省略例:select *from 学生表含义:显示学生表的相关信息 *:代表全部记录全部字段select查询实例distinct 去掉重复值limit 偏移量,行数 含义:限制返回的行数from 引用表含义:引用多表和单表查询(以xsk为例,有三张表:kcb、xsb、cjb)xsb表结构及表记录信息kcb表结构及表记录信息cjb表结构及表记录信息课堂任务五:在xsk中查找学生的学号、姓名、课程名及成绩 SELECT xsb.学号,姓名,课程名,成绩FROM xsb,cjb,kcbWHERE xsb.学号=cjb.学号AND kcb.课程号=cjb.课程号LIMIT 0,30课堂任务五在xsk中查找学生的学号、姓名、课程名及成绩程序运行结果 表连接关系基本语法:A表和B表的共同字段是d,B表和C表的共同字段是e建立内连接的语法:from A inner join Bon A.d=B.dinner join Con B.e=C.ewhere指定查询条件说明:在where子句中,需要进行的运算包括:比较运算、模式匹配、范围比较、空值比较和子查询且多个条件之间用逻辑运算符连接起来逻辑运算符:not and or 课堂任务六:查询gzb中财务部人员信息 SELECT*FROM gzbWHERE 部门=财务部课堂任务六查询gzb中财务部人员信息程序运行结果 课堂任务七:查询gzb中财务部人员基本工资大于5000元的员工相关信息 SELECT *FROM gzbWHERE 部门=财务部 and 基本工资5000课堂任务七:查询gzb中财务部人员基本工资大于5000元的员工相关信息运行结果 模糊查找like运算符说明:like运算符用于字符运算,一般与通配符配合使用。查找字符串是否与制定字符串相匹配通配符含义%代表0个或者多个任意字符_代表单个任意字符课堂任务八:查询gzb中姓王人的相关信息SELECT *FROM gzbWHERE 姓名 like 王%课堂任务九:查询kcb中课程名含计算机的课程相关信息SELECT*FROM kcbwhere 课程名 like%计算机%课堂任务十:查询xsb中姓名的第二个字是晓的同学的相关信息SELECT*FROM xsb WHERE 姓名 like _晓%课堂任务十一:查找成绩是60到90之间的同学的学号,姓名,课程名及成绩between and 用法课堂任务十二:查找专业是”电子商务”、”英语”和”数学”专业的同学的相关信息。in(A,B,C)用法SELECT*FROM xsb WHERE 专业 in(英语,电子商务,数学)课堂任务十三:查找备注为空的同学的相关信息。is null 用法SELECT*FROM xsbwhere 备注 is null 课堂任务十四:找出那些课程没被选修。子查询 项目构思:1.先找出成绩表中已经选修了的课程的课程号。2.用课程表中的课程号和已经修的课程号进行比较,那些没有出现,那些课程就是没有被选修的。课堂任务十四:找出那些课程没被选修。子查询 SELECT*FROM kcbwhere 课程号 not in(select 课程号 from cjb)课堂任务十五:统计各门课程的平均分。group by用法 group by 用法1.分类汇总,将同类别的数据进行汇总。2.一般和聚合函数配合使用。函数名说明avg()求平均值max()求最大值min()求最小值count()统计个数sum()求和课堂任务十五:统计各门课程的平均分。group by用法 SELECT 课程名,avg(成绩)as 平均分 FROM kcb inner join cjbWHERE kcb.课程号=cjb.课程号group by 课程名课堂任务十六:查询成绩最高的前三名同学。order by 排序依据asc/desc用法 order by 用法1.按照指定字段进行排序。2.asc 升序 desc 降序,默认为升序课堂任务十六:显示成绩最高的前三名同学。order by 排序依据asc/desc用法 SELECT xsb.学号,姓名,成绩 FROM xsb,kcb ,cjbWHERE xsb.学号=cjb.学号 and kcb.课程号=cjb.课程号order by 成绩 desclimit 0,3小 结插 入 查 询更 新 查 询删 除 查 询select查询子 查 询课堂项目 Thanks