SQL的四个组成部分,到底是怎么分的?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL的四个组成部分,到底是怎么分的?相关的知识,希望对你有一定的参考价值。
参考技术A(1)数据定义语言,即SQL DDL,用于定义SQL模式、基本表、视图、索引等结构。
(2)数据操纵语言,即SQL DML。数据操纵分成数据查询和数据更新两类。
(3)数据查询语言,即SQL DQL。
(4)数据控制语言,即SQL DCL,这一部分包括对基本表和视图的授权、完整性规则的描述、事务控制等内容。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
扩展资料:
SQL可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录入数据、建立数据库、査询、更新、维护、数据库重构、数据库安全性控制等一系列操作,这就为数据库应用系统开发提供了良好的环境,在数据库投入运行后,还可根据需要随时逐步修改模式,且不影响数据库的运行,从而使系统具有良好的可扩充性。
事务的四个特性和事务的隔离级别
什么是事务?
一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。
一个事务可以是一条SQL语句,一组SQL语句或整个程序。
所以说事务是和数据库相关联的,事务的四个特性和事务的隔离级别也是关于数据库的。
事务的四个特性的理解(ACID)
1、原子性(Atomicity)
如果开启一个事务,那么这个事务所包含的sql语句要么全部执行,要么全部不执行,前面说过一个事务可以是一条SQL语句,一组SQL语句或整个程序。
例子:转账事务:A向B转100元,要么A失去100元,B得到100元,转账成功,要么A的100元还在,B没收到A的100元,转账失败
2、一致性(Consistency)
事务对于对于数据库的增删修改操作,要保证数据的一致,
举个例子:转账操作 A账户1000元,B账户没钱,AB之间相互转账,要保证总数是1000元,不可能多了或少了,这就是一致性;说白了就是现实中的数据必须有来源,有去向,不会凭空出现或者消失。
3、隔离性(Isolation)
事务的隔离性也有称作独立性,是指两个以上的事务不会出现交错执行的状态。因为这样可能会导致数据不一致。
4、持久性(Durability)
事务执行成功后,对数据库的修改是永久的,不会无缘无故地回滚。
事务的隔离级别的理解
Read uncommitted(读未提交) 发生了脏读
一个事务可以读取另一个事务未提交的数据
一个事务对数据库做出了修改但是没有提交(commit),这时候我们可以读到(查询到)修改的数据,但是如果这个事务回滚(rollback),我们之前读到的数据就是脏数据,是无效的数据。总的来说这个隔离级别会发生脏读的情况
Read Committed(读已提交) 解决了脏读,发生了不可重复读
一个事务要等到另一个事务提交之后才能读取数据。
例子:A银行卡有100元,这时他的妻子把100元转走了,当A去消费的时候发现卡里的100元没有了
一个事务的范围内两次相同的查询却得到不同的数据,这就是发生了不可重复读
Repeatable Read(可重复读) 解决了脏读和不可重复读,发生了幻读
在一个事务开启的时候就不允许其它事务去做修改的操作。
A事务开启对数据库进行修改,同时B事务在对数据库进行查询,B第一次查询结束的时候A提交了修改,当B再次查询的时候发现两次数据不一样,这就是幻读。
Serializable(序列化) 解决了脏读,不可重复读和幻读
最高的事务隔离级别,代价花费最高,性能很低,很少使用,在此级别下,事务顺序执行,避免上述产生的情况。
以上是关于SQL的四个组成部分,到底是怎么分的?的主要内容,如果未能解决你的问题,请参考以下文章