连接查询
-- 查询课程名称 和年级的名称
-- 非等值连接查询
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. Cloud Foundry中 JasperReports service集成

    Cloud Foundry作为业界第一个开源的PaaS解决方案,正越来越多的被业界接受和认可.随着PaaS的发展,Cloud Foundry顺应潮流,充分发挥开源项目的特点,到目前为止,已经支持了大批 ...

  2. CMake----if与option使用小记

    在CMake中if语法比较简单,if后面括号中的参数随着CMake版本的推进,在else和endif中也可以不用写了. if(address) else() endif() 对于if语法,比较常用的就 ...

  3. gdb调试带参数程序(转:笑笑小白,cnblog http://www.cnblogs.com/rosesmall/archive/2012/04/10/2440514.html)

    一般来说GDB主要调试的是C/C++的程序.要调试C/C++的程序,首先在编译时,我们必须要 把调试信息加到可执行文件中.使用编译 器(cc/gcc/g++)的 -g 参数可以做到这一点.如: > ...

  4. nodejs读取本地txt文件并输出到浏览器

    var fs = require('fs'); var chrome=""; //同步执行 function tongbu(){ var data =fs.readFileSync ...

  5. PHP 设计模式之观察者模式 (转载)

    介绍      现在有两派,有的人建议使用设计模式,有的人不建议使用设计模式!这就向写文章一样,有的人喜欢文章按照套路走,比如叙事性质的文章,时间,地点,人物,事件.而有的人喜欢写杂文或者散文,有的人 ...

  6. shell之小括号、中括号、大括号

    1.Shell中变量的原形:${var}  一串命令的执行 #等价于 $ var=test $ echo $var test #例如,用在这个位置 $ echo ${var}AA testAA 2.命 ...

  7. Lambert

    Dmap -- 贴图信息 LightColor  -- 灯光颜色 KL -- 灯光强度值(开放给美术) EnvColor -- 环境颜色 ka -- 环境光强度 (开放给美术) Dmap * (max ...

  8. UPdate 延时盲注之小技巧

    Title:UPdate 延时盲注之小技巧  --2014-06-05 15:21 UPDATE TABLEZZZ SET zz=111111 where id=$id 当TABLEZZZ表为空的时候 ...

  9. ViewPage和ActionBar打造滑动视图

    滑动效果非常流畅,可以将页签放置到ActionBar上,点击页签可以切换ViewPage,滑动ViewPage会同步更显Tabs. main.xml <?xml version="1. ...

  10. keil C51绝对地址访问

    在利用keil进行8051单片机编程的时,常常需要进行绝对地址进行访问.特别是对硬件操作,如DA AD 采样 ,LCD 液晶操作,打印操作.等等.C51提供了三种访问绝对地址的方法: 1. 绝对宏 在 ...