数据库语言分类
SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。DQL(Data Query Language)
数据库查询语言,关键字为SELECT
SELECT select_list
[ INTO new_table ]
FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
特别说明下SELECT INTO 语句,MySQL不支持该语句。作用为:
- 从一个表中选取数据,然后把数据插入另一个表中
SELECT *
INTO new_table_name [IN externaldatabase]
FROM old_tablename
SELECT column_name(s)
INTO new_table_name [IN externaldatabase]
FROM old_tablename
- 用于创建表的备份复制或者用于对记录进程存档
将Persons备份至Persons_backup
SELECT *
INTO Persons_backup
FROM Persons
在MySQL中可以用如下方法代替:
方法1:CREATE TABLE bk(SELECT * FROM USER);
方法2:INSERT INTO bk SELECT * FROM user
DML(Data Manipulation Language)
数据操纵语言
- INSERT
- UPDATE
- DELETE
DDL(Data Definition Language)
数据定义语言,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,索引,聚簇,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。
DDL操作是隐性提交的!不能rollback
DCL(Data Control Language)
数据控制语言,DCL是用来设置或更改数据库用户或角色权限的语句
- GRANT:授权
- REVOKE:回收权限
- CREATE USER:创建用户
TCL(TransactionControl Language)
事务控制用于,用来控制数据库事务,维护数据完整性
- SET AUTOCOMMIT 设置是否开启事务
- ROLLBACK 回滚
- COMMIT 提交
- SAVEPOINT 保存点,使当前的事务可以回退到指定的保存点,便于取消部分改变
数据提交的三种类型
数据库的插入、修改和删除操作时,只有当事务在提交到数据库是才算完成。提交数据有三种类型:显式提交、隐式提交及自动提交。显式提交
AUTOCOMMIT设置为OFF,然后开启事务,当SQL执行完毕后,运行COMMIT命令将本次事务提交,此时数据库才会发送改变。
SQL>COMMIT;
隐式提交
用SQL命令间接完成的提交为隐式提交。这些命令是:
ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,
EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。
自动提交
AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,
系统将自动进行提交。AUTOCOMMIT的默认值为ON。
修改AUTOCOMMIT 的值:
SQL>SET AUTOCOMMIT ON;