SQL 全名是结构化查询语言(Structured Query Language),是用于数据库中的标准数据查 询语言,IBM公司最早使用在其开发的数据库系统中。1986年10 月,美国ANSI 对 SQL 进行规范后,以此作为关系式数据库管理系统的标准语言 (ANSI X3. 135-1986),1987年得到国际标准化组织的支持下成为国际标准。不过各种通行的数据库系统在其实践过程中都 对SQL 规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL 语言不能完 全相互通用。
DML 语句(数据操作语言,对数据库中的数据进行增删改查操作):
insert:在数据库表中插入记录
insert into tableName values(); //一条记录的所有字段都插入
insert into tableName(colum1,colum2,...) values(); //只插入相应字段的数据
update:更新数据库表中的记录内容
delete:删除数据库表中的记录
merge :根据源表对目标表执行插入、更新或删除操作,将结构相同的表中数据记录归并到另一个结构相同的表中,最典型的应用就是进行两个表的数据同步。
select:使用最普遍的语句,用来查询数据库中的数据
DDL 语句(数据定义语言,定义和修改数据库和数据库中的表结构)
Create:可以创建数据库和数据库中的表
Alter:可以修改数据库和数据库中的表结构
Drop:删除数据库和数据库中的表
Truncate:删除表中的所有行,但表结构及其列、约束、索引等保持不变,而且表中的自增字段(如自增id)的数值重新计数。
DCL 语句(数据控制语言,给数据库中的不同用户授予权限和回收权限,保证系统安全)
Grant:给用户授予某些操作数据库或者表的权限:如连接权限、对表的增删改查权限等
Revoke:收回已经授予用户的权限
事务控制语句 :
Commit (提交事务):事务处理完毕后,对事务进行提交
Rollback(事务回退):事务执行过程中出现错误时,可以进行回退,一般回退到之前的保存点或者最近一次正确的状态
Savepoint(保存点):在开启事务的数据操作过程中,设置保存点可以在事务回退后,回退到上一次的保存点,有利于数据库的完整性和一致性
总结:DML数据操纵语言操纵的是数据库表中的数据记录,而DDL数据定义语言操作的是数据库中的表结构和数据库。
delete和Truncate的区别:
delete是DML数据操纵语言,操作后如果对结果不满意可以回退,还可以根据条件删除,一次可以删除一行,也可以删除整个表中的数据,删除记录后表中自增字段不能回收重新利用;
Truncate是DDL数据定义语言,操作完毕不可以回退,默认是删除表中所有数据,而且表中原来的自增字段也可以重新利用,从头开始。