入门精通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>]... |
用户的某权限被回收,则它所授予其它用户的这个权限也会被收回。