数据库语言之【DDL/DML/TCL/DCL篇】

******************************************

数据库语言之【DDL/DML/TCL/DCL篇】

******************************************

1.===数据定义语言DDL====

--CREATE表的约束
CREATE TABLE TEMP(
   EMPNO NUMBER,
   ENAME VARCHAR2(200),
   DEPTNO NUMBER,
   EDATE DATE DEFAULT SYSDATE,     --默认值
   ADDRESS VARCHAR2(200) NOT NULL, --非空
   SAL NUMBER(8,2) CONSTRAINT EMP_SALARY_MIN CHECK (SAL>0), --检查
   CONSTRAINT AA FOREIGN KEY(DEPTNO) REFERENCES DEPT(DEPTNO),--外键
   CONSTRAINT BB UNIQUE(ENAME),      --唯一
   CONSTRAINT CC PRIMARY KEY(EMPNO));--主键

--ALTER
ALTER TABLE TEMP MODIFY (TID NUMBER(5));   --修改列,当表中有值的时候不允许
ALTER TABLE TEMP ADD(TADD VARCHAR2(2000)); --添加列
ALTER TABLE TEMP DROP COLUMN TADD;         --删除列
ALTER TABLE EMP RENAME TO NEWNAME;         --RENAME表的重命名
RENAME EMP TO NEWENAME
ALTER TABLE EMP RENAME COLUMN ENAME TO AAA; --重命名列名
TRUNCATE TABLE TEMP; --TRUNCATE截断表,保留结构。不能回滚
--DROP
DROP USER NEWER CASCADE;            --删除用户(级联)
DROP TABLESPACE INCLUDING CONTENTS; --删除表空间(包含的所有内容)
DROP TABLE TEMP; --删除表,从数据库中删除表及全部数据

需求如下:重建母表dept1,但不要影响字表emp1与dept1建立关系
drop table dept1;
create table dept1 as select * from dept;
ALTER table dept1 add constraints aa primary key(deptno);

drop table emp1;
create table emp1 as select * from emp;
ALTER table emp1 add constraints cc primary key(empno);
ALTER table emp1 add constraints bb foreign key(deptno) REFERENCES DEPT1(DEPTNO);

做法如下:
1.先删除外键关系
ALTER table emp1 drop constraints bb ;

2.删除母表,重建母表
drop table dept1;
create table dept1 as select * from dept;
ALTER table dept1 add constraints aa primary key(deptno);

3.建立外键关系
ALTER table emp1 add constraints bb foreign key(deptno) REFERENCES DEPT1(DEPTNO);

2.===数据操纵语言DML====

SELECT\INSERT\UPDATE\DELETE

CREATE TABLE TEMP AS SELECT * FROM EMP; --利用现有表创建新表
INSERT INTO TEMP(ENAME) SELECT ENAME FROM EMP ;--向表插入现有表的数据
--使用别名 三种方法,真接写,AS,加""号

3.===事务控制语言TCL(COMMIT,SAVEPOINT,ROLLBACK)====
--提交
COMMIT WORK;
COMMIT;
--保存点(标记)
SAVEPOINT SNAME;
--回滚
ROLLBACK;
ROLLBACK TO SAVEPOINT SNAME;

--事务示例
UPDATE EMP SET ENAME='AAA' WHERE EMPNO=7369;
SAVEPOINT SAVENAME;
DELETE EMP WHERE EMP=7369;
SAVEPOINT SAVENAME1;
ROLLBACK TO SAVEPOINT SAVENAME;
COMMIT;
4.===数据控制语言 DCL(GRANT,REVOKE)====
--将对象的权限授予用户
GRANT ALL ON EMP TO USERNAME;
GRANT SELECT,UPDATE,DELETE,INSERT ON EMP TO USERNAME;

--将角色的权限授予用户
GRANT CONNECT TO USERNAME; --连接数据库
GRANT RESOURCE TO USERNAME; --使用数据表空间
GRANT UNLIMITED TABLESPACE TO USERNAME;--表空间无限增长
GRANT GRANT ANY PRIVILEGE TO USERNAME; --授予可以授权的权限

--删除用户权限
REVOKE CONNECT FOR USERNAME; --删除角色权限
REVOKE SELECT ON EMP FOR USERNAME;--删除对象权限









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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值