Oracle 示例1

解锁用户

ALTER USER SCOTT ACCOUNT UNLOCK;  --解锁用户

修改密码

ALTER USER SCOTT IDENTIFIED BY ok;--修改密码

查看拥有的表和每个表的每一列

SELECT * FROM USER_TABLES;
SELECT * FROM USER_TAB_COLS;--SELECT * FROM USER_TAB_COLUMNS;

延迟段技术

使创建的序列使用时默认序列从1开始

ALTER SYSTEM SET deferred_segment_creation=FALSE; 

创建查询删除表空间

CREATE TABLESPACE TAB_TEST
DATAFILE 'TAB_TEST.dbf'   --指定数据文件
SIZE 30M                  --文件大小
AUTOEXTEND ON NEXT 10M    --自增
MAXSIZE UNLIMITED         --最大值
LOGGING                   --记录日志
EXTENT MANAGEMENT LOCAL   --执行内容已本地化管理 注意是extent不是extend
SEGMENT SPACE MANAGEMENT AUTO;--表空间中段的管理方式为自动化管理方式

--简略方式
CREATE TABLESPACE TAB_TEST_TEMP
DATAFILE 'TAB_TEST_TEMP'
SIZE 10M;


SELECT * FROM dba_data_files;

--删除表空间
DROP TABLESPACE TAB_TEST;
DROP TABLESPACE TAB_TEST_TEMP;


--查看删除的效果(不会显示结果
SELECT * FROM dba_data_files
       WHERE TABLESPACE_NAME='TAB_TEST'
       OR TABLESPACE_NAME ='TAB_TEST_TEMP' ;

创建查看删除用户

SELECT * FROM DBA_USERS;--查询所有USER 信息很多
SELECT * FROM DBA_ROLE_PRIVS;--查询所有角色
--SELECT * FROM ALL_USERS;--查询所有USER 默认按照创建日期排序

--创建用户
CREATE USER baozi2
IDENTIFIED BY ok
DEFAULT TABLESPACE TAB_TEST ;
--TEMPORARY TABLESPACE [一个临时表]

--查看创建的用户
SELECT * FROM DBA_USERS WHERE USERNAME='BAOZI2';--注意 ''里面的内容区分大小写!


--删除用户
DROP USER baozi2 CASCADE;
--CASCADE:级联删除,比如删除某个表的时后面加上,
--会在删除这个表的同时删除和该表有关系的其他对象
--查看删除之后效果(不会显示有结果
SELECT * FROM DBA_USERS WHERE USERNAME='BAOZI2';

用户授权撤销

--赋予用户角色
GRANT CONNECT,RESOURCE TO baozi2;
--GRANT SELECT ON 表名 TO 用户 允许某个用户查询某个表中的记录
--GRANT UPDATE ON 表名 TO 用户 允许某个用户更新某个表中的记录

--查看赋予的角色效果
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE='BAOZI2';


--撤销用户角色
REVOKE CONNECT,RESOURCE FROM baozi2;
--查看撤销角色之后的效果(不会显示有结果
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE='BAOZI2';

建表添加约束

CREATE TABLE dept
(
       id number  primary key,
       dept_name varchar2(50)
);
CREATE TABLE person
(
       id number primary key,
       name varchar2(20),
       age number(3) DEFAULT 20,
       address varchar2(50),
       birthday date DEFAULT sysdate,--设置默认值
       dept_id number
);--number默认{p=38,s=0} number(2)表示整数 number(3,2)表示浮点数

--添加外键约束
ALTER TABLE PERSON
      ADD CONSTRAINT FK_person_deptId FOREIGN KEY (dept_id) REFERENCES DEPT(id);

--SELECT * FROM USER_CONSTRAINTS;
--SELECT * FROM USER_CONS_COLUMNS;
--查看刚才创建的表的数据类型、默认值(表的信息
SELECT TABLE_NAME,COLUMN_NAME,DATA_TYPE,DEFAULT_LENGTH,DATA_DEFAULT
FROM USER_TAB_COLUMNS;
--查看刚才创建的主键、唯一约束、外键约束(表的约束 USER_CONSTRAINTS  USER_CONS_COLUMNS
SELECT cu.*,au.CONSTRAINT_TYPE
FROM USER_CONS_COLUMNS cu, USER_CONSTRAINTS au
WHERE cu.CONSTRAINT_NAME = au.CONSTRAINT_NAME
      AND (au.CONSTRAINT_TYPE = 'P'
           OR au.CONSTRAINT_TYPE = 'U'
           OR au.CONSTRAINT_TYPE = 'R'
          )
      AND (au.TABLE_NAME ='PERSON'OR au.TABLE_NAME ='DEPT');
--查看外键引用表的名称
SELECT ucc.TABLE_NAME,ucc.COLUMN_NAME
FROM USER_CONSTRAINTS uc,USER_CONS_COLUMNS UCC
WHERE uc.R_CONSTRAINT_NAME = ucc.CONSTRAINT_NAME
      AND uc.CONSTRAINT_NAME = 'FK_PERSON_DEPTID';




--快速创建表:完整表--------------------------------
CREATE TABLE EMP_BAKEUPS1
AS
  SELECT * FROM EMP;
CREATE TABLE DEPT_BAKEUPS1
AS
   SELECT * FROM DEPT;

--快速创建表:排序分组等查询之后结果创建到新表------
CREATE TABLE EMP_BAKEUPS2
AS
   SELECT ENAME 名字,JOB 职位,HIREDATE 入职时间,SAL 工资,DEPTNO 部门号 FROM EMP WHERE SAL > 2000 ORDER BY SAL DESC;

--快速创建表:只保留表结构--------------------------
CREATE TABLE EMP_STRUCT
AS
  SELECT * FROM EMP WHERE 1=2;

查看创建删除序列

CREATE SEQUENCE  dept_seq
START WITH 1     --起始位置
INCREMENT BY 1   --增量为1
NOMAXVALUE       --没有最大值
CACHE 10         --缓存10条记录

CREATE SEQUENCE  person_seq
START WITH 1     --起始位置
INCREMENT BY 1   --增量为1
NOMAXVALUE       --没有最大值
CACHE 10         --缓存10条记录

SELECT * FROM USER_SEQUENCES;--查看用户创建的序列

DROP SEQUENCE person_seq;
DROP SEQUENCE dept_seq;

你可能感兴趣的:(Oracle 示例1)