首页
技术小册
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基础教程(上)
### 1-3 SQL概要 在深入探讨SQL(Structured Query Language,结构化查询语言)的具体应用之前,本章旨在为读者提供一个全面而精炼的SQL概要,帮助大家建立起对SQL基本概念、发展历程、核心功能以及其在数据库管理系统中重要性的基本认识。SQL作为数据库管理和操作的标准语言,自其诞生以来,就极大地简化了数据检索、更新、插入和删除等操作,成为连接应用程序与数据库之间不可或缺的桥梁。 #### 1.3.1 SQL的起源与发展 SQL的历史可以追溯到1970年代初,当时IBM的研究员Donald D. Chamberlin和Raymond F. Boyce在开发System R项目时,为了更有效地管理和查询存储在关系数据库中的数据,设计了一种新的查询语言,即SEQUEL(Structured English Query Language,结构化英语查询语言)。然而,由于“SEQUEL”一词的商标问题,最终该语言被命名为SQL,并逐渐成为国际标准。 随着数据库技术的飞速发展,SQL标准也经历了多次修订和完善。目前广泛采用的是由国际标准化组织(ISO)和国际电工委员会(IEC)联合发布的SQL标准,包括SQL:1992、SQL:1999、SQL:2003、SQL:2008、SQL:2011以及最新的SQL:2016等版本。每个新版本都在前一版本的基础上增加了新的特性和改进,以支持更复杂的查询、更好的性能优化以及更广泛的数据类型和处理能力。 #### 1.3.2 SQL的核心功能 SQL的核心功能可以概括为四个方面:数据定义(DDL)、数据操纵(DML)、数据控制(DCL)和事务控制(TCL),以及一些高级特性如视图、索引、存储过程和触发器等。 - **数据定义语言(DDL, Data Definition Language)**:用于定义或修改数据库的结构,包括创建、修改、删除数据库、表、索引等对象。常用的DDL语句有`CREATE`、`ALTER`、`DROP`等。 - **数据操纵语言(DML, Data Manipulation Language)**:用于对数据库中的数据进行增、删、改操作。主要包括`INSERT`(插入数据)、`UPDATE`(更新数据)、`DELETE`(删除数据)以及`SELECT`(查询数据)等语句。其中,`SELECT`语句是SQL中最常用也是功能最强大的语句之一,它允许用户以复杂的方式检索和展示数据。 - **数据控制语言(DCL, Data Control Language)**:用于定义数据库的安全性和完整性约束,包括用户权限的授予和回收等。主要语句有`GRANT`(授权)、`REVOKE`(撤销权限)等。 - **事务控制语言(TCL, Transaction Control Language)**:用于管理数据库事务,确保数据的一致性和完整性。主要语句包括`COMMIT`(提交事务)、`ROLLBACK`(回滚事务)、`SAVEPOINT`(设置保存点)等。 #### 1.3.3 SQL的基本语法结构 SQL语句通常遵循一定的语法结构,虽然不同数据库系统(如MySQL、Oracle、SQL Server等)在细节上可能有所不同,但基本语法结构是相似的。一个典型的SQL语句由以下几个部分组成: - **SELECT子句**:指定要从数据库表中检索哪些列或计算字段。 - **FROM子句**:指定要从哪个表或哪些表中检索数据。 - **WHERE子句**:指定检索数据的条件。 - **GROUP BY子句**:将结果集按照一个或多个列进行分组,通常与聚合函数(如SUM、AVG、COUNT等)一起使用。 - **HAVING子句**:对GROUP BY子句的结果进行过滤,类似于WHERE子句,但作用于分组后的结果集。 - **ORDER BY子句**:指定结果集的排序方式。 此外,SQL还支持连接(JOIN)操作,允许用户根据两个或多个表之间的关联条件,将来自不同表的数据组合在一起。连接类型包括内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN)等。 #### 1.3.4 SQL的高级特性 除了上述核心功能外,SQL还提供了一系列高级特性,以支持更复杂的数据库操作和管理需求。 - **视图(View)**:视图是一种虚拟表,其内容由查询定义。视图可以包含表中的所有行或行的一部分,也可以包含由计算字段或表达式生成的数据。视图对于简化复杂查询、保护数据以及实现数据抽象非常有用。 - **索引(Index)**:索引是数据库表中一个或多个列的值的排序列表,用于加快数据检索速度。索引可以极大地提高查询性能,但也会占用额外的存储空间,并可能影响数据插入、删除和更新的性能。 - **存储过程(Stored Procedure)**:存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户可以通过指定存储过程的名字并给它传递参数(如果有的话)来执行它。存储过程可以简化复杂的操作,提高代码的重用性,并有助于减少网络流量。 - **触发器(Trigger)**:触发器是一种特殊类型的存储过程,它会在指定的数据库表上执行INSERT、UPDATE或DELETE操作之前或之后自动执行。触发器可以用于维护数据的完整性、实现复杂的业务规则以及自动化数据库管理任务。 #### 1.3.5 SQL在数据库管理系统中的重要性 SQL作为数据库管理系统的核心语言,其重要性不言而喻。它不仅是数据库管理员(DBA)进行数据库设计、管理和维护的重要工具,也是开发人员实现数据访问和业务逻辑的关键手段。通过SQL,用户可以高效地存取数据,实现数据的增、删、改、查等操作,同时利用SQL提供的高级特性,如视图、索引、存储过程和触发器等,来优化数据库性能、保障数据安全、实现复杂的业务逻辑。 总之,SQL是连接应用程序与数据库之间的桥梁,是数据库管理和操作不可或缺的语言。掌握SQL,对于从事数据库相关工作的人员来说,是迈向成功的关键一步。在接下来的章节中,我们将逐步深入SQL的各个方面,从基础语法到高级特性,从简单查询到复杂操作,全面系统地介绍SQL的知识体系和应用技巧。
上一篇:
表的结构
下一篇:
标准SQL
该分类下的相关小册推荐:
PostgreSQL入门教程
高性能的Postgres SQL
SQL基础教程(下)
SQL基础教程(中)