Oracle最全基础教程
用户与权限
创建用户
CREATE USER USER_NAME IDENTIFIED BY PASSWD; --创建用户
修改密码
ALTER USER USER_NAME IDENTIFIED BY NEW_PASSWD; --修改新密码
--修改用户密码
PASSWD USER_NAME;
删除用户
--可选参数 CASCADE
DROP USER USER_NAME [CASCADE];
--注意:
/*
在进行删除用户操作时,如果此用户已创建表,删除时需要加参数“CASCADE”,它具有级联的作用
*/
给用户赋权限
GRANT 权限/角色 TO USER_NAME;
收回用户权限
REVOKE 权限/角色 FROM USER_NAME;
系统权限
-- “系统权限是数据库管理相关的权限”
CREATE SESSION --登录权限
CREATE TABLE --建表权限
CREATE INDEX --创建索引权限
CREATE VIEW --创建视图权限
CREATE SEQUENCE --创建序列权限
CREATE TRRIGER --创建触发器权限
连接角色
--“是授予用户的最基本的权利,能够连接到Oracle数据中,能够访问其他用户的表权限时”
CREATE SESSION --创建会话
CREATE VIEW --创建视图
CREATE SEQUENCE --创建序列
资源角色
--“具有创建表、序列、视图的权限”
CREATE TABLE --创建表
CREATE TRIGGER --创建触发器
CREATE PROCEDURE --创建过程
CREATE SEQUENCE --创建序列
CREATE TYPE --创建类型
DBA角色
--“是授予系统管理员的,拥有该角色的用户即系统管理员,拥有系统的所有权限”
表空间
--创建表空间
CREATE TABLESPACE SPACE_NAME
--DATAFILE '/' 指向数据文件路径
--SIZW NM 表示初始化表空间为N(M)
--AUTOEXTEND ON NEXT 2M 自动扩展,每次扩展2M
--MAXSIZE UNLIMITED UNLIMITED最大扩展没有限制,N(M)最大扩展到N(M)
创建用户指定默认表空间
CREATE USER USER_NAME IDENTIFIED BY PASSWD DEFAULT TABLESPACE SPACE_NAME
修改用户默认表空间
ALTER USER USER_NAME IDENTIDIED BY PASSWD DEFAULT TABLESPACE SPACE_NAME
查看表表空间
SELECT * FROM v$TABLESPACE
查看用户默认表空间
SELECT USERNAME, DEFAULT_TABLESPACE FROM DBA_USERS WHERE USERNAME = 'SCOTT';
--用户名SCOTT必须为大写
表结构操作
--创建表1
CREATE TABLE TABLE_NAME(
COLUMN_1 DATA_TYPE,
COLUMN_2 DATA_TYPE
);
--创建表2
CREATE TABLE TABLE_NAME AS SELECT COLUMN_1, COLUMN_2 ...FROM TABLE_NAME;
--修改表
ALTER TABLE 语句添加、修改或删除列的语法
--添加列
ALTER TABLE TABLE_NAME ADD(
COLUMN_1 DATA_TYPE,
COLUMN_2 DATA_TYPE
);
ALTER TABLE TABLE_NAME ADD COLUMN_1 DATA_TYPE;
--修改列
ALTER TABLE TABLE_NAME MODIFY(
COLUMN_1 DATA_TYPE
);
--删除列
ALTER TABLE TABLE_NAME DROP(
COLUMN_1,
COLUMN_2
);
--修改表名称
RENAME TABLE TO NEW_TABLE_NAME
--修改列名
ALTER TABLE TABLE_NAME RENAME COLUMN OLD_COLUMN TO NEW COLUMN;
--查看表结构
DESC 表名;
约束
约束
- 非空约束(NOT NULL)
- 唯一约束(UNIQUE)
- 主键约束(PRIMARY KEY)
- 外键约束(FOREIGN KEY)
- 条件约束(CHECK)
- 约束存在表中(USER_CONSTRAINTS)
非空约束(NOT NULL)
--添加非空
CREATE TABLE TABLE_NAME(
COLUMN_1 DATA_TYPE,
COLUMN_2 DATA_TYPE NOT NULL
);
ALTER TABLE TABLE_NAME MODIFY COLUMN_NAME NOT NULL;
--删除非空约束
ALTER TABLE TABLE_NAME MODIFY COLUMN_NAME NULL;
唯一约束(UNIQUE)
--添加唯一
CREATE TABLE TABLE_NAME(
COLUMN_1 DATA_TYPE,
COLUMN_2 DATA_TYPE UNIQUE
);
--修改唯一
ALTER TABLE TABLE_NAME ADDCONSTRAINT sUNIQUE_NAME UNIQUE (COLUMN_1, COLUMN_2);
--删除唯一
ALTER TABLE TABLE_NAME DROP CONSTRINT UNIQUE_NAME;
--备注:Oracle中,UNIQUE可以为单个NULL,也可多行为NULL
主键约束(PRIMARY KEY)