MySQL数据库三:操作数据库(二)
精心整理了最新的面试资料,有需要的可以自行获取
点击前往百度网盘获取
点击前往夸克网盘获取
DQL查询数据(重点)
Data Query Language:数据查询语言
●所有的查询操作都用它Select
●简单的查询,复杂的查询它都能做
●数据库中最核心的语言,最重要的语句
●使用频率最高的语句
基本查询
代码演示:
-- 简单查询语句
SELECT * FROM `class` -- 查询表的全部信息
SELECT `id`,`name` FROM `class` -- 查询表的指定信息
SELECT `id` AS 学号,`name` AS 姓名 FROM `class` -- 给查询结果重新命名
SELECT CONCAT('姓名:',NAME) AS 新名字 FROM class -- 利用函数
SELECT DISTINCT `pwd` FROM `class` -- 去除重复数据
SELECT VERSION() -- 查询版本
SELECT (100*63)-5 -- 计算
SELECT `name`,`score`+1 AS 提升后 FROM `class` -- 为数据库的所有数据+1
Where条件子句
-- 条件查询语句
SELECT `id` AS 学号,`name` AS 姓名 FROM `class` WHERE score>70 AND score<90 -- 用and或者&&连接
SELECT `name` AS 姓名,`pwd` AS 密码 FROM `class` WHERE score BETWEEN 60 AND 90
SELECT `name` AS 姓名,`birthday` AS 生日 FROM `class` WHERE NOT sex='女' -- 可以把not换为!=
模糊查询
-- 模糊查询LIKE
-- 查询姓刘的id、sex、name
SELECT `id`,`sex`,`name` FROM `class` WHERE `name` LIKE '刘%'
-- 查询姓刘的后面有一个字的
SELECT `id`,`sex`,`name` FROM `class` WHERE `name` LIKE '刘_'
-- 查询姓刘的后面有两个字的
SELECT `id`,`sex`,`name` FROM `class` WHERE `name` LIKE '刘__'
-- 查询名字中间有青字的
SELECT `id`,`sex`,`name` FROM `class` WHERE `name` LIKE '%青%'
-- 模糊查询IN
-- 查询在天津和广州的学生信息
SELECT `address`,`name`,`sex` FROM `class` WHERE `address` IN ('天津','广州')
-- 查询地址为空的学生信息
SELECT `id`,`name`,`sex` FROM `class` WHERE `address` IS NULL
联表查询
分页和排序
-- 排序:升序:ASC、降序:DESC
-- ORDER BY + 通过哪个字段排序
SELECT s.studentNo,studentName,SubjectName,StudentResult
FROM student AS s
RIGHT JOIN result AS r
ON r.`StudentNo` = s.`StudentNo`
INNER JOIN `subject` AS sub
ON r.`SubjectNo` = sub.`SubjectNo`
ORDER BY StudentResult ASC -- 根据学生成绩升序排列
-- 分页
-- LIMIT 起始值,页面大小
SELECT s.studentNo,studentName,SubjectName,StudentResult
FROM student AS s
RIGHT JOIN result AS r
ON r.`StudentNo` = s.`StudentNo`
INNER JOIN `subject` AS sub
ON r.`SubjectNo` = sub.`SubjectNo`
LIMIT 5,5
子查询和嵌套查询
MySQL常用函数
参考连接
聚合函数
-- 聚合函数
SELECT COUNT(`StudentNo`) FROM student -- 查询表中所有的记录,忽略所有的NULL值
SELECT COUNT(*) FROM student -- 不会忽略NULL值
SELECT COUNT(1) FROM student -- 不会忽略所有的NULL值
SELECT SUM(`StudentResult`) AS 总分 FROM result -- 计算总分数
SELECT AVG(`StudentResult`) AS 平均分 FROM result -- 计算平均分
SELECT MAX(`studentResult`) AS 最高分 FROM result -- 查询最高分
SELECT MIN(`StudentResult`) AS 最低分 FROM result -- 查询最低分