mysql02
连接查询
-- 查询课程名称 和年级的名称
-- 非等值连接查询
SELECT subjectname,gradeName FROM `subject`,grade
-- 等值连接查询
SELECT subjectname,gradeName
FROM `subject`,grade
WHERE subject.gradeId=grade.`GradeID` -- 外连接 左外连接 以左表为准,右表中没有数据 返回null
-- 查询课程名称,课时数还有年级名称
SELECT subjectname,gradeName,classHour
FROM `subject` s LEFT JOIN grade g
ON s.gradeId=g.`GradeID` -- 外连接 右外连接 以右表为准,左表中没有数据 返回null
SELECT subjectname,gradeName,classHour
FROM `subject` s RIGHT JOIN grade g
ON s.gradeId=g.`GradeID` -- 自身连接查询
CREATE TABLE IF NOT EXISTS teacher(
id INT(10), -- 老师自身的编号
`name` VARCHAR(20),
pid INT(10) -- 老师对应的导师编号
) -- 新增教师信息
INSERT INTO teacher
VALUES
(1,'老师1',5),
(2,'老师2',5),
(3,'老师3',5),
(4,'老师4',3),
(5,'老师5',3) -- 查询老师 和对应导师的姓名
SELECT t1.`name` AS '老师姓名', t2.`name` AS '导师姓名'
FROM teacher t1,teacher t2
WHERE t2.id=t1.pid
order by
-- 查询 课程名称是 数据库结构-1 的所有考试成绩和学生的姓名 并且按照成绩降序进行查看
-- order by 排序 默认是升序 asc desc 降序
SELECT subjectName,StudentResult,studentName
FROM `subject`,result,student
WHERE
student.`StudentNo`=result.`StudentNo`
AND
result.`SubjectNo`=subject.`SubjectNo`
AND
subjectName='数据库结构-1'
ORDER BY StudentResult DESC
limit
-- 查询 课程名称是 数据库结构-1 的所有考试成绩和学生的姓名 并且按照成绩降序进行查看
-- order by 排序 默认是升序 asc desc 降序
-- 分页 使用 limit begin,pageSize
-- begin 从那一条数据开始 (当前页码-1)*pageSize
-- pageSize 每页显示的数量
SELECT subjectName,StudentResult,studentName
FROM `subject`,result,student
WHERE
student.`StudentNo`=result.`StudentNo`
AND
result.`SubjectNo`=subject.`SubjectNo`
AND
subjectName='数据库结构-1'
ORDER BY StudentResult DESC
LIMIT 10,5
子查询
-- 子查询 把自身的查询结果 当作 另一条查询语句的条件来使用
-- 查询 课程名称是 数据库结构-1 并且分数不小于80分的学生姓名和学号
SELECT studentName,studentNo
FROM student
WHERE studentNo IN
(SELECT studentNo
FROM result
WHERE
subjectno=(SELECT subjectno FROM SUBJECT WHERE subjectName='数据库结构-1')
AND StudentResult>=80
)
统计函数
-- 统计函数
-- count() sum() avg() min() max()
SELECT
COUNT(*) AS 总记录数,
MAX(studentResult) AS 最高分,
MIN(studentResult) AS 最低分,
AVG(studentResult) AS 平均分,
SUM(studentResult) AS 总成绩
FROM result
-- 执行顺序
FROM 表
WHERE 条件
GROUP BY 分组(列)
HAVING 分组的条件
SELECT 查询的内容
ORDER BY
小练习:
有个tb表
字段如下

要求实现的效果

实现代码
SELECT sex AS 性别,COUNT(sex) AS 人数
FROM tb
WHERE sex IS NOT NULL
GROUP BY sex
ORDER BY COUNT(sex) DESC SELECT sex AS 性别,COUNT(sex) AS 人数
FROM tb
WHERE sex IN('男','女')
GROUP BY sex
ORDER BY COUNT(sex) DESC
-- 查询 mysql默认的事务隔离级别
SELECT @@tx_isolation
-- 改变事务隔离级别
SET tx_isolation='Read-committed' -- 开启事务
START TRANSACTION -- 回滚 rollback -- 提交 commit
mysql02的更多相关文章
- Java就业班 mysql02
今日任务 完成对MYSQL数据库的多表查询及建表的操作 教学目标 掌握MYSQL中多表的创建及多表的查询 掌握MYSQL中的表关系分析并能正确建表 昨天内容回顾: 数据库的创建 : create ...
- springboot07 mysql02
多表关系 一.表关系介绍 1. 表之间为什么要有关系 一般来讲,通常都是一张表某一类型数据,比如学生数据存储在学生表,教师数据存储在教师表,学科数据存储在学科表.但是有时候我们需要表示一个学生属于哪一 ...
- MySQL-02 数据表管理
学习要点 数据类型 数据字段属性 数据表的类型及存储位置 索引 数据表对象管理 数据类型 数据库中的数据类型分为字段类型和值类型,定义如下: 在设计数据表字段的时候,字段类型定义为三大类:数值类.字符 ...
- 极客mysql02
mysql 一条更新语句的执行过程: 1.首先客户端通过tcp/ip发送一条sql语句到server层的SQL interface 2.SQL interface接到该请求后,先对该条语句进行解析,验 ...
- XtraBackup原理5
http://www.cnblogs.com/gomysql/p/3650645.html xtrabackup是Percona公司CTO Vadim参与开发的一款基于InnoDB的在线热备工具,具有 ...
- mysql oracle静默 一键安装脚本
pre-read; 为了达到一键搞定的目的!现Ruiy简单做如下几小条规定 如果你想这么一键来搞定请君莫要违背约束! 1. 下载 `二进制` mysql软件介质版本不限,二进制包务必,源码及rpm ...
- 实战:mysql版本号升级
/***************************************************** mysql 5.6.19 升级到5.6.21 ********************** ...
- Innobackupex全备恢复(原理、演示)
一. Innobackupex恢复原理 After creating a backup, the data is not ready to be restored. There might b ...
- mysql之 innobackupex备份+binlog日志的完全恢复(命令行执行模式)
前言:MySQL的完全恢复,我们可以借助于完整的 备份+binlog 来将数据库恢复到故障点.备份可以是热备与逻辑备份(mysqldump),只要备份与binlog是完整的,都可以实现完全恢复. 1. ...
随机推荐
- [LeetCode OJ] Max Points on a Line—Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.
//定义二维平面上的点struct Point { int x; int y; Point(, ):x(a),y(b){} }; bool operator==(const Point& le ...
- C++对象数组操作误区
由于语义上的需要导致语法的上缺陷,所以导致对象数组在C++中存在陷阱. C++语境:一个基类指针或引用是可以指向派生类对象的,以此可来表现C++对运行时多态的需求: 创建一个对象数组将返回首元素的首地 ...
- underscorejs-reduceRight学习
2.4 reduceRight 2.4.1 语法: _.reduceRight(list, iteratee, memo, [context]) 2.3.2 说明: reduceRight和reduc ...
- 利用Warensoft Stock Service编写高频交易软件
利用Warensoft Stock Service编写高频交易软件 无论是哪种交易软件,对于程序员来讲,最麻烦的就是去实现各种算法.本文以SAR算法的实现过程为例,为大家说明如何使用Warensoft ...
- 《asp.net mvc3 高级编程》第二章 控制器
一.控制器的角色 MVC模式中的控制器(Controller)主要负责响应用户的输入,并且在响应时通常会修改模型(Model).通过这种方式,MVC模式中的控制器主要关注的是应用程序流,输入数据的处理 ...
- linux 路由表设置 之 route 指令详解
使用下面的 route 命令可以查看 Linux 内核路由表. # route Destination Gateway Genmask Flags Metric Ref ...
- Retrofit2.0+OkHttp设置统一的请求头(request headers)
有时候要求Retrofit2的接口中每个都要增加上headers,又不想做重复的事情,可以使用这种方法来为每个request请求都设置上相同的请求头header. 修改请求头request heade ...
- 静态long类型常量serialVersionUID的作用
需要序列化的类需要实现Serializable接口,该接口没有任何方法,只是标示该类对象可被序列化. 序列化过程:使用一个输出流(如:FileOutputStream)来构造一个ObjectOutpu ...
- 桌面小部件----LED电子时钟实现
桌面控件是通过 Broadcast 的形式来进行控制的,因此每个桌面控件都对应于一个BroadcastReceiver.为了简化桌面控件的开发,Android 系统提供了一个 AppWidgetPro ...
- Shared and Exclusive Locks 共享和排它锁
14.5 InnoDB Locking and Transaction Model InnoDB 锁和事务模型 14.5.1 InnoDB Locking 14.5.2 InnoDB Transact ...