首页
技术小册
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基础教程(上)
### 2-1 SELECT语句基础 在数据库的世界里,`SELECT`语句是获取数据的基础工具,它如同探索数据海洋的指南针,引领我们找到并提取出需要的信息。无论是进行数据分析、报表生成还是简单的数据查询,`SELECT`语句都是不可或缺的一部分。本章节将深入介绍`SELECT`语句的基础用法,包括其基本结构、条件筛选、列的选择、去重、以及简单的排序功能,帮助读者掌握这一强大的数据检索工具。 #### 2.1.1 SELECT语句的基本结构 `SELECT`语句的基本结构相对简单直观,它主要由几个关键部分组成:`SELECT`、`FROM`、以及可选的`WHERE`、`ORDER BY`等子句。下面是一个基本的`SELECT`语句示例: ```sql SELECT column1, column2, ... FROM table_name WHERE condition ORDER BY column_name ASC|DESC; ``` - **SELECT**:指定要从表中检索的列名。如果希望选择所有列,可以使用星号(*)作为通配符。 - **FROM**:指定要从中检索数据的表名。 - **WHERE**(可选):设置条件以过滤记录。只有满足条件的记录才会被检索出来。 - **ORDER BY**(可选):指定根据哪个列或列的组合对结果进行排序,以及排序的方向(升序ASC或降序DESC)。 #### 2.1.2 选择特定的列 在`SELECT`语句中,你可以明确指定需要查询的列名,这样数据库就只会返回这些列的数据。例如,假设有一个名为`employees`的表,包含`id`、`name`、`age`、`department`等列,如果你只对员工的姓名和部门感兴趣,可以这样写: ```sql SELECT name, department FROM employees; ``` #### 2.1.3 使用通配符选择所有列 如果你想要检索表中的所有列,可以使用星号(*)作为通配符。但请注意,这种做法在性能上可能不是最优的,特别是在处理包含大量列的表时。 ```sql SELECT * FROM employees; ``` #### 2.1.4 条件筛选(WHERE子句) `WHERE`子句允许你指定一个或多个条件来过滤查询结果。只有满足这些条件的记录才会被包含在结果集中。条件可以是简单的比较操作(如等于`=`、不等于`<>`、大于`>`、小于`<`等),也可以是复杂的逻辑表达式(使用`AND`、`OR`、`NOT`等逻辑运算符)。 例如,查找`employees`表中年龄大于30岁的员工: ```sql SELECT * FROM employees WHERE age > 30; ``` 或者,查找年龄大于30岁且部门为“IT”的员工: ```sql SELECT * FROM employees WHERE age > 30 AND department = 'IT'; ``` #### 2.1.5 去重(DISTINCT关键字) 如果查询结果中包含重复的行,可以使用`DISTINCT`关键字来去除这些重复项,确保每个结果都是唯一的。`DISTINCT`作用于其后列出的所有列,只有当这些列的组合完全相同时,才被视为重复。 例如,假设`employees`表中存在多个员工属于同一部门,你可以使用`DISTINCT`来列出所有不同的部门名称: ```sql SELECT DISTINCT department FROM employees; ``` #### 2.1.6 排序结果(ORDER BY子句) `ORDER BY`子句允许你根据一个或多个列对查询结果进行排序。默认情况下,排序是升序的(ASC),但你可以通过指定`DESC`来改变为降序排序。 例如,按照年龄升序排列`employees`表中的员工: ```sql SELECT * FROM employees ORDER BY age ASC; ``` 或者,按照部门降序排列,如果部门相同则按年龄升序排列: ```sql SELECT * FROM employees ORDER BY department DESC, age ASC; ``` #### 2.1.7 聚合函数 虽然聚合函数(如`COUNT()`、`SUM()`、`AVG()`、`MAX()`、`MIN()`)本身不是`SELECT`语句的直接组成部分,但它们经常与`SELECT`语句一起使用,以执行更复杂的查询,如计算总数、平均值、最大值、最小值等。这些函数通常与`GROUP BY`子句结合使用,以按一个或多个列对结果进行分组。 例如,计算每个部门的员工数量: ```sql SELECT department, COUNT(*) AS employee_count FROM employees GROUP BY department; ``` #### 2.1.8 小结 `SELECT`语句是SQL中最基础也是最重要的语句之一,它提供了从数据库中检索数据的能力。通过掌握`SELECT`语句的基本结构、列的选择、条件筛选、去重、排序以及聚合函数的使用,你可以有效地从数据库中提取出所需的信息。随着学习的深入,你还将了解到更多高级特性,如子查询、连接(JOINs)、窗口函数等,这些都将进一步扩展你的数据检索能力。但无论如何,`SELECT`语句的基础始终是构建更复杂查询的基石。
上一篇:
第2章 查询基础
下一篇:
列的查询
该分类下的相关小册推荐:
PostgreSQL入门教程
高性能的Postgres SQL
SQL基础教程(中)
SQL基础教程(下)