JDBC
Java Data Base Connective java与数据库交换的驱动接口
SQL
Struct Query Language 定义4类 DQL(数据查询语言)、DML(数据操作语言)、DCL(数据控制语言)、DDL(数据定义语言)
- DQL (Data Query Language) 查询
- DCL (Data Control Language)数据库授予或回收权限(grant、deny、revoke),控制事物的时间、效果(commit),已经对数据库的实时监控。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL。
- DML (Data Manipulation Language) 包括增、删、改
- DDL (Data Definition Language) 包括表、视图、
索引、同义词、聚簇的Alter、 Drop、Create。
事物
##ACID
- Atomicity 原子性 要么都执行完毕,要么全部回滚。
- Consistent 一致性 数据库总是从一个状态转换到另一个转态(逻辑上正确,例如A转账给B 100,则开始A =100 B=0,事物执行后 A=0,B=100。不能出现A=0,B=0(A转出,B还没有到账)。
- Isoilation 隔离性 多个事情并发执行,不互相干扰。
a. read uncommit 事物B可以读取事物A在处理过程中(未commit)的所有值。事物B读到了脏数据。
b. read commit 事物B只能读到事物A commit后的值。避免脏数据,但是其他事物C也可以改变值,导致事物B中多次读取的值不一样。
c. repeat read 事物B的执行过程中,重复读取到的值是一样的。可以简单理解为事物B每次读取的都是事物B刚开始的时候的数据库的一个快照。如果中间有其他事物C改变了值。事物B读取的还是事物B刚开始的时候的快照。事物C对B不可见。
另外:幻读,指事物C删除了一条记录,但是事物B还是能够读取到这条记录。 幻读在前三种事物隔离级别都会出现。
d. serialize 事物串行执行 - Duration 持久性