入门精通3-表修改与权限
数据操作(增删改)和数据库权限学习笔记
DML
插入
insert
语句用于向数据表插入数据的功能。
单条插入
1 | INSERT INTO [USER.]tableName[@db_link] [(column1 [,column2][,column3]...)] |
tableName
:插入的表名db_link
:数据库链接名
批量插入
1 | INSTER INTO [USER.]TABLENAME[@DB_LINK] [(COLUMN1) [,COLUMN2] [,COLUMN3]...] SUBQUERY |
SUBQUERY
:SELECT
语句,查询出的值与前面的column
的数据类型相匹配,即返回的值要满足表中列的约束。
更新
1 | UPDATE table_name |
subquery
:子查询,在UPDATE
语句中使用查询时,要保证返回的为单一值。否则会报错
删除
DELETE
删除
1 | DELETE FROM table_name |
TRUNCATE
删除
1 | TRUNCATE TABLE table_name [REUSE STORAGE || DROP STORAGE] |
使用这个语句删除是没有交易限制的,而且不会产生回滚信息。REUSE STORAGE
:删除记录后仍然保存记录占用的空间DROP STORAGE
:删除记录后回收记录占用的空间
数据控制
授权
SQL
用GRANT
语句向用户授权
1 | CRANT <权限1> [,<权限2>] [,<权限3>]... |
其中对象关系、对象、权限的关系如下
对象 | 对象类型 | 操作权限 |
---|---|---|
属性列 | TABLE COLUMN |
SELECT 、INSERT 、UPDATE 、DELETE 、ALL PRIVILEGES |
视图 | TABLE VIEW |
SELECT 、INSERT 、UPDATE 、DELETE 、ALL PRIVILEGES |
基表 | TABLE |
SELECT 、INSERT 、UPDATE 、DELETE 、ALTER 、INDEX 、ALL PRIVILEGES |
数据库 | DATABASE |
CREATETAB |
在授予用户属性列的权限时,需要指明授予权限相应的列名权限(列名)
[WITH GRANT OPTION]
:表示被授权的用户可以将该权限授予其他用户
撤销
授予的权限可以由DBA
或者授权者通过REVOKE
语句收回
1 | REVOKE <权限1> [,<权限2>] [,<权限3>]... |
用户的某权限被回收,则它所授予其它用户的这个权限也会被收回。