本文目录导读:
在关系数据库中,数据查询语言(DQL)是SQL的核心部分,主要用于从数据库中检索所需的数据,本章将详细介绍DQL的相关知识,包括SELECT语句的基本语法、常用函数、连接查询、子查询等。
图片来源于网络,如有侵权联系删除
SELECT语句
SELECT语句是DQL中最常用的语句,用于从数据库中检索数据,其基本语法如下:
SELECT column1, column2, ... FROM table_name WHERE condition;
column1, column2, ...
表示要查询的列名,table_name
表示要查询的表名,condition
表示查询条件。
1、选择列
在SELECT语句中,可以使用星号(*)选择表中的所有列,也可以指定要选择的列名,以下是一个示例:
-- 查询名为'table_name'表的所有列 SELECT * FROM table_name; -- 查询名为'table_name'表的'name'和'age'列 SELECT name, age FROM table_name;
2、选择别名
在SELECT语句中,可以使用AS关键字为列或表指定别名,以便在查询结果中更方便地引用,以下是一个示例:
-- 查询名为'table_name'表的'name'和'age'列,并分别为它们指定别名 SELECT name AS "Name", age AS "Age" FROM table_name;
3、条件查询
在SELECT语句中,可以使用WHERE子句来指定查询条件,从而筛选出满足条件的记录,以下是一个示例:
-- 查询名为'table_name'表中年龄大于20的记录 SELECT * FROM table_name WHERE age > 20;
常用函数
在DQL中,可以使用各种函数对数据进行处理,如数学函数、字符串函数、日期函数等。
1、数学函数
图片来源于网络,如有侵权联系删除
数学函数用于执行数学运算,以下是一些常用的数学函数:
-- 求和函数:SUM(column_name) SELECT SUM(age) AS total_age FROM table_name; -- 平均值函数:AVG(column_name) SELECT AVG(age) AS average_age FROM table_name; -- 最大值函数:MAX(column_name) SELECT MAX(age) AS max_age FROM table_name; -- 最小值函数:MIN(column_name) SELECT MIN(age) AS min_age FROM table_name;
2、字符串函数
字符串函数用于处理文本数据,以下是一些常用的字符串函数:
-- 字符串连接函数:CONCAT(str1, str2, ...) SELECT CONCAT(name, ' ', age) AS full_name FROM table_name; -- 字符串长度函数:LENGTH(str) SELECT LENGTH(name) AS name_length FROM table_name; -- 大写函数:UPPER(str) SELECT UPPER(name) AS upper_name FROM table_name; -- 小写函数:LOWER(str) SELECT LOWER(name) AS lower_name FROM table_name;
3、日期函数
日期函数用于处理日期和时间数据,以下是一些常用的日期函数:
-- 获取当前日期:CURRENT_DATE() SELECT CURRENT_DATE(); -- 获取当前时间:CURRENT_TIME() SELECT CURRENT_TIME(); -- 获取当前日期和时间:CURRENT_TIMESTAMP() SELECT CURRENT_TIMESTAMP(); -- 日期格式化函数:DATE_FORMAT(date, format) SELECT DATE_FORMAT(CURRENT_DATE(), '%Y-%m-%d') AS formatted_date;
连接查询
连接查询用于从两个或多个表中检索数据,在DQL中,可以使用INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN等连接类型来实现连接查询。
1、INNER JOIN
INNER JOIN用于检索两个表中匹配的记录,以下是一个示例:
-- 查询名为'table_name1'和'table_name2'的表,并返回两个表中'name'列匹配的记录 SELECT table_name1.name, table_name2.age FROM table_name1 INNER JOIN table_name2 ON table_name1.id = table_name2.id;
2、LEFT JOIN
LEFT JOIN用于检索左表(table_name1)中的所有记录,以及右表(table_name2)中匹配的记录,如果右表中没有匹配的记录,则结果中的相应列将包含NULL值,以下是一个示例:
图片来源于网络,如有侵权联系删除
-- 查询名为'table_name1'和'table_name2'的表,并返回左表中的所有记录,以及右表中匹配的记录 SELECT table_name1.name, table_name2.age FROM table_name1 LEFT JOIN table_name2 ON table_name1.id = table_name2.id;
子查询
子查询是一个SELECT语句嵌套在另一个SELECT语句中,子查询可以用于实现复杂的查询逻辑,如查找具有特定条件的记录、计算聚合函数等。
1、标量子查询
标量子查询返回单个值,以下是一个示例:
-- 查询名为'table_name'的表,并返回年龄大于平均年龄的记录 SELECT * FROM table_name WHERE age > (SELECT AVG(age) FROM table_name);
2、列子查询
列子查询返回多个值,以下是一个示例:
-- 查询名为'table_name'的表,并返回具有子查询中列值的记录 SELECT * FROM table_name WHERE id IN (SELECT id FROM table_name2);
3、表子查询
表子查询返回一个结果集,可以与外部查询一起使用,以下是一个示例:
-- 查询名为'table_name'的表,并返回具有子查询中表值的记录 SELECT * FROM table_name WHERE id IN (SELECT id FROM table_name2 WHERE name = 'John');
本章详细介绍了关系数据库标准语言SQL中的数据查询语言(DQL),通过学习本章内容,读者可以掌握SELECT语句的基本语法、常用函数、连接查询和子查询等知识,在实际应用中,DQL是查询数据库中数据的重要工具,熟练掌握DQL将有助于提高数据库查询效率。
标签: #关系数据库标准语言sql第三章整理
评论列表