首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第1章 数据库和SQL
1-1 数据库是什么
我们身边的数据库
为什么DBMS那么重要
DBMS的种类
1-2 数据库的结构
RDBMS的常见系统结构
表的结构
1-3 SQL概要
标准SQL
SQL语句及其种类
SQL的基本书写规则
1-4 表的创建
表的内容的创建
数据库的创建(CREATE DATABASE语句)
表的创建(CREATE TABLE语句)
命名规则
数据类型的指定
约束的设置
1-5 表的删除和更新
表的删除(DROP TABLE语句)
表定义的更新(ALTER TABLE语句)
向Product表中插入数据
第2章 查询基础
2-1 SELECT语句基础
列的查询
查询出表中所有的列
为列设定别名
常数的查询
从结果中删除重复行
根据WHERE语句来选择记录
注释的书写方法
算术运算符
需要注意NULL
比较运算符
对字符串使用不等号时的注意事项
不能对NULL使用比较运算符
2-3 逻辑运算符
NOT运算符
AND运算符和OR运算符
通过括号强化处理
逻辑运算符和真值
含有NULL时的真值
第3章 聚合与排序
3-1 对表进行聚合查询
聚合函数
计算表中数据的行数
计算NULL之外的数据的行数
计算合计值
计算平均值
计算值和小值
使用聚合函数删除重复值(关键字DISTINCT)
3-2 对表进行分组
GROUP BY子句
聚合键中包含NULL的情况
使用WHERE子句时GROUP BY的执行结果
与聚合函数和GROUP BY子句有关的常见错误
3-3 为聚合结果指定条件
HAVING子句
HAVING子句的构成要素
相对于HAVING子句,更适合写在WHERE子句中的条件
3-4 对查询结果进行排序
ORDER BY子句
指定升序或降序
指定多个排序键
NULL的顺序
在排序键中使用显示用的别名
ORDER BY子句中可以使用的列
不要使用列编号
当前位置:
首页>>
技术小册>>
SQL基础教程(上)
小册名称:SQL基础教程(上)
### 章节:列的查询 在数据库的世界中,查询是获取数据的基本操作,而列的查询则是这一过程中的核心环节。无论是为了数据分析、报表生成还是简单的信息检索,理解并掌握如何高效地查询数据库中的列数据都是至关重要的。本章将深入讲解SQL(Structured Query Language,结构化查询语言)中列的查询技巧,包括基础查询、条件筛选、排序与分组、以及使用聚合函数等高级功能。 #### 一、基础列查询 ##### 1.1 SELECT语句简介 在SQL中,`SELECT`语句是最常用的查询语句,用于从数据库表中选取数据。基础的`SELECT`语句结构如下: ```sql SELECT column1, column2, ... FROM table_name; ``` 这里,`column1, column2, ...`是你希望从`table_name`表中查询的列名。如果省略列名,则默认查询表中的所有列。 ##### 1.2 查询特定列 假设我们有一个名为`employees`的表,包含`id`, `name`, `age`, `department`等列,我们可以这样查询员工的姓名和部门: ```sql SELECT name, department FROM employees; ``` 这条语句会返回`employees`表中所有员工的姓名和部门信息。 #### 二、条件筛选 在实际应用中,我们往往需要根据特定条件来筛选数据。这时,`WHERE`子句就显得尤为重要。 ##### 2.1 使用WHERE子句 `WHERE`子句允许你指定筛选条件,只有满足条件的记录才会被查询出来。 ```sql SELECT name, age FROM employees WHERE age > 30; ``` 上述语句会返回所有年龄大于30岁的员工的姓名和年龄。 ##### 2.2 逻辑运算符 在`WHERE`子句中,可以使用逻辑运算符(如`AND`、`OR`、`NOT`)来组合多个条件。 ```sql SELECT name, department FROM employees WHERE age > 30 AND department = 'IT'; ``` 这条语句会返回年龄大于30岁且部门为IT的员工的姓名和部门。 #### 三、排序与分组 ##### 3.1 ORDER BY排序 当需要按照某个或某些列的值对查询结果进行排序时,可以使用`ORDER BY`子句。 ```sql SELECT name, age FROM employees ORDER BY age DESC; ``` 上述语句会按照年龄降序排列所有员工的姓名和年龄。 ##### 3.2 GROUP BY分组 当需要对查询结果进行分组统计时,`GROUP BY`子句非常有用。它可以将结果集中的记录按照一个或多个列的值进行分组,然后可以对每个组应用聚合函数。 ```sql SELECT department, COUNT(*) FROM employees GROUP BY department; ``` 这条语句会按部门分组,并计算每个部门的员工数量。 #### 四、使用聚合函数 聚合函数是对一组值执行计算并返回单个值的函数。在列的查询中,聚合函数常用于统计信息,如计数、求和、平均值等。 ##### 4.1 常见的聚合函数 - `COUNT(*)`:计算行数。 - `SUM(column)`:计算指定列值的总和。 - `AVG(column)`:计算指定列值的平均值。 - `MAX(column)`:找出指定列的最大值。 - `MIN(column)`:找出指定列的最小值。 ##### 4.2 示例 ```sql -- 计算每个部门的平均年龄 SELECT department, AVG(age) AS avg_age FROM employees GROUP BY department; -- 计算所有员工的总工资(假设有salary列) SELECT SUM(salary) AS total_salary FROM employees; ``` #### 五、高级查询技巧 ##### 5.1 DISTINCT去重 当查询结果中包含重复的行时,可以使用`DISTINCT`关键字来去除重复项,只返回唯一的值。 ```sql SELECT DISTINCT department FROM employees; ``` ##### 5.2 LIMIT限制结果数量 在处理大量数据时,有时我们只需要查询结果的前几条记录。这时,可以使用`LIMIT`子句来限制返回的记录数。 ```sql SELECT name, age FROM employees ORDER BY age DESC LIMIT 5; ``` 上述语句会返回年龄最大的前5名员工的姓名和年龄。 ##### 5.3 JOIN连接查询 当需要查询存储在两个或多个表中的相关信息时,可以使用`JOIN`语句。`JOIN`可以根据两个或多个表之间的共同字段来合并这些表的数据。 ```sql -- 假设有另一个表departments,包含department_id和department_name SELECT e.name, d.department_name FROM employees e JOIN departments d ON e.department = d.department_id; ``` 这条语句通过`JOIN`操作,将`employees`表和`departments`表连接起来,并查询出每个员工的姓名和对应的部门名称。 #### 六、总结 列的查询是SQL查询的基础,也是数据库操作中最为频繁和重要的部分。通过本章的学习,我们掌握了如何使用`SELECT`语句查询特定列,如何利用`WHERE`子句进行条件筛选,如何对查询结果进行排序和分组,以及如何使用聚合函数进行统计计算。此外,还介绍了`DISTINCT`去重、`LIMIT`限制结果数量和`JOIN`连接查询等高级查询技巧。这些知识和技能将为我们后续深入学习SQL和进行复杂的数据分析打下坚实的基础。
上一篇:
2-1 SELECT语句基础
下一篇:
查询出表中所有的列
该分类下的相关小册推荐:
SQL基础教程(中)
SQL基础教程(下)
PostgreSQL入门教程
高性能的Postgres SQL