首页
技术小册
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语句及其种类 在《SQL基础教程(上)》的这一章节中,我们将深入探讨SQL(Structured Query Language,结构化查询语言)这一数据库管理系统的核心组成部分——SQL语句。SQL是一种专门用来与数据库通信的编程语言,它允许用户执行数据的增、删、改、查等操作,以及数据库结构的定义和管理。本章节将详细介绍SQL语句的基本类型及其使用场景,帮助读者构建坚实的SQL知识基础。 #### 一、SQL语句概述 SQL语句是用户向数据库发送指令的载体,通过这些指令,用户可以实现对数据库中数据的各种操作。SQL语句大致可以分为以下几类:数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)、事务控制语句以及嵌入式SQL和动态SQL等。每一类语句都有其特定的用途和语法规则。 #### 二、数据定义语言(DDL) 数据定义语言(DDL)主要用于定义和修改数据库的结构,包括创建、修改、删除数据库对象(如表、索引、视图等)的操作。DDL语句在执行时,通常会自动提交事务,且不可回滚。 - **CREATE**:用于创建新的数据库、表、索引、视图等对象。例如,`CREATE TABLE students (id INT, name VARCHAR(50), age INT);` 这条语句创建了一个名为students的表,包含三个字段:id、name和age。 - **ALTER**:用于修改现有数据库对象的结构。例如,`ALTER TABLE students ADD gender CHAR(1);` 这条语句向students表中添加了一个新字段gender。 - **DROP**:用于删除数据库中的对象,包括表、索引、视图等。例如,`DROP TABLE students;` 会删除students表及其所有数据,操作需谨慎。 - **TRUNCATE**:虽然严格意义上不属于DDL,但常被视为类似DDL的操作,用于删除表中的所有数据,但不删除表本身。`TRUNCATE TABLE students;` 会清空students表中的所有记录,但表结构保持不变。 #### 三、数据操纵语言(DML) 数据操纵语言(DML)主要用于对数据库中的数据进行增、删、改等操作,这些操作会影响数据库的实际数据内容。DML语句执行后,通常需要通过事务控制来确保数据的一致性和完整性。 - **INSERT**:用于向表中插入新数据。例如,`INSERT INTO students (id, name, age, gender) VALUES (1, 'Alice', 20, 'F');` 这条语句向students表中插入了一条新记录。 - **UPDATE**:用于修改表中的数据。例如,`UPDATE students SET age = 21 WHERE id = 1;` 这条语句将students表中id为1的记录的age字段更新为21。 - **DELETE**:用于删除表中的数据。例如,`DELETE FROM students WHERE id = 1;` 这条语句会删除students表中id为1的记录。 - **SELECT**:虽然通常被认为是查询语句,但它也是DML的一部分,因为它用于从数据库中检索数据。`SELECT * FROM students;` 这条语句会查询students表中的所有记录。 #### 四、数据控制语言(DCL) 数据控制语言(DCL)主要用于定义数据库、表、字段、用户的访问权限和安全级别。通过DCL,数据库管理员可以确保数据的安全性和完整性。 - **GRANT**:用于授予用户或角色对数据库对象的访问权限。例如,`GRANT SELECT ON students TO user1;` 这条语句授予user1用户查询students表的权限。 - **REVOKE**:用于收回用户或角色对数据库对象的访问权限。例如,`REVOKE SELECT ON students FROM user1;` 这条语句会收回user1用户对students表的查询权限。 #### 五、事务控制语句 事务控制语句用于管理数据库事务,确保数据的完整性和一致性。事务是一组不可分割的操作序列,它们要么全部成功,要么全部失败。 - **BEGIN TRANSACTION**(或START TRANSACTION):用于标记一个事务的开始。 - **COMMIT**:用于提交事务,将事务中所有对数据库的修改永久保存到数据库中。 - **ROLLBACK**:用于回滚事务,撤销事务中所有对数据库的修改,使数据库恢复到事务开始前的状态。 #### 六、嵌入式SQL与动态SQL - **嵌入式SQL**:将SQL语句嵌入到高级编程语言(如C、Java等)中,以实现数据库操作。这种方式允许开发者在程序中直接编写SQL语句,增强程序的灵活性和功能性。 - **动态SQL**:在程序运行时动态构建的SQL语句。与静态SQL(即事先编写好的SQL语句)相比,动态SQL可以根据程序的需要灵活构建查询条件,但使用时需要注意SQL注入等安全问题。 #### 七、总结 SQL语句是数据库操作的基础,掌握SQL语句的种类及其用法是数据库管理员和开发人员必备的技能。通过本章节的学习,我们了解了SQL语句的基本分类,包括数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)以及事务控制语句等。同时,我们还简要介绍了嵌入式SQL和动态SQL的概念。希望这些内容能够帮助读者建立起对SQL语句的全面认识,为后续深入学习SQL打下坚实的基础。在未来的学习中,读者应继续深化对SQL语句的理解,掌握其语法规则和最佳实践,以便在实际项目中灵活运用。
上一篇:
标准SQL
下一篇:
SQL的基本书写规则
该分类下的相关小册推荐:
SQL基础教程(下)
高性能的Postgres SQL
SQL基础教程(中)
PostgreSQL入门教程