1.SQL注意事项
- SQL对大小写不敏感。
- 在每条 SQL 语句的末端使用分号是在数据库系统中分隔每条 SQL 语句的标准方法。
2.常用的SQL命令
- CREATE DATABASE:用于创建数据库。
- CREATE TABLE:用于创建数据库中的表。
- DROP:用于删除索引、表和数据库。
- ALTER TABLE:用于在已有的表中添加、删除或修改列。ADD关键字用于在表中添加列。DROP关键字用于在表中删除列。ALTER关键字用于在表中修改列。
- SELECT: 用于从数据库中选取数据。
- SELECT DISTINCT: 在表中的一个列可能会包含多个重复值,DISTINCT关键字指定返回列中不同的值,对于相同的值不会重复显示。
- WHERE:WHERE子句用于提取满足指定条件的记录。
- AND & OR: 这两个运算符用于基于一个以上的条件对记录进行过滤。如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
- ORDER BY:该关键字用于对结果集按照一个列或者多个列进行排序。默认按照升序,使用 DESC 关键字可按照降序排序。
- INSERT INTO:用于向表中插入新记录。
- UPDATE:用于更新表中已存在的记录。
- DELETE:用于删除表中的记录。
- SELECT TOP:用于在 SQL 中限制返回的结果集中的行数,用于只需要查询前几行数据的情况,在数据集非常大时,可以显著提高查询性能。
- LIKE:该操作符是用于在
WHERE
子句中进行模糊查询的关键字,允许根据模式匹配来选择数据,通常与通配符一起使用。通配符:- “
%
”表示匹配任意字符(包括零个字符)。 - “
_
”表示匹配单个字符。 - “[charlist]”表示字符列中的任何单一字符。
- “[^charlist]”或“[!charlist]”表示不在字符列中的任何单一字符。
- “
- IN和BETWEEN:IN操作符允许在 WHERE 子句中规定多个值。BETWEEN—AND操作符选取介于两个值之间的数据范围内的值,这些值可以是数值、文本或者日期。
- AS:该关键字可以为表名称或列名称指定别名。
- VIEW:视图是可视化的虚拟表。CREATE VIEW语句用于创建一个视图。不能直接使用 UPDATE 语句来更新视图。DROP VIEW语句用于从数据库中撤销一个已存在的视图。
- GRANT:该语句用于为用户授予特定的访问权限。可以授予的权限包括SELECT、INSERT、UPDATE、DELETE等。
- REVOKE:该语句用于从用户中撤销某些权限。
- SHOW GRANTS FOR:该语句用于查看特定用户的权限。
3.视图(View)
在关系数据库中存在的永久表被称为基表。在关系数据库中,视图是一种虚拟表,它并不存储实际的数据,而是基于一个或多个基表的具有给定名称的查询结果。
视图的作用:
- 限制数据库访问,让特定用户仅访问视图中可用的数据,而不是相应的基表。
- 简化数据访问,信息更少,易于处理。
- 简化复杂查询。
- 允许数据独立。
- 呈现相同数据的不同视图。
视图的特点:
- 虚拟性:视图本身不存储数据,而是动态生成的,内容来自定义视图的查询。
- 简化查询:用户可以通过视图访问复杂的查询结果,而无需了解底层表的结构。
- 安全性:视图可以限制用户访问敏感数据,只显示必要的信息。
视图与表的区别:
- 存储方式:表存储实际数据,而视图仅存储查询逻辑。
- 更新能力:某些视图是可更新的,但通常对复杂的视图更新有限制;表则可以直接进行插入、更新和删除操作。
- 使用场景:视图用于简化数据访问和增强安全性,而表用于存储和管理数据。
视图的更新:
- 并非所有视图都可以更新。
- 需要根据视图的复杂性来判断,只能更新简单视图。
- 简单视图 :使用单个表创建,不包含函数(AVG、SUM 等)或组(GROUP BY)。
4.数据库事务
数据库事务(Database Transaction)是指一组数据库操作的最小逻辑单元,这些操作要么全部成功执行,要么全部失败回滚,确保数据的一致性和完整性。比如,读取或写入数据库的任何操作都是事务。事务是作为单个逻辑工作单元执行的一系列数据库操作。成功的事务会将数据库从一种一致状态更改为另一种一致状态。
事务的特点:
- 原子性(Atomicity):要使事务成功,事务中的所有操作要么全部完成,要么全部不执行,不能存在中间状态。
- 一致性(Consistency):事务执行前后,数据库必须保持一致性,确保数据的完整性约束没有被破坏。
- 隔离性(Isolation):多个事务并发执行时,彼此之间不会相互干扰,确保每个事务的执行结果对其他事务是不可见的,直到提交。
- 持久性(Durability):一旦事务提交,其所做的修改将永久保存在数据库中,即使发生系统崩溃也不会丢失。
事务的结束原因:
- 达到 COMMIT 语句:当事务执行到提交(COMMIT)语句时,所有更改将被永久记录到数据库中。这意味着事务成功完成,所有操作都被确认并保存。
- 达到 ROLLBACK 语句:如果事务执行到回滚(ROLLBACK)语句,所有在该事务中所做的更改将被撤销,数据库将恢复到事务开始之前的状态。这用于处理错误或异常情况。
- 程序成功结束:如果程序正常结束且没有错误,这等同于执行了COMMIT。所有更改将被保存,事务被视为成功。
- 程序未完成终止:如果程序意外终止(例如,断电或崩溃),所有未提交的更改将被自动回滚,数据库将恢复到之前的状态。这确保了数据的一致性和完整性。