举例:MySQL 使用DQL命令查询数据
DROP TABLE IF EXISTS `grade`; CREATE TABLE `grade` ( `GradeID` INT(11) NOT NULL AUTO_INCREMENT COMMENT '年级编号', `GradeName` VARCHAR(50) NOT NULL COMMENT '年级名称', PRIMARY KEY (`GradeID`) ) ENGINE=INNODB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; INSERT INTO `grade`(`GradeID`,`GradeName`) VALUES (1,'大一'),(2,'大二'),(3,'大三'),(4,'大四'),(5,'预科班'); DROP TABLE IF EXISTS `result`; CREATE TABLE `result` ( `StudentNo` INT(4) NOT NULL COMMENT '学号', `SubjectNo` INT(4) NOT NULL COMMENT '课程编号', `ExamDate` DATETIME NOT NULL COMMENT '考试日期', `StudentResult` INT(4) NOT NULL COMMENT '考试成绩', KEY `SubjectNo` (`SubjectNo`) ) ENGINE=INNODB DEFAULT CHARSET=utf8; INSERT INTO `result`(`StudentNo`,`SubjectNo`,`ExamDate`,`StudentResult`) VALUES (1000,'111111','郭靖',1,1,'13500000001','北京海淀区中关村大街1号','1986-12-11 00:00:00','test1@163.cn','450323198612111234'),(1001,'123456','李文才',1,2,'13500000002','河南洛阳','1981-12-31 00:00:00','test1@163.cn','450323198112311234'),(1002,'111111','李斯文',1,1,'13500000003','天津市和平区','1986-11-30 00:00:00','test1@163.cn','450323198611301234'),(1003,'123456','武松',1,3,'13500000004','上海卢湾区','1986-12-31 00:00:00','test1@163.cn','450323198612314234'),(1004,'123456','张三',1,4,'13500000005','北京市通州','1989-12-31 00:00:00','test1@163.cn','450323198612311244'),(1005,'123456','张秋丽 ',2,1,'13500000006','广西桂林市灵川','1986-12-31 00:00:00','test1@163.cn','450323198612311214'),(1006,'123456','肖梅',2,4,'13500000007','地址不详','1986-12-31 00:00:00','test1@163.cn','450323198612311134'),(1007,'111111','欧阳峻峰',1,1,'13500000008','北京东城区','1986-12-31 00:00:00','test1@163.cn','450323198612311133'),(1008,'111111','梅超风',1,1,'13500000009','河南洛阳','1986-12-31 00:00:00','test1@163.cn','450323198612311221'),(1009,'123456','刘毅',1,2,'13500000011','安徽','1986-12-31 00:00:00','test1@163.cn','450323198612311231'),(1010,'111111','大凡',1,1,'13500000012','河南洛阳','1986-12-31 00:00:00','test1@163.cn','450323198612311044'),(1011,'111111','奥丹斯',1,1,'13500000013','北京海淀区中关村大街*号','1984-12-31 00:00:00','test1@163.cn','450323198412311234'),(1012,'123456','多伦',2,3,'13500000014','广西南宁中央大街','1986-12-31 00:00:00','test1@163.cn','450323198612311334'),(1013,'123456','李梅',2,1,'13500000015','上海卢湾区','1986-12-31 00:00:00','test1@163.cn','450323198612311534'),(1014,'123456','张得',2,4,'13500000016','北京海淀区中关村大街*号','1986-12-31 00:00:00','test1@163.cn','450323198612311264'),(1015,'123456','李东方',1,4,'13500000017','广西桂林市灵川','1976-12-31 00:00:00','test1@163.cn','450323197612311234'),(1016,'111111','刘奋斗',1,1,'13500000018','上海卢湾区','1986-12-31 00:00:00','test1@163.cn','450323198612311251'),(1017,'123456','可可',2,3,'13500000019','北京长安街1号','1981-09-10 00:00:00','test1@163.cn','450323198109108311'),(10066,'','Tom',1,1,'13500000000','','0000-00-00 00:00:00','email@22.com','33123123123123123'); DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `StudentNo` INT(4) NOT NULL COMMENT '学号', `LoginPwd` VARCHAR(20) DEFAULT NULL, `StudentName` VARCHAR(20) DEFAULT NULL COMMENT '学生姓名', `Sex` TINYINT(1) DEFAULT NULL COMMENT '性别,取值0或1', `GradeId` INT(11) DEFAULT NULL COMMENT '年级编号', `Phone` VARCHAR(50) NOT NULL COMMENT '联系电话,允许为空,即可选输入', `Address` VARCHAR(255) NOT NULL COMMENT '地址,允许为空,即可选输入', `BornDate` DATETIME DEFAULT NULL COMMENT '出生时间', `Email` VARCHAR(50) NOT NULL COMMENT '邮箱账号,允许为空,即可选输入', `IdentityCard` VARCHAR(18) DEFAULT NULL COMMENT '身份证号', PRIMARY KEY (`StudentNo`), UNIQUE KEY `IdentityCard` (`IdentityCard`), KEY `Email` (`Email`) ) ENGINE=MYISAM DEFAULT CHARSET=utf8; INSERT INTO `student`(`StudentNo`,`LoginPwd`,`StudentName`,`Sex`,`GradeId`,`Phone`,`Address`,`BornDate`,`Email`,`IdentityCard`) VALUES (1000,'111111','郭靖',1,1,'13500000001','北京海淀区中关村大街1号','1986-12-11 00:00:00','test1@bdqn.cn','450323198612111234'),(1001,'123456','李文才',1,2,'13500000002','河南洛阳','1981-12-31 00:00:00','test1@bdqn.cn','450323198112311234'),(1002,'111111','李斯文',1,1,'13500000003','天津市和平区','1986-11-30 00:00:00','test1@bdqn.cn','450323198611301234'),(1003,'123456','武松',1,3,'13500000004','上海卢湾区','1986-12-31 00:00:00','test1@bdqn.cn','450323198612314234'),(1004,'123456','张三',1,4,'13500000005','北京市通州','1989-12-31 00:00:00','test1@bdqn.cn','450323198612311244'),(1005,'123456','张秋丽 ',2,1,'13500000006','广西桂林市灵川','1986-12-31 00:00:00','test1@bdqn.cn','450323198612311214'),(1006,'123456','肖梅',2,4,'13500000007','地址不详','1986-12-31 00:00:00','test1@bdqn.cn','450323198612311134'),(1007,'111111','欧阳峻峰',1,1,'13500000008','北京东城区','1986-12-31 00:00:00','test1@bdqn.cn','450323198612311133'),(1008,'111111','梅超风',1,1,'13500000009','河南洛阳','1986-12-31 00:00:00','test1@bdqn.cn','450323198612311221'),(1009,'123456','刘毅',1,2,'13500000011','安徽','1986-12-31 00:00:00','test1@bdqn.cn','450323198612311231'),(1010,'111111','大凡',1,1,'13500000012','河南洛阳','1986-12-31 00:00:00','test1@bdqn.cn','450323198612311044'),(1011,'111111','奥丹斯',1,1,'13500000013','北京海淀区中关村大街*号','1984-12-31 00:00:00','test1@bdqn.cn','450323198412311234'),(1012,'123456','多伦',2,3,'13500000014','广西南宁中央大街','1986-12-31 00:00:00','test1@bdqn.cn','450323198612311334'),(1013,'123456','李梅',2,1,'13500000015','上海卢湾区','1986-12-31 00:00:00','test1@bdqn.cn','450323198612311534'),(1014,'123456','张得',2,4,'13500000016','北京海淀区中关村大街*号','1986-12-31 00:00:00','test1@bdqn.cn','450323198612311264'),(1015,'123456','李东方',1,4,'13500000017','广西桂林市灵川','1976-12-31 00:00:00','test1@bdqn.cn','450323197612311234'),(1016,'111111','刘奋斗',1,1,'13500000018','上海卢湾区','1986-12-31 00:00:00','test1@bdqn.cn','450323198612311251'),(1017,'123456','可可',2,3,'13500000019','北京长安街1号','1981-09-10 00:00:00','test1@bdqn.cn','450323198109108311'),(10066,'','Tom',1,1,'13500000000','','0000-00-00 00:00:00','email@22.com','33123123123123123'); DROP TABLE IF EXISTS `subject`; CREATE TABLE `subject` ( `SubjectNo` INT(11) NOT NULL AUTO_INCREMENT COMMENT '课程编号', `SubjectName` VARCHAR(50) DEFAULT NULL COMMENT '课程名称', `ClassHour` INT(4) DEFAULT NULL COMMENT '学时', `GradeID` INT(4) DEFAULT NULL COMMENT '年级编号', PRIMARY KEY (`SubjectNo`) ) ENGINE=INNODB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8; INSERT INTO `subject`(`SubjectNo`,`SubjectName`,`ClassHour`,`GradeID`) VALUES (1,'高等数学-1',110,1),(2,'高等数学-2',110,2),(3,'高等数学-3',100,3),(4,'高等数学-4',130,4),(5,'C语言-1',110,1),(6,'C语言-2',110,2),(7,'C语言-3',100,3),(8,'C语言-4',130,4),(9,'JAVA第一学年',110,1),(10,'JAVA第二学年',110,2),(11,'JAVA第三学年',100,3),(12,'JAVA第四学年',130,4),(13,'数据库结构-1',110,1),(14,'数据库结构-2',110,2),(15,'数据库结构-3',100,3),(16,'数据库结构-4',130,4),(17,'C#基础',130,1);
#select concat('学生:',studentname) 学生姓名 ,concat('+86',phone) 电话 from student; # select count(studnetno) 学生总数 from student; #DISTINCT关键字作用:去掉SELECT查询返回的记录结果中重复的记录(所有返回列 的值都相同),只返回一条 语法: SELECT DISTINCT 字段名1,字段名2... FROM 表名 #注意:ALL 关键字是默认的,返回所有的记录,与之相反 #DISTINCT关键字的使用 #查询成绩表中的所包含的课程ID SELECT DISTINCT SubjectNo FROM result; #BETWEEN AND查询 SELECT * FROM SUBJECT WHERE ClassHour BETWEEN 110 AND 120; #等同于: SELECT * FROM SUBJECT WHERE ClassHour >= 110 AND ClassHour <=120; #查询课程名称、总课时及每天10课时计算的天数 SELECT SubjectName AS "课程名称", ClassHour AS "总课时", (ClassHour/10) AS "均课时/天" FROM SUBJECT; #查询包含“数学”的所有课程 SELECT * FROM SUBJECT WHERE SubjectName LIKE "%数学%"; #查询所有姓名为“李**”三个字的学生信息 SELECT StudentNo,StudentName FROM student WHERE StudentName LIKE "李__"; #案例 查找地址不为空的学生信息 SELECT * FROM student WHERE Address IS NOT NUL #内连接 左连接 右链接 SELECT s.studentno,s.studentname,g.Gradename FROM student s INNER JOIN `grade` g ON g.gradeid=s.GradeID; SELECT s.studentno,s.studentname,g.Gradename FROM student s LEFT JOIN `grade` g ON g.gradeid=s.GradeID; SELECT s.studentno,s.studentname,g.Gradename FROM student s RIGHT JOIN `grade` g ON g.gradeid=s.GradeID; #使用IN进行范围查询 SELECT * FROM SUBJECT WHERE ClassHour = 100 OR ClassHour =110 OR ClassHour = 120; #普通组处理方式 SELECT * FROM SUBJECT WHERE ClassHour IN ( 100, 110,120 );#使用IN进行查询方式,更为简洁,效率更高 #子查询 in SELECT studentno,studentname FROM student WHERE StudentNo IN (SELECT studentno FROM result WHERE subjectno=(SELECT subjectno FROM `subject` WHERE subjectname='高等数学-2' ) AND StudentResult>=80 ) ; #常用统计函数 #COUNT(),MAX(),MIN(),AVG(),SUM SELECT COUNT(StudentResult) AS "成绩总个数", MAX(StudentResult) AS "最高分" , MIN(StudentResult) AS "最低分" , AVG(StudentResult) AS "平均分" FROM result; #按照不同的课程,分别算出其平均分、最高分和最低分,对于低于60分平均分的不予显示 SELECT s.SubjectName AS "课程名",MAX(StudentResult) AS "最高分" , MIN(StudentResult) AS "最低分" , AVG(StudentResult) AS "平均分" FROM result AS r LEFT JOIN `subject` AS s ON s.SubjectNo = r.SubjectNo GROUP BY r.SubjectNo HAVING AVG(StudentResult) >= 60 ; # ORDER BY 排序 SELECT studentresult FROM result r WHERE r.subjectno IN(SELECT subjectno FROM `subject` WHERE subjectname="数据库结构-1" ) ORDER BY studentresult DESC ; #默认ASC #查询所有课程《数据库结构-2》的考试成绩,并按照由高到低的显示,同时把该成绩对应的学生的学号、姓名打印出来 #要求: #第一次查询前10条记录 #第二次查询11-20条记录 SELECT s.studentno,s.studentname,c.subjectname,r.studentresult FROM student s JOIN result r ON s.StudentNo=r.StudentNo JOIN SUBJECT c ON r.SubjectNo=c.SubjectNo WHERE c.subjectname="数据库结构-2" ORDER BY r.StudentResult DESC LIMIT 0,5; #limit 5,5 #要求:从subject和grade数据表查询课程名称和所属年级 名称 #非等值连接查询 SELECT SubjectName,GradeName FROM SUBJECT,grade; #等值查询 SELECT SubjectName,GradeName FROM SUBJECT,grade WHERE subject.GradeID= grade.GradeID; .GradeID;
举例:MySQL 使用DQL命令查询数据相关推荐
- 使用DQL命令查询数据(二)
使用DQL命令查询数据(二) SELECT语法 SELECT [ALL | DISTINCT] { * | table.* | [ table.field1 [ as alias1] [,table. ...
- 使用DQL命令查询数据(一)
使用DQL命令查询数据(一) DQL语言 指定查询字段 查询表中所有的数据列结果,采用"*"符号 可指定查询的结果数据列 AS子句 DISTINCT关键字的使用 使用表达式的列 在 ...
- 使用DQL命令查询数据(总篇1~3)
目录 DQL语言 什么是查询 010 司马坡 新疆喀什 S201 SELECT语法 SELECT应用案例 WHERE条件 逻辑运算符 比较运算符 NULL空值条件查询 BETWEEN AND范围查询 ...
- 使用DQL命令查询数据一
一,概念: DQL(Data Query Language 数据查询语言):用于查询数据库对象中所包含的数据. DQL语言主要的语句:SELECT语句. DQL语言是数据库语言中最核心.最重要的语句, ...
- php mysql 查询数据出现连接重置_php使用mysql和mysqli连接查询数据
mysqli: $code = $_POST['code']; $status = ""; $success = ""; $scookies = "& ...
- mysql 随机update_MySQL随机查询数据与随机更新数据
以下的文章主要讲述的是MySQL随机查询数据.MySQL随机更新数据的实际应用以及对MySQL随机查询数据.MySQL随机更新数据的实际应用代码的描述,以下就是文章的主要内容描述,望你会有所收获. M ...
- mysql 查看 dml_MySQL 命令查询过程及DML常用命令
一,查询过程: 当mysql客户端向服务端发情查询请求以及服务器响应客户端的查询请求过程当中,数据通过mysql协议经过了一些列的转变,首先Mysql服务端通过mysql协议收到客户端请求,服务器首先 ...
- mysql联合索引数据库查询数据会变慢_如何定位并优化慢查询SQL以及联合索引和索引多的弊端...
以下思路均以Mysql为例,不过SQL调优通用的 根据慢日志定位慢查询SQL: 使用show variables like '%quer%';主要查看slow_query_log,slow_query ...
- MySQL之DQL(查询)语句
执行顺序 ⑤SELECT 查询列表 ①FROM 表名 ②WHERE 条件(> < = <> >= <= and or not like `between and` ...
最新文章
- 你需要掌握的三种编程语言
- threejs模型可视化编辑器_一个近乎无门槛、零基础的3D场景编辑器
- python做的项目管理软件_幽雅的使用Python之软件管理
- curl http header_PHP如何解析header头部信息
- OS- -I/O之盘和时钟
- Kali-Linux-2019.04虚拟机与物理机实现复制粘贴功能
- C语言形参和实参的区别
- d-link路由器samba设置_d-link云路由器怎么设置 d-link云路由器设置教程【详解】
- 电脑显示苹果5s未连接服务器怎么办啊,iphone5s数据线连接不上电脑怎么办【解决方法】...
- 给前端开发人员上几道菜~
- Nginx + Tomcat + HTTPS 配置不需要在 Tomcat 上启用 SSL 支持
- 自学-Linux-老男孩Linux77期-day5
- 利用python实现杜利特尔分解法
- blast2go本地安装,一个防火墙设置引发的血案
- vue2.x进阶知识点总结
- linux-CentOS-rpm、yum、源码安装
- excel多窗口分屏并列显示
- gentoo的USE参数详细说明
- python 管理 交换机_用python 脚本控制telnet登录交换机
- LDPC译码原理(公式推导)及其matlab代码实现(超详细)
热门文章
- 我的杂谈之学习陈氏太极拳精要18势
- [jzoj 5353] 村通网 {kruskal算法}
- rj45插座尺寸图_RJ45网络插座的基本知识
- 中国外交部和中国驻英国使、领馆联系办法
- 读《品人录》——雍正
- Unity3D 插件 Mesh To Terrain的使用方法
- 关于《管理:技艺之精髓》一书中提到的管理任务和工具
- 【docker专栏5】详解docker镜像管理命令
- 关于Caused by: com.alibaba.fastjson.JSONException: syntax error, expect }, actual ,
- 每日一记 - 3.7