让我来讲解一下“Mysql学习之数据库检索语句DQL大全小白篇”的完整攻略。
一、概述
本文主要介绍Mysql中的DQL语句,即数据库检索语句。通过本文的学习,您将会了解到Mysql中常用的检索语句以及相关的技巧和注意事项。
以下是本文主要内容:
- 简介和基本语法
- 常用查询语句
- 表的连接和联合查询
- 字符串函数和日期函数
- 分组和排序
- 子查询和视图
二、基本语法
Mysql中的DQL语句有如下基本语法:
SELECT column_name1, column_name2, column_name3......
FROM table_name
WHERE condition
GROUP BY column_name
HAVING condition
ORDER BY column_name ASC/DESC
LIMIT num;
其中,SELECT和FROM是必须的部分,其他部分根据需要可以省略。
查询语句的结果就是一个表格,列名即为SELECT所选择的列名,行数为符合条件的行数。
三、常用查询语句
1. SELECT语句
SELECT语句是最基本的语句,用于选择表中的列进行查询。
示例1:
SELECT id, name, age
FROM student;
上面的语句将会显示出student表中所有的id、name、age列的信息。
2. WHERE语句
WHERE语句用于约束查询的条件。
示例2:
SELECT id, name, age
FROM student
WHERE age > 20;
上面的语句将显示出student表中age大于20的记录。
3. LIKE语句
LIKE语句用于模糊查询。
示例3:
SELECT name, age
FROM student
WHERE name LIKE '%张%';
上面的语句将显示出student表中名字中带有“张”的记录。
四、表的连接和联合查询
1. 内连接
内连接是指将两个表中符合连接条件的行进行连接,返回一个新的表。
示例4:
SELECT student.id, student.name, score.score
FROM student
INNER JOIN score
ON student.id = score.id;
上面的语句将返回一个由student表和score表连接起来的新表,其中,student.id = score.id,表示两个表中id相等的行会被连接在一起。
2. 外连接
外连接又分为左外连接和右外连接,左外连接表示以左表为基础,右表中符合条件的行进行连接,返回一个新表;右外连接也是同理。
示例5:
SELECT student.id, student.name, score.score
FROM student
LEFT OUTER JOIN score
ON student.id = score.id;
上面的语句将返回一个由student表和score表连接起来的新表,其中,以左表student为基础,score表中符合条件的行进行连接。
3. 联合查询
联合查询用于将多个SELECT语句的结果组合在一起。
示例6:
SELECT id, name, age
FROM student
UNION ALL
SELECT id, name, age
FROM teacher;
上面的语句将把下面两个SELECT语句的结果组合在一起:
SELECT id, name, age
FROM student;
SELECT id, name, age
FROM teacher;
五、字符串函数和日期函数
1. 字符串函数
一些常用的字符串函数如下:
- LEFT(str, len)
- RIGHT(str, len)
- TRIM([BOTH | LEADING | TRAILING] remstr FROM str)
- CONCAT(str1, str2, ...)
等等。
示例7:
SELECT CONCAT(name, '(', age, ')')
FROM student;
上面的语句将会返回由“姓名(年龄)”组成的字符串。
2. 日期函数
一些常用的日期函数如下:
- NOW()
- MONTH(date)
- YEAR(date)
- DAY(date)
示例8:
SELECT name
FROM student
WHERE YEAR(birth_day)='1990';
上面的语句将会返回所有出生年份为1990年的学生姓名。
六、分组和排序
1. 分组
分组用于将符合条件的数据行按照某个列进行分组,对于每组分别进行计算或处理。
示例9:
SELECT department, COUNT(*)
FROM employee
GROUP BY department;
上面的语句将会按照员工所在部门进行分组,并计算出每个部门的员工人数。
2. 排序
排序用于将输出数据行按照某个列进行排序。
示例10:
SELECT id, name, age
FROM student
ORDER BY age DESC;
上面的语句将会按照年龄降序进行排序,并输出学生的id、姓名和年龄。
七、子查询和视图
1. 子查询
子查询是嵌套在主查询内部的SELECT语句,用于过滤或处理主查询中的结果。
示例11:
SELECT *
FROM score
WHERE student_id IN (SELECT id FROM student WHERE name='张三');
上面的语句将会查询出姓名为“张三”的学生的成绩记录。
2. 视图
视图是虚拟表,是基于一个或多个表的查询结果的可视化展示,包含特定的列和行。
示例12:
CREATE VIEW student_info AS
SELECT id, name, age, address
FROM student;
上面的语句将会创建一个名为student_info的视图,该视图展示了student表中id、name、age和address四列的数据。可以通过下面的语句进行查询:
SELECT * FROM student_info;
以上就是Mysql学习之数据库检索语句DQL大全小白篇的完整攻略。希望能够对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mysql学习之数据库检索语句DQL大全小白篇 - Python技术站