MySQL学习记录04where条件子句、联表查询、子查询
文章目录
- MySQL学习记录04where条件子句、联表查询、子查询
- 4.1DQL
- 4.2指定查询字段
- 4.3where条件子句
- 4.4联表查询
- 4.5分页和排序
- 4.6子查询
MySQL学习记录04where条件子句、联表查询、子查询
4.1DQL
Data Query Language:数据查询语言
- 所有的查询操作都用它
- 简单的查询和复杂的查询都能做
- 数据库中最核心的语言,最重要的语句
- 使用频率最高的语句
4.2指定查询字段
数据库school建立sql文件:
/*
SQLyog Enterprise v12.08 (64 bit)
MySQL - 5.7.37 : Database - school
*********************************************************************
*//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`school` /*!40100 DEFAULT CHARACTER SET latin1 */;USE `school`;/*Table structure for table `grade` */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;/*Data for the table `grade` */insert into `grade`(`gradeid`,`gradename`) values (1,'大一'),(2,'大二'),(3,'大三'),(4,'大四'),(5,'预科班');/*Table structure for table `result` */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;/*Data for the table `result` */insert into `result`(`studentno`,`subjectno`,`examdate`,`studentresult`) values (1000,1,'2013-11-11 16:00:00',85),(1000,2,'2013-11-12 16:00:00',70),(1000,3,'2013-11-11 09:00:00',68),(1000,4,'2013-11-13 16:00:00',98),(1000,5,'2013-11-14 16:00:00',58),(1000,6,'2013-11-14 16:00:00',66),(1000,7,'2013-11-14 16:00:00',97),(1000,8,'2013-11-14 16:00:00',87),(1000,9,'2013-11-14 16:00:00',60),(1000,10,'2013-11-14 16:00:00',68),(1000,11,'2013-11-14 16:00:00',87),(1000,12,'2013-11-14 16:00:00',86),(1000,13,'2013-11-14 16:00:00',78),(1000,14,'2013-11-14 16:00:00',88),(1000,15,'2013-11-14 16:00:00',79),(1000,16,'2013-11-14 16:00:00',67),(1001,1,'2013-11-11 16:00:00',85),(1001,2,'2013-11-12 16:00:00',70),(1001,3,'2013-11-11 09:00:00',68),(1001,4,'2013-11-13 16:00:00',98),(1001,5,'2013-11-14 16:00:00',76),(1001,6,'2013-11-14 16:00:00',66),(1001,7,'2013-11-14 16:00:00',87),(1001,8,'2013-11-14 16:00:00',87),(1001,9,'2013-11-14 16:00:00',80),(1001,10,'2013-11-14 16:00:00',65),(1001,11,'2013-11-14 16:00:00',77),(1001,12,'2013-11-14 16:00:00',86),(1001,13,'2013-11-14 16:00:00',98),(1001,14,'2013-11-14 16:00:00',68),(1001,15,'2013-11-14 16:00:00',69),(1001,16,'2013-11-14 16:00:00',77),(1002,1,'2013-11-11 16:00:00',85),(1002,2,'2013-11-12 16:00:00',90),(1002,3,'2013-11-11 09:00:00',78),(1002,4,'2013-11-13 16:00:00',98),(1002,5,'2013-11-14 16:00:00',76),(1002,6,'2013-11-14 16:00:00',76),(1002,7,'2013-11-14 16:00:00',87),(1002,8,'2013-11-14 16:00:00',57),(1002,9,'2013-11-14 16:00:00',80),(1002,10,'2013-11-14 16:00:00',95),(1002,11,'2013-11-14 16:00:00',67),(1002,12,'2013-11-14 16:00:00',66),(1002,13,'2013-11-14 16:00:00',68),(1002,14,'2013-11-14 16:00:00',90),(1002,15,'2013-11-14 16:00:00',79),(1002,16,'2013-11-14 16:00:00',67),(1003,1,'2013-11-11 16:00:00',83),(1003,2,'2013-11-12 16:00:00',90),(1003,3,'2013-11-11 09:00:00',70),(1003,4,'2013-11-13 16:00:00',98),(1003,5,'2013-11-14 16:00:00',74),(1003,6,'2013-11-14 16:00:00',76),(1003,7,'2013-11-14 16:00:00',87),(1003,8,'2013-11-14 16:00:00',54),(1003,9,'2013-11-14 16:00:00',80),(1003,10,'2013-11-14 16:00:00',95),(1003,11,'2013-11-14 16:00:00',87),(1003,12,'2013-11-14 16:00:00',66),(1003,13,'2013-11-14 16:00:00',88),(1003,14,'2013-11-14 16:00:00',56),(1003,15,'2013-11-14 16:00:00',79),(1003,16,'2013-11-14 16:00:00',66),(1004,1,'2013-11-11 16:00:00',80),(1004,2,'2013-11-12 16:00:00',91),(1004,3,'2013-11-11 09:00:00',61),(1004,4,'2013-11-13 16:00:00',68),(1004,5,'2013-11-14 16:00:00',84),(1004,6,'2013-11-14 16:00:00',66),(1004,7,'2013-11-14 16:00:00',77),(1004,8,'2013-11-14 16:00:00',54),(1004,9,'2013-11-14 16:00:00',84),(1004,10,'2013-11-14 16:00:00',90),(1004,11,'2013-11-14 16:00:00',77),(1004,12,'2013-11-14 16:00:00',86),(1004,13,'2013-11-14 16:00:00',68),(1004,14,'2013-11-14 16:00:00',50),(1004,15,'2013-11-14 16:00:00',69),(1004,16,'2013-11-14 16:00:00',60),(1005,1,'2013-11-11 16:00:00',80),(1005,2,'2013-11-12 16:00:00',91),(1005,3,'2013-11-11 09:00:00',61),(1005,4,'2013-11-13 16:00:00',62),(1005,5,'2013-11-14 16:00:00',83),(1005,6,'2013-11-14 16:00:00',61),(1005,7,'2013-11-14 16:00:00',71),(1005,8,'2013-11-14 16:00:00',54),(1005,9,'2013-11-14 16:00:00',81),(1005,10,'2013-11-14 16:00:00',94),(1005,11,'2013-11-14 16:00:00',71),(1005,12,'2013-11-14 16:00:00',85),(1005,13,'2013-11-14 16:00:00',61),(1005,14,'2013-11-14 16:00:00',53),(1005,15,'2013-11-14 16:00:00',61),(1005,16,'2013-11-14 16:00:00',60),(1006,1,'2013-11-11 16:00:00',83),(1006,2,'2013-11-12 16:00:00',90),(1006,3,'2013-11-11 09:00:00',61),(1006,4,'2013-11-13 16:00:00',72),(1006,5,'2013-11-14 16:00:00',73),(1006,6,'2013-11-14 16:00:00',71),(1006,7,'2013-11-14 16:00:00',71),(1006,8,'2013-11-14 16:00:00',74),(1006,9,'2013-11-14 16:00:00',61),(1006,10,'2013-11-14 16:00:00',64),(1006,11,'2013-11-14 16:00:00',81),(1006,12,'2013-11-14 16:00:00',55),(1006,13,'2013-11-14 16:00:00',91),(1006,14,'2013-11-14 16:00:00',57),(1006,15,'2013-11-14 16:00:00',65),(1006,16,'2013-11-14 16:00:00',60),(1007,1,'2013-11-11 16:00:00',83),(1007,2,'2013-11-12 16:00:00',90),(1007,3,'2013-11-11 09:00:00',61),(1007,4,'2013-11-13 16:00:00',72),(1007,5,'2013-11-14 16:00:00',70),(1007,6,'2013-11-14 16:00:00',61),(1007,7,'2013-11-14 16:00:00',81),(1007,8,'2013-11-14 16:00:00',68),(1007,9,'2013-11-14 16:00:00',61),(1007,10,'2013-11-14 16:00:00',64),(1007,11,'2013-11-14 16:00:00',70),(1007,12,'2013-11-14 16:00:00',55),(1007,13,'2013-11-14 16:00:00',70),(1007,14,'2013-11-14 16:00:00',54),(1007,15,'2013-11-14 16:00:00',70),(1007,16,'2013-11-14 16:00:00',60),(1008,1,'2013-11-11 16:00:00',83),(1008,2,'2013-11-12 16:00:00',90),(1008,3,'2013-11-11 09:00:00',81),(1008,4,'2013-11-13 16:00:00',82),(1008,5,'2013-11-14 16:00:00',77),(1008,6,'2013-11-14 16:00:00',66),(1008,7,'2013-11-14 16:00:00',77),(1008,8,'2013-11-14 16:00:00',55),(1008,9,'2013-11-14 16:00:00',97),(1008,10,'2013-11-14 16:00:00',56),(1008,11,'2013-11-14 16:00:00',67),(1008,12,'2013-11-14 16:00:00',78),(1008,13,'2013-11-14 16:00:00',67),(1008,14,'2013-11-14 16:00:00',66),(1008,15,'2013-11-14 16:00:00',56),(1008,16,'2013-11-14 16:00:00',88),(1009,1,'2013-11-11 16:00:00',80),(1009,2,'2013-11-12 16:00:00',60),(1009,3,'2013-11-11 09:00:00',80),(1009,4,'2013-11-13 16:00:00',82),(1009,5,'2013-11-14 16:00:00',64),(1009,6,'2013-11-14 16:00:00',66),(1009,7,'2013-11-14 16:00:00',76),(1009,8,'2013-11-14 16:00:00',55),(1009,9,'2013-11-14 16:00:00',97),(1009,10,'2013-11-14 16:00:00',55),(1009,11,'2013-11-14 16:00:00',77),(1009,12,'2013-11-14 16:00:00',78),(1009,13,'2013-11-14 16:00:00',86),(1009,14,'2013-11-14 16:00:00',76),(1009,15,'2013-11-14 16:00:00',50),(1009,16,'2013-11-14 16:00:00',88),(1010,1,'2013-11-11 16:00:00',80),(1010,2,'2013-11-12 16:00:00',90),(1010,3,'2013-11-11 09:00:00',80),(1010,4,'2013-11-13 16:00:00',80),(1010,5,'2013-11-14 16:00:00',70),(1010,6,'2013-11-14 16:00:00',60),(1010,7,'2013-11-14 16:00:00',70),(1010,8,'2013-11-14 16:00:00',50),(1010,9,'2013-11-14 16:00:00',90),(1010,10,'2013-11-14 16:00:00',50),(1010,11,'2013-11-14 16:00:00',60),(1010,12,'2013-11-14 16:00:00',70),(1010,13,'2013-11-14 16:00:00',60),(1010,14,'2013-11-14 16:00:00',60),(1010,15,'2013-11-14 16:00:00',50),(1010,16,'2013-11-14 16:00:00',88),(1011,1,'2013-11-11 16:00:00',81),(1011,2,'2013-11-12 16:00:00',91),(1011,3,'2013-11-11 09:00:00',81),(1011,4,'2013-11-13 16:00:00',81),(1011,5,'2013-11-14 16:00:00',71),(1011,6,'2013-11-14 16:00:00',61),(1011,7,'2013-11-14 16:00:00',71),(1011,8,'2013-11-14 16:00:00',51),(1011,9,'2013-11-14 16:00:00',91),(1011,10,'2013-11-14 16:00:00',60),(1011,11,'2013-11-14 16:00:00',70),(1011,12,'2013-11-14 16:00:00',60),(1011,13,'2013-11-14 16:00:00',80),(1011,14,'2013-11-14 16:00:00',80),(1011,15,'2013-11-14 16:00:00',80),(1011,16,'2013-11-14 16:00:00',78),(1012,1,'2013-11-11 16:00:00',82),(1012,2,'2013-11-12 16:00:00',93),(1012,3,'2013-11-11 09:00:00',84),(1012,4,'2013-11-13 16:00:00',65),(1012,5,'2013-11-14 16:00:00',66),(1012,6,'2013-11-14 16:00:00',78),(1012,7,'2013-11-14 16:00:00',56),(1012,8,'2013-11-14 16:00:00',59),(1012,9,'2013-11-14 16:00:00',61),(1012,10,'2013-11-14 16:00:00',89),(1012,11,'2013-11-14 16:00:00',67),(1012,12,'2013-11-14 16:00:00',97),(1012,13,'2013-11-14 16:00:00',70),(1012,14,'2013-11-14 16:00:00',89),(1012,15,'2013-11-14 16:00:00',86),(1012,16,'2013-11-14 16:00:00',78);/*Table structure for table `student` */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;/*Data for the table `student` */insert into `student`(`studentno`,`loginpwd`,`studentname`,`sex`,`gradeid`,`phone`,`address`,`borndate`,`email`,`identitycard`) values (1000,'123456','张伟',0,2,'13800001234','北京朝阳','1980-01-01 00:00:00','text123@qq.com','123456198001011234'),(1001,'123456','赵强',1,3,'13800002222','广东深圳','1990-01-01 00:00:00','text111@qq.com','123456199001011233'),(1002,'111111','韩萌',1,1,'13500024565','北京东城区','1989-02-02 22:53:07','xxxx@qq.com','123456198902021234'),(1003,'123456','张三',0,2,'13800453434','北京朝阳','1980-01-01 00:00:00','text123@qq.com','123456198001011255'),(1004,'123456','李四',1,3,'13800552222','广东佛山','1990-01-01 00:00:00','text12341@qq.com','123456199001011244'),(1005,'123456','刘洋',0,1,'13801223434','广西桂林','1981-01-01 00:00:00','text1266@qq.com','123456198101011255'),(1006,'123456','赵成',1,4,'13800389222','河南洛阳','1992-01-01 00:00:00','text1255541@qq.com','123456199201011244'),(1007,'123456','陈冕',0,3,'13811153434','北京朝阳','1983-01-01 00:00:00','text143@qq.com','123456198301011255'),(1008,'123456','刘杰',1,4,'13521153434','天津市和平区','1983-02-01 00:00:00','text143@qq.com','123456198302011255'),(1009,'123456','刘杰辉',1,2,'13811243434','北京朝阳','1980-02-01 00:00:00','text143@qq.com','123456198002011255'),(1010,'123456','牛恩来',1,3,'13822153434','北京朝阳','1983-03-01 00:00:00','text143@qq.com','123456198303011255'),(1011,'123456','陈茜',0,4,'13811152234','安徽','1981-02-01 00:00:00','text143@qq.com','123456198102011255'),(1012,'123456','马辉',1,3,'13800511122','上海','1994-01-01 00:00:00','text11341@qq.com','123456199401011244');/*Table structure for table `subject` */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=19 DEFAULT CHARSET=utf8;/*Data for the table `subject` */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程序设计-1',110,1),(10,'Java程序设计-2',110,2),(11,'Java程序设计-3',100,3),(12,'Java程序设计-4',130,4),(13,'数据库结构-1',110,1),(14,'数据库结构-2',110,2),(15,'数据库结构-3',100,3),(16,'数据库结构-4',130,4),(17,'C#基础',130,1);/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
1、查询全部学生
SELECT 字段 FROM 表
SELECT * FROM student
2、查询指定字段
SELECT `studentno`,`studentname` FROM student
给结果取列取别名
SELECT `studentno` AS 学号,`studentname` AS 学生姓名 FROM student
也可以给表取别名
3、拼接字符串 函数concat(a,b)
SELECT CONCAT('姓名:',studentname) AS 新名字 FROM student
4、去重
例,
查询全部考试成绩:
SELECT * FROM result
查询有哪些同学参加了考试:
SELECT `studentno` FROM result
但是有很多重复,需要去重:
SELECT DISTINCT `studentno` FROM result
DISTINCT作用:去除selest查询出来的结果中重复的数据
4.3where条件子句
作用:检索数据中符合条件的值
搜索的条件由一个或多个表达式组成,一般返回结果为布尔值
逻辑运算符
运算符 | 语法 | 描述 |
---|---|---|
and(&& )
|
a and b ,a &&b | 逻辑与,两个为真结果为真 |
or(|| )
|
a or b,a || b
|
逻辑或,其中一个为真则结果为真 |
not(! )
|
not a,!a | 逻辑非,真为假,假为真 |
例:
查询考试成绩
SELECT `studentno`,`studentresult` FROM result
查询考试成绩在95~100分之间:
SELECT `studentno`,`studentresult` FROM result
WHERE `studentresult`>=95 AND `studentresult`<100
模糊查询:比较运算符
符号 | 描述 |
---|---|
IS NULL | 为空 |
IS NOT NULL | 不为空 |
BETWEEN AND | 在两值之间 |
LIKE | 模糊匹配 |
IN | 在集合中 |
例:
查询刘姓学生
SELECT `studentno`,`studentname` FROM `student`
WHERE `studentname` LIKE '刘%';
查询刘姓、名字只有两个字的学生
SELECT `studentno`,`studentname` FROM `student`
WHERE `studentname` LIKE '刘_';
查询学号为1001、1002、1003的学生
SELECT `studentno`,`studentname` FROM `student`
WHERE `studentno` IN(1001,1002,1003);
注意:
IN 查的是具体的值,不能用“ IN (‘北京%’)”来查地址由“北京”开头的信息
4.4联表查询
1、JOIN对比
七种join理论:
例,查询参加了考试的学生,要求查询出学号、姓名、科目编号、分数信息
思路:
1.分析需求,分析查询的字段来自哪些表,(连接查询)
2.确定使用哪种连接查询
确定交叉点(这两个表中哪个数据是相同的)
判断的条件:学生表的中 studentno = 成绩表studentno
SELECT s.studentno,studentname ,subjectno,studentresult
FROM `student` AS s
INNER JOIN `result` AS r
WHERE s.`studentno` = r.`studentno`
或
SELECT s.studentno,studentname ,subjectno,studentresult
FROM `student` AS s
INNER JOIN `result` AS r
ON s.`studentno` = r.`studentno`
操作 | 描述 |
---|---|
inner join | 在两张表进行连接查询时,只保留两张表中完全匹配的结果集 |
eft join | 在两张表进行连接查询时,会返回左表所有的行,即使在右表中没有匹配的记录 |
right join | 在两张表进行连接查询时,会返回右表所有的行,即使在左表中没有匹配的记录 |
full join | 在两张表进行连接查询时,返回左表和右表中所有没有匹配的行 |
关于on和where的选择条件的区别:
on后面的是连接条件, 代表两个表建立关系所遵循的规则(连接查询)
where后面的可以看作是筛选条件,是对最终结果集进行过滤所遵循的规则(等值查询)
SELECT s.studentno, studentname , Subjectname, `studentResult`
FROM student s
RIGHT JOIN result r
ON r.studentNo = s.studentNo
INNER JOIN `subject` sub
ON r.subjectNo = sub.subjectNo
思路小结:
要查询哪些数据? select…
从哪几张表查? FROM 表 XXX Join 连接的表 on 交叉条件
若存在多表查询,慢慢来,先查询两张表然后再慢慢添加
2、自连接(了解)
自己的表和自己的表连接,核心:一张表拆为两张一样的表
CREATE TABLE `category`(`categoryid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主题id',`pid` INT(10) NOT NULL COMMENT '父id',`categoryname` VARCHAR(50) NOT NULL COMMENT '主题名字',
PRIMARY KEY (`categoryid`) ) ENGINE=INNODB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8; INSERT INTO `category` (`categoryid`, `pid`, `categoryname`)
VALUES ('2','1','信息技术'),
('3','1','软件开发'),
('5','1','美术设计'),
('4','3','数据库'),
('8','2','办公信息'),
('6','3','web开发'),
('7','5','ps技术');
父类
categoryid | categoryname |
---|---|
2 | 信息技术 |
3 | 软件开发 |
5 | 美术设计 |
子类
pid | categoryid | categoryname |
---|---|---|
3 | 4 | 数据库 |
2 | 8 | 办公信息 |
3 | 6 | web开发 |
5 | 7 | PS技术 |
查询父子信息:
SELECT a.`categoryname` AS '父栏目',b.`categoryname` AS '子栏目'
FROM `category` AS a,`category` AS b
WHERE a.`categoryid` = b.`pid`
4.5分页和排序
1、排序:
SELECT s.`studentNo`, `studentName`, `subjectName`, `studentResult`
FROM student s
INNER JOIN `result` r
ON s.studentNo = r .studentNo
INNER JOIN `subject` sub
ON r.`subjectNo` = sub. `subjectNo`
WHERE subjectName ='数据库结构-1'
ORDER BY `studentresult` ASC
ORDER BY 通过哪个字段排序,怎么排
升序 :ASC
降序 :DESC
2、分页:
LIMIT 起始值,页面的大小
SELECT s.`studentNo`, `studentName`, `subjectName`, `studentResult`
FROM student s
INNER JOIN `result` r
ON s.studentNo = r .studentNo
INNER JOIN `subject` sub
ON r.`subjectNo` = sub. `subjectNo`
WHERE subjectName ='数据库结构-1'
ORDER BY `studentresult` ASC
LIMIT 0,5
– 第一页 limit 0,5 (1-1)*5
– 第二页 limit 5,5 (2-1)5
– 第三页 limit 10,5 (3-1)5
– 第N页 limit 0,5 (n-1) pageSize,pageSize
– 【pageSize:页面大小】
– 【(n-1) pageSize:起始值】
– 【n :当前页 】
– 【数据总数/页面大小 = 总页数】
4.6子查询
例,查询 数据库结构-1 的所有考试结果(学号,科目编号,成绩),降序排序
方式一:连接查询
SELECT `studentNo`,r.`SubjectNo`, `studentResult`
FROM `result` r
INNER JOIN `subject` sub
ON r.subjectNo =sub.subjectNo
WHERE SubjectName = '数据库结构-1'
ORDER BY studentResult DESC
方式二:子查询
SELECT `studentNo`,`SubjectNo`, `studentResult`
FROM `result`
WHERE subjectno = (SELECT subjectno FROM `subject`WHERE SubjectName = '数据库结构-1'
)
ORDER BY studentResult DESC
本质是一个查询里嵌套另一个查询
例2,科目为 高等数学-2 且分数不小于80的学生的学号和姓名
法一:inner join
SELECT s.studentNo ,studentName
FROM student s
INNER JOIN result r
ON s.studentNo = r.studentNo
INNER JOIN `subject` sub
ON r.`SubjectNo` = sub.`SubjectNo`
WHERE `subjectName` = '高等数学-2' AND StudentResult>=80
法二:子查询
SELECT DISTINCT s.`studentNo`, `studentName`
FROM student s
INNER JOIN result r
ON r.studentNo =s.studentNo
WHERE `StudentResult` >=80 AND `SubjectNo`=(
SELECT subjectNo FROM `subject`
WHERE `subjectName` = '高等数学-2'
)
MySQL学习记录04where条件子句、联表查询、子查询相关推荐
- mySQL学习记录(局域网连接/基础查询/条件查询/常见函数/窗口函数/表连接/子查询/插修删建表)
一些基础概念 DB 数据库 存储数据的容器 DBMS 数据库管理系统 又称数据库软件.产品如mysql/oracle/db2/sqlserver SQL 结构化查询语言 是所有的DBMS都使用的一种D ...
- MySQL学习记录 (二) ----- SQL数据查询语句(DQL)
相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...
- MySQL学习总结(2) --- 数据表管理(增删改查)、使用DQL查询数据(SELECT)
MySQL学习总结(2) - 数据表管理(增删改查).使用DQL查询数据(SELECT) 1. 数据管理(增删改查) 数据库数据管理方法: a.通过SQLyog等管理工具管理数据库数据 b. 通过DM ...
- MySQL学习记录 (五) ----- 存储函数、存储过程和触发器
相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...
- MySQL学习记录 (四) ----- SQL数据管理语句(DML)
相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...
- Mysql学习记录(6)
Mysql学习记录(1) Mysql学习记录(2) Mysql学习记录(3) Mysql学习记录(4) Mysql学习记录(5) Day06 12.变量 12.1系统变量 12.1.1全局变量 12. ...
- MySQL学习记录 (三) ----- SQL数据定义语句(DDL)
相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...
- MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令
相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...
- 除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询...
执行sql语句: select * from ( select * from tab where ID>20 order by userID desc ) as a order by date ...
最新文章
- 泼点冷水,P2P借款限额是不是想的太美好?
- go get 失败 no go files in_Go 每日一库之 dig
- oracle常用sql命令
- 休眠日志:常见问题的提示和解决方案
- [家里蹲大学数学杂志]第041期中山大学数计学院 2008 级数学与应用数学专业《泛函分析》期末考试试题 A...
- 快速删除从CSDN复制的代码行前的数字的方法
- 一次清空所有数据方法
- C++ 推断进程是否存在
- android项目设计实验报告模板,Android实验报告模板_实验一.doc
- ThingJS图表整合
- 微软商店的iTunes备份文件路径正确修改方法(2022.3.25)
- 在线遥感影像与地图集数据下载搜集
- ubuntu无法清空回收站解决办法
- Springboot毕设项目咖啡馆管理系统4598u(java+VUE+Mybatis+Maven+Mysql)
- Shell替换数组元素之间的间隔符号
- 如何禁止Windows Defender自动扫描
- python怎么解压rar文件_Python解压 rar、zip、tar文件的方法
- 【2】基因功能注释之SwissProt和Interproscan
- Java 基础 | Java 中引用与指针的关系
- 华三(h3c)交换机操作命令详解vlan切换