DQL语言
DQL( Data Query Language 数据查询语言 )
- 查询数据库数据 , 如SELECT语句
- 简单的单表查询或多表的复杂查询和嵌套查询
- 是数据库语言中核心,重要的语句 使用频率高的语句
SELECT语法
SELECT [ALL | DISTINCT] {* | table.* | [table.field1[as alias1][,table.field2[as alias2]] [,...]]} FROM table_name [as table_alias] [left | right | inner join table_name2] -- 联合查询 [WHERE ...] -- 指定结果需满足的条件 [GROUP BY ...] -- 指定结果按照哪几个字段来分组 [HAVING] -- 过滤分组的记录必须满足的次要条件 [ORDER BY ...] -- 指定查询记录按一个或多个条件排序 [LIMIT {[offset,]row_count | row_countOFFSET offset}]; -- 指定查询的记录从哪条至哪条
注意 : [ ] 括号代表可选的 , { }括号代表必选得
指定查询字段
查询表中所有的数据列结果 , 采用 **" \* "** 符号; 但是效率低,不推荐 . -- 查询所有学生信息 SELECT * FROM student; -- 查询指定列(学号 , 姓名) SELECT studentno,studentname FROM student;
AS作为语句别名
可给数据列取一个新别名
可给表取一个新别名
可把经计算或总结的结果用另一个新名称来代替
--这里是为列取别名(当然as关键词可以省略) SELECT studentno AS 学号,studentname AS 姓名 FORM student; -- 使用as也可以为表取别名 SELSCT studenton AS 学号,studentname AS 姓名 FROM AS s -- 使用as,为查询结果取一个新名字 --CONCAT()函数拼接一个字符串 SELECT CONCAT('姓名:'studentname) AS 新姓名 FROM student;
作用:去掉SELECT查询返回的记录结果中重复的记录(返回所以列的值都一样),只返回一条
-- 查询一下有哪些同学参加了考试,成绩 SELECT * FORM result --查询全部的考试成绩 SELECT `studentNo` FROM result -- 查询有哪些同学参加了考试 SELECT DISTING `StudentNo` FROM result-- 发现重复数据,去重 -- ===============where======================= SELECT studentNo,`StudentResult` FROM result
-- 查询考试成绩在95-100之间的 SELECT `studentno`,`studentresult` FROM result WHERE `studentresult`>=95 AND `studentresult`<=100 -- and && SELECT `studentno`,`studentresult` FROM `result` WHERE `studentresult`>=95 && `studentresult`<=100 -- 模糊查询 SELECT `studentno`,`studentresult` FROM `result` WHERE `studentresult` BETWEEN 95 AND 100 -- 除了1000号学生只为的同学成绩 SELECT `studentno`,`studentresult` FROM `result` WHERE `studentno`!=1000 -- != NOT -- 模糊查询 between and \ like \ in \ null -- ======================================== -- Like -- ======================================== -- 查询姓刘的同学的学号及姓名 -- Like结合使用的通配符:%(代表0到任意个字符) _(一个字符) SELECT `studentno`,`studentname` FROM `student` WHERE `studentname` LIKE '刘%'; -- 查询姓刘的同学,后面只有一个字的 SELECT `studentno`,`studentname` FROM `student` WHERE `studentname` LIKE '刘_'; -- 查询姓刘的同学,后面只有两个字的 SELECT `studentno`,`studentname` FROM `student` WHERE `studentname` LIKE '刘__'; -- 查询姓名中含有 嘉 字的 SELECT `studentno`,`studentname` FROM `student` WHERE `studentname` LIKE '%嘉%' -- 查询姓名中含有特殊字符的需要使用转义符号 '\' -- 自定义转义符关键字: ESCAPE ':' -- ============================================= -- IN -- ============================================= -- 查询学号为1000,1001,1002的学生姓名 SELECT `studentno`,`studentname` FROM `student` WHERE `studentno` IN (1000,1001,1002) -- 查询地址在北京,南京,河南洛阳的学生 SELECT studentno,studentname,address FROM student WHERE address IN ('北京','南京','河南洛阳'); -- ============================================= -- NULL 空 -- ============================================= -- 查询出生日期没有填写的同学 -- 不能直接写=NULL , 这是代表错误的 , 用 is null SELECT `studentname` FROM `student` WHERE `borndate` IS NULL -- 查询出生日期填写的同学 SELECT studentname FROM student WHERE BornDate IS NOT NULL; -- 查询没有写家庭住址的同学(空字符串不等于null) SELECT studentname FROM student WHERE Address='' OR Address IS NULL