用户(user)是定义在数据库中的一个名称,访问数据库时,要提供合适的用户名和口令。
模式(Schema)是用户所拥有对象的集合。用户与模式是一一对应的关系,并且二者名称相同。
在Oracle 数据库中建立用户是使用命令create user 由dba用户来完成;如果要以其他用户身份创建用户,必须需要create user 系统权限。
一、创建用户语法定义: CREATE USER test IDENTIFIED BY test DERAULT TABKESPACE users_ts TEMPORARY TABLESPACE temp_ts QUOTA 3m ON users_ts; 如上示例: 建立一个数据库用户; 账户:test 口令:test 使用的默认表空间:users_ts 使用的临时表空间:temp_ts 在表空间users_ts 的配额:3m
二、链接到数据库 为了链接到数据库必须给予授权(create session)
1,示例:给初始用户授予会话权限 connect system/manager grant create session to test connect test/test 可通过使用test账户连接上Oracle数据库
2 示例:给数据库账户授予create table 的权限对数据库进行初步操作 connect system/manager grant creat table to test connect test/test create table .... 可通过使用test账户连接上Oracle数据库,然后创建数据库表。
3 示例:修改用户口令 alter user test(用户名) identified by test(用户密码)
4 示例:解锁用户 alter user test(要解锁的用户名) account unlock ;
5 示例:修改用户空间配额 alter user test QUOTA 10m on users_ts;
6 示例:删除数据库用户的语法 DROP USER username(用户名) 注意:如果模式中包含有数据库对象,则必须带有CASCADE,否则会显示错误信息 drop user 用户名 cascade;
授予系统权限 7 示例:授予系统权限语法 grant 系统权限列表(多个系统权限之间用“,”分隔)to 用户 grant create session,create table to test; 即:授予创建会话和创建表的权限给test用户。
回收系统权限 8 示例:回收系统权限语法 Revoke 系统权限列表(多个系统权限之间用“,”分隔)from 用户 revoke create session,create table from test 即:从test 账户收回创建会话和创建表的权限。
9 显示当前用户所具有的系统权限 select * from user_sys_privs where grantee=‘test‘
10 显示当前角色所具有的权限 select * from session_privs;
授予对象权限 1 示例: grant 权限列表(权限之间用逗号隔开) on 对象 to 账户
connect b/b 链接B账户 grant select,insert on tx to A 把B.TX的查询和添加的权限给A
2 示例:回收对象权限的基本语法 connect b/b 链接B账户 revoke select,insert on TX from A
3 示例:显示当前用户所具有的对象权限
select * from user_tab_privs 通过USER_TAB_PRIVS 可以查看当前用户所具有的对象权限。
创建角色
示例:创建的角色 CREATE ROLE test_role
给角色授权
示例: 给角色授权 grant create session,create table to test_role;
使用角色给用户授权
示例:使用角色给用户授权
GRANT test_role(角色名) TO user_name(用户名)
示例:删除角色 DROP ROLE test_role
使用user_role_privs 显示当前用户具有的角色 示例: SELECT USERNAME,GRANTED_ROLE FROM USER_ROLE_PRIVS;
三 SQL语句
SQL语句不区分大小写,即可大写,也可小写,或混写
DEPT表:公司部门表,字段(deptno,dname,loc) EMP表:公司员工表,字段(empno,ename,job,mgr,hiredate,sal,comm,deptno) DEPT为主表,EMP为从表
1 示例:显示表结构 desc emp;
2 示例:查询所有列 selcet * from dept;
3 示例:查询特定列 select deptno,dname from dept ;
使用算术表达式 示例:查询年工资 select sal*12 from emp
取消重复的行,用关键字distinct 示例: select distinct deptno,job from emp
where 条件句
select ename,hiredate from emp where to_char(hiredate,‘yyyymmdd‘)<‘19810101‘; 注意:to_char(hiredate,‘yyyymmdd‘)<‘19810101‘年月日的一种比较
select enma,sal from emp where sal between 0 and 1000; 注意:在between 后头指定较小的值,在and 后头指定较大的值
select ename,sal from emp where ename like ‘%s%‘
select ename,sal from emp where ename like ‘M%‘; 注意:通配符%和 %是指多个字符通配 _是单个字符匹配
在where 字句中使用逻辑操作符(AND,NOT,OR) select ename,sal from emp where comm is not null;
select ename,sal from emp where comm>100 and sal >1000;
ORDER BY 字句
ASC用于升序排序(默认),DESC用于降序,当有多个字句时ORDER BY 字句必须放在最后 示例: select ename,sal from emp order by sal desc ;
insert 增加数据
insert into emp
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|