DQL(Data Query Language:数据查询语言)
-- 查询全部 SELECT 字段 FROM 表 SELECT * FROM `student` -- 查询指定字段 SELECT `studentno`,`studentname` FROM `student` -- 别名,字段或者表都可以 SELECT `studentno` AS 学号,`studentname` AS 学生姓名 FROM `student` -- 函数Concat(a,b) SELECT CONCAT('姓名:', `studentname`) AS 新名字 FROM student -- 查询 SELECT `studentno` FROM `student` -- 发现重复数据,去重,关键词DISTINCT SELECT DISTINCT `studentno` FROM `student` -- SELECT还可以计算表达式 SELECT 100*3-1 AS `计算结果` -- 查询版本号 SELECT VERSION()
-- 查询考试成绩在95-100之间的 SELECT Studentno,StudentResult FROM result WHERE StudentResult>=95 AND StudentResult<=100;
-- 模糊查询 between and \ like \ in \ null -- 查询姓刘的同学的学号及姓名 -- like结合使用的通配符 : % (代表0到任意个字符) _ (一个字符) SELECT studentno,studentname FROM student WHERE studentname LIKE '刘%';
操作符名称 | 描述 |
---|---|
INNER JOIN | 查询两个表中结果集中的交集 |
LEFT JOIN | 返回左表中所有的行,即使右表中没有匹配 (优先考虑、筛选左表中的信息) |
RIGHT JOIN | 返回右表中所有的行,即使左表中没有匹配 |
-- 查一下缺考的同学 SELECT s.`studentno`,`studentname`,`subjectno`,`studentresult` FROM `student` AS s LEFT JOIN `result` AS r ON s.`studentno`=r.`studentno` WHERE `studentresult` IS NULL -- 查询s.studentno,studentname,subjectname,StudentResult SELECT s.`studentno`,`studentname`,`subjectname`,`studentresult` FROM `student` AS s INNER JOIN `result` AS r ON s.`studentno` =r.`studentno` INNER JOIN `subject` AS sub ON sub.`subjectno` = r.`subjectno`
-- 查询 JAVA第一学年 课程成绩前10名并且分数大于80的学生信息(学号,姓名,课程名,分数) SELECT s.studentno,studentname,subjectname,StudentResult FROM student s INNER JOIN result r ON r.studentno = s.studentno INNER JOIN `subject` sub ON r.subjectno = sub.subjectno WHERE subjectname='JAVA第一学年' ORDER BY StudentResult DESC LIMIT 0,10
limit:(PageNo - 1)*PageSize , PageSize
其中,PageNo为页码,PageSize为单页面显示条数。
-- *表示查询表中所有的列 -- -- 子查询经常出现在WHERE和FROM子句中 -- -- 查询薪资水平为高级的所有员工的编号、姓名、性别、年龄和工资-- SELECT *FROM t_employee WHERE salary >=(SELECT salary FROM t_slevel WHERE levl = 3) AND salary < (SELECT salary FROM t_slevel WHERE levl = 4)
-- 查询不存在年龄为33岁的员工的部门-- SELECT * FROM t_dept WHERE deptno !=(SELECT deptno FROM t_employee WHERE age = 33)