Oracle学习-------DDL,DML,TCL,DCL

1.DDL

数据定义语句 (Data Definition Language) :

DDL语句包括:create、alter、drop 、truncate 

1.1 CREATE

Oracle常用数据类型:
在这里插入图片描述

1.1 表级操作

1.1.1 创建表

---创建学生表
CREATE TABLE STUDENT(
       STU_ID NUMBER PRIMARY KEY,     ---主键约束
       STU_NAME VARCHAR(10) NOT NULL, ---非空约束
       STU_SEX CHAR(1) DEFAULT 'F',   ---默认值
       STU_AGE NUMBER(3),
       STU_IDCARD VARCHAR2(18) UNIQUE ---唯一键约束
);
---创建课程表
CREATE TABLE COURSE(
       C_ID NUMBER PRIMARY KEY,
       C_NAME VARCHAR2(20) NOT NULL
);
---创建分数表
CREATE TABLE SCORE(
       C_ID NUMBER,
       STU_ID NUMBER,
       SCORE NUMBER(4,1),
       PRIMARY KEY(C_ID,STU_ID),      ---主键约束
       FOREIGN KEY (C_ID) REFERENCES COURSE(C_ID),  ---外键约束
       FOREIGN KEY (STU_ID) REFERENCES STUDENT(STU_ID)
);
---根据查询的数据创建表
CREATE TABLE A 
AS 子查询;

---复制某个表结构
CREATE TABLE A
AS SELECT * FROM B WHERE 1=2;

---复制某个表的结构和数据
CREATE TABLE A
AS SELECT * FROM B WHERE 1=1;

---复制某个表的部分数据
CREATE TABLE A
AS SELECT1,列2.... FROM B WHERE 条件;

1.1.2 修改表结构

---添加一列
ALTER TABLE STUDENT ADD COL1 VARCHAR2(10);

---添加多列
ALTER TABLE STUDENT ADD(COL2 NUMBER,COL3 NUMBER);

---修改某个字段的类型
ALTER TABLE STUDENT MODIFY(COL1 NUMBER);

---修改多个字段的类型
ALTER TABLE STUDENT MODIFY(COL2 VARCHAR2(1),COL3 VARCHAR2(1));

---增加或者修改字段的约束
ALTER TABLE STUDENT MODIFY(COL1 UNIQUE);

---修改列名
ALTER TABLE STUDENT RENAME COLUMN COL1 TO COL4;

---删除某列数据
ALTER TABLE STUDENT DROP COLUMN COL2;

---删除多列数据
ALTER TABLE STUDENT DROP(COL3,COL4);

1.1.3 删除表

---删除整个表数据
DELETE FROM STUDENT;
TRUNCATE TABLE STUDENT;

---删除表
DROP TABLE STUDENT;

1.2 视图操作

---创建视图
CREATE VIEW <视图名> [(<列名>[,<列名>,....])]
AS <子查询>
[WITH CHECK OPTION];

WITH CHECK OPTION:表示对视图进行UPDATE,INSERT和DELETE操作时要保证更新,插入或者删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)。

CREATE VIEW STU_SEX_VIEW
AS SELECT * FROM STUDENT WHERE STU_SEX = 'F'
WITH CHECK OPTION;

因为存在WITH CHECK OPTION,所以更新数据时都会进行STU_SEX = 'F’的判断。
删除视图

DROP VIEW 视图名

1.3 索引操作

创建索引

CREATE [UNIQUE][CLUSTER] INDEX <索引名>
ON <表名><列名>[<次序>][,<列名>[次序],.....])

UNIQUE 表明此索引的没一个索引值只对应唯一的数据记录
CLUSTER表明建立的索引是聚簇索引。

修改索引

ALTER INDEX <旧索引名> RENAME TO <新索引名>;

删除索引

DROP INDEX <索引名>

2.DML

和MySQL语法基本相同,参照我之前的MySQLMySQL基础语法

3.TCL

事务控制语句(Transaction Control Language):
TCL语句包括:commit、rollback、savepoint

4. DCL

DCL主要进行权限的管理

4.1 GRANT

GRANT <权限>[,<权限>]...
ON <对象类型><对象名>[,<对象类型><对象名>]....
TO <用户>[,<用户>]....
[WITH GRANT OPTION]

---把student表和course表的全部操作权限授予用户U2和U3
GRANT ALL PRIVILEGES
ON TABLE STUDENT,COURSE
TO U2,U3

---把sc表的查询权限授予给所有用户
GRANT SELECT 
ON TABLE SC
TO PUBLIC;

---把查询student表和修改学生学号的权限授给u4
GRANT SELECT,UPDATE(SNO)
ON TABLE STUDENT
TO U4
WITH GRANT OPTION;

4.2 REVOKE

REVOKE <权限>[,<权限>]...
ON <对象类型><对象名>[,<对象类型><对象名>]....
FROM <用户>[,<用户>]...[CASCADE|RESTRICT]

---收回用户U4修改学生学号的权限
REVOKE UPDATE(SNO)
ON TABLE STUDENT
FORM U4;

---收回多有用户会表sc发查询权限
REVOKE SELECT 
ON TABLE SC
FROM PUBLIC;
---吧用户U5对sc表的insert权限收回
REVOKE INSERT 
ON TABLE SC
FROM U5 CASCADE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值