解锁用户
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;