一,概念:
DQL(Data Query Language 数据查询语言):用于查询数据库对象中所包含的数据。
DQL语言主要的语句:SELECT语句。
DQL语言是数据库语言中最核心、最重要的语句,也是使用频率最高的语句。
查询的主要类型:简单的单表查询或多表的复杂查询和子查询。
二,查询
查询产生一个虚拟表。
看到的是表形式显示的结果,但结果并不真正存储。
每次执行查询只是从数据表中提取数据,并按照表格的形式显示出来。
三,select语法
SELECT [ALL | DISTINCT]
{ * | table.* | [ table.field1 [ as alias1] [, table.field2 [as alias2]][, …]] }
FROM table_name [ as table_ alias ]
[ left|out|inner join table_name2 ] #多表连接查询
[ WHERE … ] #指定结果需满足的条件
[ GROUP BY …] #指定结果按照哪几个字段来分组
[ HAVING …] #过滤分组的记录必须满足的次要条件
[ ORDER BY… ] #指定查询记录按一个或者多个条件排序
[ LIMIT { [ offset,] row_count | row_count OFFSET offset }] ; #分页查询
[ ] 括号代表可选的;
{ } 括号代表必须的;
# MySQL语句中的注释符,也可以用 /*该处为注释*/
四,select应用案例
1.查询表中所有的数据行和列,采用“*”符号。
select * from 表名;
效率低下,不建议使用。
2.查询表中指定列的数据
SELECT 字段名1,字段名2,…字段名n FROM 表名;
3.在查询中使用别名,使用“AS”关键字。
可给数据列取一个新别名
可给表取一个新别名
可把经计算或总结的结果用另外一个新名称来代替
SELECT field1 [ AS alias1] [,field2 [AS alias2]] […,fieldn [AS aliasn]]
FROM table_name [ AS table_ alias ];
4.DISTINCT关键字的使用:去掉SELECT查询返回的记录结果中重复的记录(所有返回列的值都相同),只返回一条。
SELECT DISTINCT field1 [ AS alias1] [,field2 [AS alias2]] […,fieldn [AS aliasn]]
FROM table_name [ AS table_ alias ];
五,where条件
1.WHERE条件:用于检索数据表中符合条件的记录
2.搜索条件可由一个或多个逻辑表达式组成,结果一般为真或假
3.搜索条件的组成
(1)逻辑操作符
(2)比较操作符
数值数据类型的记录之间才能进行算术运算
相同数据类型的数据之间才能进行比较
六,NULL空值条件查询
NULL代表“无值”
区别于零值0和空符串“”
只能出现在定义允许为NULL的字段
须使用 IS NULL 或 IS NOT NULL 比较操作符去比较
语法:
SELECT 字段1,字段2 ,…FROM 表名 WHERE 字段x IS 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或任意多个字符
与“_”一起使用,表示匹配单个字符
示例:
#查询包含“数学”的所有课程
SELECT * FROM subject WHERE SubjectName LIKE "%数学%";
#查询所有姓名为“李**”三个字的学生信息
SELECT StudentNo,StudentName FROM student
WHERE StudentName LIKE "李__";
九,使用in进行范围查询
在WHERE子句中使用IN进行范围查询
查询的字段x的值,至少与括号中的一个值相同
多个值之间用英文逗号隔开
语法:
SELECT 字段1,字段2 ,…FROM 表名 WHERE 字段x IN ( 值1,值2,值3…值n)
示例:
SELECT * FROM subject where ClassHour = 100 OR ClassHour =110 OR ClassHour = 120; #普通处理方式
SELECT * FROM subject where ClassHour IN ( 100, 110,120 );
#使用IN进行查询方式,更为简洁,效率更高
十,MySQL中的函数
MySQL中的函数将一些常用的处理数据的操作封装起来,这样大大简化了程序员的工作,提高了开发效率。
因此,除了会使用SQL语句之外,还需要掌握一些常用函数。
MySQL中常用的函数
1.聚合函数
2.数学函数
3.字符串函数
4.日期时间函数