Oracle的DDL、DML、DCL

开发工具与关键技术:VS2015、JavaScript、jQuery
作者:曾浩源
撰写时间:2019.3.30

DDL以下这些DDL的命令,操作后,皆不可回滚!

创建表
Create table tablename values (id number(8),money number(6,2));
DESCRIBE dept 确认

数据类型 描述
VARCHAR2(size) 可变长字符数据
CHAR(size) 定长字符数据
NUMBER(p,s) 可变长数值数据
DATE 日期型数据
LONG 可变长字符数据,最大可达到2G
CLOB 字符数据,最大可达到4G
RAW (LONG RAW) 原始的二进制数据
BLOB 二进制数据,最大可达到4G
BFILE 存储外部文件的二进制数据,最大可达到4G
ROWID 行地址

create table tablename1 as select * from employees;
子查询创建表,tablename1 完全复制employees表
create table tablename2 as select * from employees where 1=2;
子查询创建表,tablename2 复制过来后是个空表,没有数据

ALTER TABLE table
ADD (newcolumn VARCHAR2(9)); 追加一个新列

ALTER TABLE table
MODIFY (oldcolumn number(9,2) default 1000);
修改一个列 可以修改数据类型、尺寸和默认值

ALTER TABLE table
DROP COLUMN oldcolumn ; 删除一个列

ALTER TABLE table
RENAME COLUMN oldcolumn TO newcolumn ; 重命名一个列

DROP TABLE table; 删除表

TRUNCATE TABLE table; 清空表 不能回滚

RENAME table TO my_dept; 改变对象名称 必须是对象拥有者

以上这些DDL的命令,操作后,皆不可回滚!

使用 DML 语句

向表中插入数据 修改现存数据 删除现存数据

向表中插入数据 可在插入的值 进行类型的转换
INSERT INTO table [(column [, column…])]
VALUES (value [, value…]);

隐式方式: 在列名表中省略该列的值
INSERT INTO departments (department_id,department_name)
VALUES (30, ‘Purchasing’);

显示方式: 在VALUES 子句中指定空值。
INSERT INTO departments
VALUES (100, ‘Finance’, NULL, NULL);
1 row created.

创建脚本
& 变量放在VALUES子句中
INSERT INTO departments
(department_id, department_name, location_id)
VALUES (&department_id, ‘&department_name’,&location);

从其它表中拷贝数据
INSERT INTO emp2
SELECT *
FROM employees
WHERE department_id = 90;

UPDATE 语句更新数据。
UPDATE table
SET column = value [, column = value, …]
[WHERE condition];

DELETE 语句从表中删除数据。
DELETE FROM table
[WHERE condition];
语句 功能
INSERT 插入
UPDATE 修正
DELETE 删除
COMMIT 提交
SAVEPOINT 保存点
ROLLBACK 回滚

使用 DCL 语句

创建用户和设置密码
CREATE USER scott
IDENTIFIED BY tiger;
给予 CREATE SESSION(创建会话)
CREATE TABLE(创建表)
CREATE SEQUENCE(创建序列)
CREATE VIEW(创建视图)
CREATE PROCEDURE(创建过程)
的权限
GRANT create session, create table,
create sequence, create view,CREATE PROCEDURE
TO scott;
分配用户表空间
用户拥有create table权限之外,还需要分配相应的表空间才可开辟存储空间用于创建的表
ALTER USER atguigu01 QUOTA UNLIMITED
ON users

DBA 可以创建用户和修改密码
用户本人可以使用 ALTER USER 语句修改密码
ALTER USER scott
IDENTIFIED BY lion;
在这里插入图片描述
分配表 EMPLOYEES 的查询权限
GRANT select
ON employees
TO sue, rich;

分配表中各个列的更新权限
GRANT update
ON scott.departments
TO atguigu

使用户同样具有分配权限的权利
GRANT select, insert
ON departments
TO scott
WITH GRANT OPTION;

向数据库中所有用户分配权限
GRANT select
ON alice.departments
TO PUBLIC;
收回对象权限
REVOKE select, insert
ON departments
FROM scott;

语句 功能
CREATE USER 创建用户(通常由DBA完成)
GRANT 分配权限
CREATE ROLE 创建角色(通常由DBA完成)
ALTER USER 修改用户密码
REVOKE 收回权限

数据字典视图 描述
ROLE_SYS_PRIVS 角色拥有的系统权限
ROLE_TAB_PRIVS 角色拥有的对象权限
USER_ROLE_PRIVS 用户拥有的角色
USER_TAB_PRIVS_MADE 用户分配的关于表对象权限
USER_TAB_PRIVS_RECD 用户拥有的关于表对象权限
USER_COL_PRIVS_MADE 用户分配的关于列的对象权限
USER_COL_PRIVS_RECD 用户拥有的关于列的对象权限
USER_SYS_PRIVS 用户拥有的系统权限

猜你喜欢

转载自blog.csdn.net/qq_41657790/article/details/88908694