MySQL查询:
#检查“Logic Java”课程最近一次考试成绩
#如果有 80分以上的成绩,显示分数排在前5名的学员学号和分数
SELECT r.studentno AS 学生编号,r.studentresult AS 学生成绩 FROM result r
WHERE subjectno=(SELECT subjectno FROM SUBJECT WHERE subjectname='java')
AND examdate=(SELECT MAX(examdate)FROM result WHERE
subjectno=(SELECT subjectno FROM SUBJECT WHERE subjectname='java'))
AND studentResult>=80
ORDER BY studentresult DESC
LIMIT 5;
不相关子查询:
SELECT r.studentno AS 学生编号,r.studentresult AS 学生成绩 FROM result r
WHERE EXISTS(
SELECT subjectno FROM SUBJECT st WHERE subjectname='java')ORDER BY studentresult DESC
LIMIT 5;
相关子查询:
SELECT r.studentno AS 学生编号,r.studentresult AS 学生成绩 FROM result r
WHERE EXISTS(
SELECT subjectno FROM SUBJECT st WHERE subjectname='java'
AND r.`subjectNo`=st.subjectNo)ORDER BY studentresult DESC
LIMIT 5;
分组查询:
SELECT `subjectNo`,AVG(`studentResult`) AS 课程平均成绩
FROM `result`
GROUP BY `subjectNo`
ORDER BY AVG(`studentResult`);
多列分组:SELECT `gradeId` AS 年级编号,`sex` AS 性别,COUNT(*) AS 人数
FROM `student`
GROUP BY `gradeId`,`sex`
ORDER BY `gradeId`;
分组筛选:
SELECT `subjectNo`,AVG(`studentResult`) AS 课程平均成绩
FROM `result`
GROUP BY `subjectNo`
HAVING AVG(`studentResult`) >=60; #having group by 筛选完再做条件判断
常量列:
SELECT studentno AS 学生编号,studentname AS 学生姓名,'北京信息中心'AS
'学校名称' FROM student;
事务的四个特性:
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
事务的隔离级别:
1 脏读
脏读是指在一个事务处理过程里读取了另一个未提交的事务中的数据。
2 不可重复读
不可重复读是指在对于数据库中的某个数据,一个事务范围内多次查询却返回了不同的数据值,这是由于在查询间隔,被另一个事务修改并提交了
3 幻读
幻读是事务非独立执行时发生的一种现象。
创建事物:
开始事务:begin; 或start transaction;
提交事务:commit;
回滚事务:rollback;
开启/关闭自动提交状态:set autocommit=1|0;
值为1:开启自动提交
值为0:关闭自动提交