18、多表联查
(1)、查询《数据库结构-1》的所有考试结果,并按成绩由高到低排列
SELECT result.StudentResult
FROM result,subject
WHERE result.SubjectNo=(SELECT sj.SubjectNo
FROM subject
sj
WHERE sj.SubjectName = ‘数据库结构-1’)
GROUP BY result.StudentResult DESC
(2)、查询所有《数据库结构-2》的考试成绩,并按照由高到低显示,同时把该成绩对应的学生的学号、姓名打印出来
SELECT st.StudentNo,st.StudentName,r.StudentResult FROM student st
JOIN
result r
ON st.StudentNo = r.StudentNo
JOIN subject
sj
ON sj.SubjectNo =r.SubjectNo
WHERE
sj.SubjectName=‘数据库结构-2’
ORDER BY r.StudentResult DESC
LIMIT 0,4
(3)、查询《JAVA第一学年》课程成绩前10名且分数大于80的学生信息(学号,姓名,课程名,分数)
SELECT st.StudentNo , st.StudentName, r.StudentResult FROM student st
JOIN result r
ON st.StudentNo = r.StudentNo
JOIN subject
sj
ON sj.SubjectNo =r.SubjectNo
WHERE
sj.SubjectName =‘JAVA第一学年’
AND r.StudentResult >80
ORDER BY r.StudentResult DESC
LIMIT 0,10
(4)、查询课程为《高等数学-2》且分数不小于80分的学生的学号和姓名
SELECT st.StudentNo,st.StudentName FROM student st
JOIN result r
on st.StudentNo=r.StudentNo
JOINsubject
sj
ON sj.SubjectNo=r.SubjectNo
WHERE
sj.SubjectName=‘高等数学-2’
AND r.StudentResult>80
(5)、查询《C语言-1》的前5名学生成绩信息
SELECT st.StudentNo,st.StudentName, r.StudentResult FROM student st
JOIN result r ON st.StudentNo =r.StudentNo
JOINsubject
sj ON sj.SubjectNo= r.SubjectNo
WHERE sj.SubjectName =‘C语言-1’
ORDER BY r.StudentResult DESC
LIMIT 5
19、MySQL函数
– 数学函数
– select MOD(15,7) 取模函数,取的语数
– select FLOOR(1.57); 向下取整
– select CEILING(1.57); 向上取整
– select ROUND(1.5); 四舍五入
– 字符函数
– select CONCAT(‘My’,‘QL’);字符串的拼接
– select LOCATE(‘bar’,‘foobarbar’); 第一出现的位置
– select INSTR(‘foobarbar’, ‘aaaa’); 字符串出现的位置
– select SUBSTRING(‘Quadratically’,5,2);截取字符串
– select LTRIM(’ barbar’); 删除空格
– select REPLACE(‘www. mysql.com’, ’ ', ‘’); 替换
– 日期函数
– select MONTH(‘1998-02-03’); 返回月
– select year(‘1998-02-03’); 返回年
– SELECT DATE_ADD(“1997-12-31 23:59:59”, INTERVAL 1 SECOND);日期加
– select CURDATE(); 获取当前日期到天
– select NOW();
– 系统函数
– select USER();查询当前登陆用户
– select DATABASE()当前数据库名称
– select VERSION()
20、MySQ事务必须具备以下四个属性,简称ACID 属性
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
21、MySQL的事务实现方法
START TRANSACTION
开始一个事务,标记事务的起始点
COMMIT
提交一个事务给数据库
ROLLBACK
将事务回滚,数据回到本次事务的初始状态
SET AUTOCOMMIT = 1;
开启MySQL数据库的自动提交
SET AUTOCOMMIT = 0;
关闭自动提交模式
22、数据库索引
主键索引(PRIMARY KEY)
唯一索引(UNIQUE)
常规索引(INDEX)
全文索引(FULLTEXT)