连接查询
-- 查询课程名称 和年级的名称
-- 非等值连接查询
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的更多相关文章

  1. Java就业班 mysql02

    今日任务 完成对MYSQL数据库的多表查询及建表的操作 教学目标 掌握MYSQL中多表的创建及多表的查询 掌握MYSQL中的表关系分析并能正确建表 昨天内容回顾: ​ 数据库的创建 : create ...

  2. springboot07 mysql02

    多表关系 一.表关系介绍 1. 表之间为什么要有关系 一般来讲,通常都是一张表某一类型数据,比如学生数据存储在学生表,教师数据存储在教师表,学科数据存储在学科表.但是有时候我们需要表示一个学生属于哪一 ...

  3. MySQL-02 数据表管理

    学习要点 数据类型 数据字段属性 数据表的类型及存储位置 索引 数据表对象管理 数据类型 数据库中的数据类型分为字段类型和值类型,定义如下: 在设计数据表字段的时候,字段类型定义为三大类:数值类.字符 ...

  4. 极客mysql02

    mysql 一条更新语句的执行过程: 1.首先客户端通过tcp/ip发送一条sql语句到server层的SQL interface 2.SQL interface接到该请求后,先对该条语句进行解析,验 ...

  5. XtraBackup原理5

    http://www.cnblogs.com/gomysql/p/3650645.html xtrabackup是Percona公司CTO Vadim参与开发的一款基于InnoDB的在线热备工具,具有 ...

  6. mysql oracle静默 一键安装脚本

    pre-read; 为了达到一键搞定的目的!现Ruiy简单做如下几小条规定   如果你想这么一键来搞定请君莫要违背约束! 1. 下载 `二进制` mysql软件介质版本不限,二进制包务必,源码及rpm ...

  7. 实战:mysql版本号升级

    /***************************************************** mysql 5.6.19 升级到5.6.21 ********************** ...

  8. Innobackupex全备恢复(原理、演示)

    一.  Innobackupex恢复原理    After creating a backup, the data is not ready to be restored. There might b ...

  9. mysql之 innobackupex备份+binlog日志的完全恢复(命令行执行模式)

    前言:MySQL的完全恢复,我们可以借助于完整的 备份+binlog 来将数据库恢复到故障点.备份可以是热备与逻辑备份(mysqldump),只要备份与binlog是完整的,都可以实现完全恢复. 1. ...

随机推荐

  1. Windows环境下 配置memcached (php)

    memcached就不用介绍了-- 1:在Windows下安装memcached服务端软件,已经下载并上传云盘  ---传送门 记得带钥匙:ykrc 解压缩后里面的安装说明内有安装教程. 2:软件安装 ...

  2. shell脚本中的括号和实例

    1.单圆括号和双圆括号 “双圆括号”命令允许将高级的数学表达式放入比较中.格式如下: (( expression )) 除了 test命令(if-then [])使用的标准数学运算符外, 双圆括号还支 ...

  3. About Technology Research

    做了大量的了解(research).尝试(experimental).探索(exploration).摸索(groping); 解决方案的选择时,要做前期的调研和Demo尝试. 对各方面的技术都做了一 ...

  4. windows下bat批处理实现守护进程(有日志)

    开发部的一个核心程序总是会自己宕机,然后需要手工去起,而这个服务的安全级别又很高,只有我可以操作,搞得我晚上老没法睡,昨晚实在受不了了,想起以前在hp-ux下写的shell守护进程,这回搞个windo ...

  5. android 多线程断点续传下载

    今天跟大家一起分享下Android开发中比较难的一个环节,可能很多人看到这个标题就会感觉头很大,的确如果没有良好的编码能力和逻辑思维,这块是很难搞明白的,前面2次总结中已经为大家分享过有关技术的一些基 ...

  6. filter高级应用

    Filter高级应用: Decorator模式  1)包装类需要和被包装对象 实现相同接口,或者继承相同父类 2)包装类需要持有 被包装对象的引用   在包装类中定义成员变量,通过包装类构造方法,传入 ...

  7. COJ 1006 树上操作

    传送门:http://oj.cnuschool.org.cn/oj/home/problem.htm?problemID=979 WZJ的数据结构(六) 难度级别:D: 运行时间限制:1000ms: ...

  8. (转载)PHP使用header函数设置HTTP头的示例方法表头

    (转载)http://justcoding.iteye.com/blog/601117/ 代码: //定义编码 header( 'Content-Type:text/html;charset=utf- ...

  9. HDOJ 1019 Least Common Multiple(最小公倍数问题)

    Problem Description The least common multiple (LCM) of a set of positive integers is the smallest po ...

  10. HDU_1401——同步双向BFS,八进制位运算压缩,map存放hash

    这个速度比分步快一点,内存占的稍微多一点 Problem Description Solitaire is a game played on a chessboard 8x8. The rows an ...