DQL命令查询数据(一)
本课目标
理解查询的相关概念
掌握MySQL的简单查询语句
掌握MySQL中的函数
DQL 语言
DQL(Data Query Language 数据查询语言):用于查询数据库对象中所包含的数据
DQL语言主要的语句:SELECT语句
DQL语言是数据库语言中最核心、最重要的语句,也是试用频率最高的语句
查询的主要类型:简单的单表查询或多表的复杂查询和子查询
1.查询
SELECT 语法
1.
1.【】括号代表可选的
2.{ } 括号代表必选的
3.#? MySQL语句中的注释符,也可以用? /*该处为注释*/
3.在查询中使用别名,使用“AS” 关键字
- 可给数据列取一个新别名
- 可给表取一个新别名
- 可把经计算或总结的结果用另外一个新名称来代替
4.在查询中使用常量列:如果需要将一些常量的默认信息添加到输出结果中,以方便统计或计算。可以使用常量列
5.DISTINCT 关键字的使用:去掉 SELECT 查询返回的记录结果中重复的记录(所有返回列的值都相同),只返回一条
#查询学生表中都处于那些年级,DISTINCT去重
SELECT DISTINCT GRADEID FROM STUDENT;
USE MYSCHOOL;
#查询学生表中的学生的所有信息
SELECT * FROM STUDENT;
#查询学生表中所有学生的学号、姓名、性别、电话、地址
SELECT STUDENTNO,STUDENTNAME,SEX,PHONE,ADDRESS FROM STUDENT;
#将上一个查询结果的字段名用中文表示出来
SELECT
STUDENTNO '学号',
STUDENTNAME '姓名',
SEX '性别',
PHONE '电话',
ADDRESS '地址'
FROM STUDENT;
WHERE 条件
WHERE 条件:用于检索数据表中符合条件的记录
搜索条件可由一个或多个逻辑表达式组成,结果一般为真或假
搜索条件的组成:逻辑操作符、比较操作符
逻辑运算符
比较运算符
数值数据类型的记录之间才能进行算术运算相同数据类型的数据之间才能进行比较
?
#查询学生表中都处于那些年级,DISTINCT去重
SELECT DISTINCT GRADEID FROM STUDENT;
#查询课程表,学时大于110的课程信息
SELECT * FROM `SUBJECT` WHERE CLASSHOUR>110;
#查询课程表中,学时不等于130的课程信息
SELECT * FROM `SUBJECT` WHERE CLASSHOUR !=130;
NULL 空值条件查询
- NULL 代表 “无值”
- 区别于零值 0 和空字符串 “ ”
- 只能出现在定义允许为NULL的字段
- 须使用 IS NULL 或 IS NOT NULL 比较操作符去比较
SELECT? 字段1,字段2 ,…FROM 表名 WHERE?? 字段x? IS? NULL
SELECT COUNT(*) FROM STUDENT WHERE ADDRESS IS NOT NULL;
BETWEEN AND 范围查询
BETWEEN AND范围查询:根据一个范围值来检索
SELECT? 字段1,字段2 ,…FROM 表名 WHERE?? 字段x? BETWEEN? 值1 AND? 值2
#查询课程表中课时在110和120之间的所有记录
?SELECT * FROM subject WHERE classhour BETWEEN? 110 AND 120;
#等同于:
?SELECT * FROM subject WHERE classhour >= 110 AND classhour <=120;
LIKE 模糊查询
在 WHERE 子句中,使用 LIKE 关键字进行模糊查询
- 与 “%” 一起使用,表示匹配 0 或任意多个字符
- 与 “_” 一起使用,表示匹配 单个字符
#LIKE模糊查询
#查询学生表中王姓的学生信息
SELECT * FROM STUDENT WHERE STUDENTNAME LIKE '王%';
#查找名字以“三”结尾的学生信息
SELECT * FROM STUDENT WHERE STUDENTNAME LIKE '%三';
#查找名字有“十”的学生信息
SELECT * FROM STUDENT WHERE STUDENTNAME LIKE '%十%';
#查询李姓,名字为两个字的学生信息
SELECT * FROM STUDENT WHERE STUDENTNAME LIKE '李_';
使用 IN 进行范围查询
在WHERE子句中使用IN进行范围查询
- 查询的字段 x 的值,至少与括号中的一个值相同
- 多个值之间用英文逗号隔开
SELECT? 字段1,字段2 ,…FROM 表名 WHERE?? 字段x? IN? ( 值1,值2,值3…值n)
MySQL中的函数
MySQL中的函数将一些常用的处理数据的操作封装起来,这样大大简化了程序员的工作,提高了开发效率
MySQL中常用的函数
- 聚合函数
- 字符串函数
- 日期时间函数
- 数学函数
1.聚合函数
#聚合函数
SELECT * FROM RESULT;
#查询张三(10000)的平均考试成绩
SELECT AVG(STUDENTRESULT) FROM RESULT WHERE STUDENTNO=10000;
#查询张三(10000)的考试次数
SELECT COUNT(1) FROM RESULT WHERE STUDENTNO=10000;
#查询学生表中一共有多少个学生
SELECT COUNT(*) FROM STUDENT;
#查询有地址的学生人数
#count(1)、count(*)都是查询全部行数
#count(字段)只会统计该字段不为空的行数
SELECT COUNT(*) FROM STUDENT WHERE ADDRESS IS NOT NULL;
SELECT COUNT(ADDRESS) FROM STUDENT;
#查询张三(10000)的考试最高分,最低分,总分
SELECT MAX(STUDENTRESULT),
MIN(STUDENTRESULT),
SUM(STUDENTRESULT)
FROM RESULT WHERE STUDENTNO=10000;
2.数学函数
3.字符串函数
#在某个字段前或后添加内容
SELECT CONCAT('中国',ADDRESS) FROM STUDENT;
#查询学生信息的邮箱前五位SUBSTRING()字符串截取
SELECT SUBSTRING(EMAIL,1,5) FROM STUDENT;
#获取一个唯一序列
SELECT UUID() FROM DUAL;
#生成一个唯一序列并去掉这个唯一序列中的-
SELECT REPLACE(UUID(),'_','') FROM DUAL;
4.日期时间函数
#获取系统当前时间
SELECT NOW() FROM DUAL;
#获取系统当前时间两天后的时间
SELECT ADDDATE (NOW(),2)? FROM DUAL;
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!