1、Oracle中的用户与模式
用户(对数据库访问又来验证的身份)
SYS:超级管理员用户,是Oracle权限最高的用户。
SYSTEM:普通管理员用户,可以访问数据库中所有对象。
模式(schema):是某个用户拥有所有对象的集合,具有创建对象权限并创建了对象的用户称为拥有某个模式。
使用sqlplus进行用户创建、授权
--创建用户(create user 用户名 identified by 密码)
SQL>create user oracleuser identified by 123456;
--修改用户密码
SQL>alter user oracleuser identified by 123123;
--授予用户基本权限(grant 授予的权限 to 用户)
--授予用户权限在SYS用户下进行操作
SQL>grant connect, resource to oracleuser;
--撤销权限
SQL>revoke connect, resource to oracleuser;
--授权之后可以进行登录
SQL>conn oracleuser/123456;
在管理工具中授予权限
SYS用户目录下的其他用户,之后找到创建的用户,右键选择编辑用户,之后找到系统权限,可以进行鼠标点击授予权限.
单击授权之后可以在旁边的sql看到对应的sql命令.
2、表的基本操作
--查询表空间中的表
SQL>select table_name,tablespace_name from user_tables;
--查询日志文件
select * from V$log;
--创建一张学生信息表
SQL> create table stuInfo(
id varchar2(32),
name varchar(24),
address varchar(64),
sex char(2)
) tablespace users;
表已创建。
--截断表(它的主要功能就是彻底删除数据,使其不能进行回滚)
SQL>truncate table stuinfo;
--全列插入
SQL> insert into stuInfo values('001','张三','中国','M');
已创建 1 行。
SQL> insert into stuInfo values('002','李四','中国','W');
已创建 1 行。
SQL> insert into stuInfo values('003','王五','中国','M');
已创建 1 行。
--限定列插入(未插入的列数据为null)
SQL> insert into stuinfo(id,name,sex) values('004','小红','W');
已创建 1 行。
--查看结果
SQL> select * from stuinfo;
ID NAME ADDRESS
SEX
---------------------------------------------------------------- ------------------------------------------------ -------------------------------------------------------------------------------------------------------------------------------- ----
001 张三 中国
M
002 李四 中国
W
003 王五 中国
M
004 小红
--更新所有行
SQL> update stuinfo set sex='M';
已更新4行。
--更新指定行(后边指定条件)
SQL> update stuinfo set sex='W' where id='003';
已更新 1 行。
--类似于mysql中的模糊查询操作(将以张开头的人的名字更改为Python)
SQL> update stuinfo set name='Python' where name like '张%';
已更新 1 行。
--查询
SQL> select * from stuinfo;
ID NAME ADDRESS
SEX
---------------------------------------------------------------- ------------------------------------------------ -------------------------------------------------------------------------------------------------------------------------------- ----
001 Python 中国
M
002 李四 中国
M
003 王五 中国
W
004 小红
补充一个遇到的错误
在学习的时候遇到了一个错误
错误类型: ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效---解决方法。
错误原因:最后在网上查询错误,原来是因为短时间内对表的操作太过快速和频繁而导致的数据库锁表;
解决办法(管理员用户执行以下操作)
--查询被锁的会话ID:
SQL>select session_id from v$locked_object;
--查询到被锁住的会话ID
SESSION_ID 64
--继续查询详细信息
SQL>SELECT sid, serial#, username, osuser FROM v$session where sid = 64;
SID 64
SERIAL 199
--关闭锁定的会话
SQL>ALTER SYSTEM KILL SESSION '64,199';
--之后错误就解决了,可以登录原有的用户执行需要的操作了
边学习边记录,若有不足之处欢迎留言指点…