文档库 最新最全的文档下载
当前位置:文档库 › oracle_复杂查询

oracle_复杂查询

oracle_复杂查询
oracle_复杂查询

--复杂查询--

一、--建立表--

--1、一般方法

CREA TE TABLE tab(

tabid number(4),

tname varchar2(20),

loc varchar2(20),

birthday date

);

insert into tab values(1,'aa','XI AN',to_date('1982-5-4','yyyy-mm-dd'));

insert into tab values(2,'bb','XI AN',to_date('1982-2-4','yyyy-mm-dd'));

insert into tab values(3,'cc','XI AN',to_date('1982-3-4','yyyy-mm-dd'));

select * from tab;

--2、使用一张表建立另一张表(复制表)

create table tab2 as select * from tab;

二、--复杂查询

--显示所有员工信息

select * from employee;

-- 显示所有员工的编号、姓名、部门编号、部门名称、部门位置

select emp_no,emp_fname||' '||emp_lname,employee.dept_no,department.dept_no,dept_name,location

from employee,department

1、--笛卡尔积:多张表的行的全匹配

select emp_no,emp_fname||' '||emp_lname,emp.dept_no,dept.dept_no,dept_name,location

-- 注意:emp.dept_no不能写成:employee.dept_no

from employee emp,department dept

where emp.dept_no=dept.dept_no;

2、--连接条件:表和表一般会有逻辑关系才用来做连接查询,而如果没有连接条件就会产生笛卡尔积,所以需要连接条件过滤无效数据。

--连接条件就是表和表之间的逻辑关系条件

--给列起别名

--1、列名别名

--2、列名as "别名"

--查询原理:列的别名在结果集合产生后有效

select emp_no 员工编号,emp_fname||' '||emp_lname as "员工姓名",dept_no dno from employee;

--给表起别名

--查询原理:表的别名在本条SQL语句中有效

select e.emp_no eno,e.emp_fname||' '||e.emp_lname ename, e.dept_no dno, d.dept_name dname , d.location loc

from employee e,department d

where e.dept_no= d.dept_no;

--获取为项目Gemini 工作的所有职员的全部信息

--连接查询的写法:在设定好需要的列和来自的表以后,where 子句先写连接条件,

-- 注意:如果有n 张表做连接,需要n-1 个连接条件,然后再写逻辑条件select e.emp_no,e.emp_fname,e.dept_no,w.job,w.enter_date,p.project_name,p.project_no

from employee e,project p,works_on w

where e.emp_no=w.emp_no and p.project_no= w.project_no and p.project_name='Gemini';

--获取在98年10月15日加入项目的所有职员的姓名以及部门编号,部门位置

select w.emp_no,e.emp_fname,e.dept_no,d.location

from works_on w,employee e,department d

where w.emp_no=e.emp_no and e.dept_no=d.dept_no and w.enter_date=to_date('1998-10-15','yyyy-mm-dd');

3、--自连接:自己和自己连接

--获取与至少一个其他部门拥有相同所在地的所有部门的全部细节信息(自连接)

select d.dept_name,d.location

from department d,department d2

where d.dept_name!=d2.dept_name and d.location=d2.location;

--

create table dept as select * from department;

-- or

delete dept where dept_no='d7' or dept_no = 'd8';

(若为and 则没有删除任何数据)

(若为or 则删除d7 、d8)

--

select * from dept;

--

create table employee2 as select * from employee;

--

alter table employee2

add emp_address varchar2(30) null;

--

alter table employee2

add emp_address2 varchar2(30) default 'XIAN'; --默认值为“XIAN ”

--

update employee2 set emp_address='San Antonio' where emp_no='25348';

update employee2 set emp_address='Houston' where emp_no='10102';

update employee2 set emp_address='San Antonio' where emp_no='18316';

update employee2 set emp_address='Seattle' where emp_no='29346';

update employee2 set emp_address='Portland' where emp_no='9031';

update employee2 set emp_address='Tacoma' where emp_no='2581';

update employee2 set emp_address='Houston' where emp_no='28559';

commit;

--获取与至少一位其他职员工作在同一部门且居住在同一城市的每一名职员编号、姓名select * from employee_enh;

select e1.emp_no,e2.emp_fname,e2.emp_address

from employee_enh e1,employee_enh e2

where e1.emp_no <> e2.emp_no and e1.emp_address=e2.emp_address;

4、--数据分组(分组查询)--

--单分组函数(简单分组函数)

-- sum() 对指定列求和,null值无效

-- avg() 对指定列求平均值

-- max() 对指定列求最大值

-- min() 对指定列求最小值

-- count() 对指定列求统计(统计不为null的行数)

select sum(sal) from emp;

select sal from emp;

select round(avg(sal),2) from emp;

-- 查询每个部门的工资总和、平均值

-- 分组子句:group by

-- 注意:分组子句必须放到where 子句以后

-- group by 可以多个列同时作为分组条件,但是要求这些列都相等才能为一组

select sum(sal),job,deptno from emp group by deptno,job;

-- 统计每个部门中工资最高的值

select max(sal),deptno from emp group by deptno;

--统计有奖金的人数

select count(comm) from emp;

--统计工作种类

select count(distinct job) from emp;

--得到部门工资和高于9000的部门编号和部门工资和的值

select deptno,sum(sal) from emp group by deptno having sum(sal)>9000;

--查询原理:where 子句是行条件子句,不能包含分组函数的应用或者任何形式的多行值的判断

-- having 是放置分组筛选条件的,having 后只能跟分组函数修饰的列或者分组列

select sum(sal),deptno from emp group by deptno having deptno=10;

oracle 查看用户、权限、角色

查看用户、权限、角色的命令和视图 a 1.查看所有用户: select * from dba_users; select * from all_users; select * from user_users; 2.查看用户系统权限: select * from dba_sys_privs; select * from session_privs; select * from user_sys_privs; 3.查看用户对象权限: select * from dba_tab_privs; select * from all_tab_privs; select * from user_tab_privs; 4.查看所有角色: select * from dba_roles; 5.查看用户所拥有的角色: select * from dba_role_privs; select * from user_role_privs; b 概述 与权限,角色相关的视图大概有下面这些: DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限 USER_SYS_PRIVS: 查询当前用户所拥有的系统权限 SESSION_PRIVS: 查询当前用户所拥有的全部权限 ROLE_SYS_PRIVS:查询某个角色所拥有的系统权限 注意: 要以SYS用户登陆查询这个视图,否则返回空. ROLE_ROLE_PRIVS: 当前角色被赋予的角色 SESSION_ROLES: 当前用户被激活的角色 USER_ROLE_PRIVS: 当前用户被授予的角色 另外还有针对表的访问权限的视图: TABLE_PRIVILEGES ALL_TAB_PRIVS ROLE_TAB_PRIVS: 某个角色被赋予的相关表的权限 oracle与用户角色权限相关的视图 Oracle 本身的数据字典设计我个人觉得很合理, 因为DBA_xxx, ALL_xxx,USER_xxx 让人一看大概就知道这个视图是干什么用的. 本文简要总结了一下与权限,角色相关的视图. 一. 概述 与权限,角色相关的视图大概有下面这些: 1、DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限。 2、USER_SYS_PRIVS: 查询当前用户所拥有的系统权限。

oracle 创建create user 及授权grant 查看登陆的用户

oracle 创建create user 及授权grant 查看登陆的用户: 以下都可以: show user; select sys_context('userenv','session_user') from dual; select user from dual; 查看所有登录的用户必须为DBA 用户: select username from v$session; sys、system等DBA 用户查看其他用户(test)中的对象(表): SQL> select * from test.student; 创建一个普通用户都把该用户用起来的流程: 1、创建用户 SQL>create user test indentified by test; 这样就创建了一个用户名密码都为test的用户 但这个时候test还是不能登陆成功的,我们需要赋予相应的权限 2、赋予create session的权限 SQL>grant create session to test; 这样test用户就能成功登陆进去 但是此时用户还是不能创建表我们需要赋予用户创建表的权限: SQL>grant create table to test; 但是用户此时还不能创建表因为需要有使用表空间的权限(相当于用户有了进房间的钥匙但是没有进大门的钥匙。。。) 所以也应该赋予相应的权限 SQL>grant unlimited tablespace to test; 这个时候用户就拥有了创建表的权限由于表是用户test的相应的他就拥有了对创建的表的增删查改的权限了 3、查看用户拥有什么权限可以通过查询一个系统的视图(数字字典) SQL>select * from user_sys_privs; 这样就可以知道当前用户的权限 4、撤销权限 SQL> revoke create table from test; ----------------------------- 一些常用视图的区分 dba_tables dba_all_tables user_tables user_all_tables all_tables

如何查看oracle用户具有的权限和角色

如何查看oracle用户具有的权限和角色 上次有同学问我,如何查看一个oracle用户具有的权限和角色,我一时没答上来,回头好好研究了一下,记录一下,备查: 1.查看所有用户: select * from dba_users; select * from all_users; select * from user_users; 2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限): select * from dba_sys_privs; select * from user_sys_privs; 3.查看角色(只能查看登陆用户拥有的角色)所包含的权限 sql>select * from role_sys_privs; 4.查看用户对象权限: select * from dba_tab_privs; select * from all_tab_privs; select * from user_tab_privs; 5.查看所有角色: select * from dba_roles; 6.查看用户或角色所拥有的角色: select * from dba_role_privs; select * from user_role_privs; 7.查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限) select * from V$PWFILE_USERS 比如我要查看用户wzsb的拥有的权限: SQL> select * from dba_sys_privs where grantee='WZSB';

GRANTEE PRIVILEGE ADMIN_OPTION ------------------------------ ---------------------------------------- ------------ WZSB CREATE TRIGGER NO WZSB UNLIMITED TABLESPACE NO 比如我要查看用户wzsb的拥有的角色: SQL> select * from dba_role_privs where grantee='WZSB'; GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE ------------------------------ ------------------------------ ------------ ------------ WZSB DBA NO YES 查看一个用户所有的权限及角色 select privilege from dba_sys_privs where grantee='WZSB' union select privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='WZSB' );

Oracle中查看所有的表,用户表,列名,主键,外键

在Oracle中查看所有的表: select * from tab/dba_tables/dba_objects/cat; 看用户建立的表 : selecttable_name from user_tables; //当前用户的表 selecttable_name from all_tables; //所有用户的表 selecttable_name from dba_tables; //包括系统表 select * from user_indexes //可以查询出所有的用户表索引 查所有用户的表在all_tables 主键名称、外键在all_constraints 索引在all_indexes 但主键也会成为索引,所以主键也会在all_indexes里面。 具体需要的字段可以DESC下这几个view,dba登陆的话可以把all换成dba 1、查找表的所有索引(包括索引名,类型,构成列): select t.*,i.index_type from user_ind_columnst,user_indexesi where t.index_nam e = i.index_name and t.table_name = i.table_name and t.table_name = 要查询的表 2、查找表的主键(包括名称,构成列): select cu.* from user_cons_columns cu, user_constraints au where cu.constraint _name = au.constraint_name and au.constraint_type = 'P' and au.table_name = 要查询的表 3、查找表的唯一性约束(包括名称,构成列): selectcolumn_name from user_cons_columns cu, user_constraints au where cu. constraint_name = au.constraint_name and au.constraint_type = 'U' and au.table _name = 要查询的表 4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):

Oracle查询语句基本命令一

oracle查询语句大全--基本命令大全一 1.create user username identified by password;//建用户名和密码oracle ,oracle 2.grant connect,resource,dba to username;//授权grant connect,resource,dba,sysdba to username; 3.connect username/password//进入。 4.select table_name,column_name from user_tab_columns where table_name='mview_log';//查询表中的表名,字段名等等。 5. 如何执行脚本SQL文件? SQL>@PATH/filename.sql; 6.Oracle oledb 提供者在command中执行多条SQL语句与SQL SERVER有少许差别,SQL Server只需使用";"分割多条SQL语句,而Oracle需要遵守ORACLE调用规范,即除分号分割外,还需以begin /end;包围语句体. 使用C#描述应如下所示: https://www.wendangku.net/doc/c89582546.html,mandText = "begin INSERT INTO GROUP_INFO (GROUP_ID, GROUP_NAME) V ALUES (1, \'2\'); INSERT INTO GROUP_INFO(GROUP_ID, GROUP_NAME) V ALUES (2, \'2\'); end;"; 7.查询用户下的表的信息select distinct table_name from user_tab_columns; 8.如何搜索出前N条记录?Select a.*,rownum from (select * from cardkind order by cardkind ) a where rownum show user 3、查看系统拥有哪些用户SQL> select * from all_users; 4、新建用户并授权 SQL> create user a identified by a;(默认建在SYSTEM表空间下) SQL> grant connect,resource to a; 5、连接到新用户SQL> conn a/a

查看oracle数据库的连接数以及用户

查看oracle数据库的连接数以及用户 11、查询oracle的连接数 2select count(*) from v$session; 32、查询oracle的并发连接数 4select count(*) from v$session where status='ACTIVE'; 53、查看不同用户的连接数 6select username,count(username) from v$session where username is not null group by username; 74、查看所有用户: 8select*from all_users; 95、查看用户或角色系统权限(直接赋值给用户或角色的系统权限): 10select*from dba_sys_privs; 11select*from user_sys_privs; 126、查看角色(只能查看登陆用户拥有的角色)所包含的权限 13select*from role_sys_privs; 147、查看用户对象权限: 15select*from dba_tab_privs; 16select*from all_tab_privs; 17select*from user_tab_privs; 188、查看所有角色: 19select*from dba_roles; 209、查看用户或角色所拥有的角色: 21select*from dba_role_privs; 22select*from user_role_privs; 2310、查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限) 24select*from V$PWFILE_USERS; select count(*) from v$process --当前的连接数 select value from v$parameter where name = 'processes' --数据库允许的最大连接数 修改最大连接数: alter system set processes = 300 scope = spfile; 重启数据库: sqlplus / as sysdba shutdown immediate; startup; 启动监听 #su – oracle $lsnrctl start --查看当前有哪些用户正在使用数据 SELECT osuser, https://www.wendangku.net/doc/c89582546.html,ername,cpu_time/executions/1000000||'s', sql_fulltext,machine

Oracle表及字段查询语句

下面为您介绍的语句用于实现Oracle查询用户所有表,如果您对o r a c l e查询方面感兴趣的话,不妨一看。 select * from all_tab_comments 查询所有用户的表,视图等 select * from user_tab_comments 查询本用户的表,视图等 select * from all_col_comments 查询所有用户的表的列名和注释. select * from user_col_comments 查询本用户的表的列名和注释 select * from all_tab_columns 查询所有用户的表的列名等信息(详细但是没有备注). select * from user_tab_columns 查询本用户的表的列名等信息(详细但是没有备注). 一般使用 1: select t.table_name,https://www.wendangku.net/doc/c89582546.html,ments from user_tab_comments t 一般使用 2: select r1, r2, r3, r5

from (select a.table_name r1, a.column_name r2, https://www.wendangku.net/doc/c89582546.html,ments r3 from user_col_comments a), (select t.table_name r4, https://www.wendangku.net/doc/c89582546.html,ments r5 from user_tab_comments t) where r4 = r1 以上就是oracle查询用户所有表的语句介绍。如何在oracle中查询所有用户表的表名、主键名称、索引、外键等 1、查找表的所有索引(包括索引名,类型,构成列): select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_ name and t.table_name = i.table_name and t.table_name = 要查询的表 2、查找表的主键(包括名称,构成列): select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au. constraint_name and au.constraint_type = 'P' and au.table_name = 要查询的表 3、查找表的唯一性约束(包括名称,构成列): select column_name from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'U' and au.table_name = 要查询的表 4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询): select * from user_constraints c where c.constraint_type = 'R'and c.table_name = 要查询的表

Oracle用户角色权限等操作

oracle 赋予权限 转发评论 02月21日13:00 最基础的sqlplus username/password@[sid] 连接数据库 sqlplus username/password as sysdba 以管理员连接数据库 管理员连接后创建用户sqlplus system/manager@demo as sysdba create user abc identified by abc ; 创建用户abc密码为abc grant all privileges to abc; 给abc用户赋予所有的权限 给自己留个备份以备不时之需 oracle grant 授权语句--select * from dba_users; 查询数据库中的所有用户 --alter user USERNAME account lock; 锁住用户 --alter user USERNAME account unlock; 给用户解锁 --create user USERNAME identified by USERPASS; 建立用户 一般创建用户后需要授予链接数据库权限 grant connect,resource to USERNAME; --grant create tablespace to USERNAME; 授权创建表空间 --grant SELECT on TABLENAME to USERNAME; 授权查询 授权其他动作格式相同 如果要把所有表的查询权限分配给用户可以用这样的 grant select any table to USERNAME; --grant execute on procedure1 to xujin 授权存储过程

oracle查询语句大全

oracle查询语句大全oracle 基本命令大全一 1.create user username identified by password;//建用户名和密码oracle ,oracle 2.grant connect,resource,dba to username;//授权grant connect,resource,dba,sysdba to username; 3.connect username/password//进入。 4.select table_name,column_name from user_tab_columns where table_name='mview_log';//查询表中的表名,字段名等等。 5. 如何执行脚本SQL文件? SQL>@PA TH/filename.sql; 6.Oracle oledb 提供者在command中执行多条SQL语句与SQL SERVER有少许差别,SQL Server只需使用";"分割多条SQL语句,而Oracle需要遵守ORACLE调用规范,即除分号分割外,还需以begin /end;包围语句体. 使用C#描述应如下所示: https://www.wendangku.net/doc/c89582546.html,mandText = "begin INSERT INTO GROUP_INFO (GROUP_ID, GROUP_NAME) V ALUES (1, \'2\'); INSERT INTO GROUP_INFO(GROUP_ID, GROUP_NAME) V ALUES (2, \'2\'); end;"; 7.查询用户下的所有表select distinct table_name from user_tab_columns; 8.如何搜索出前N条记录?Select a.*,rownum from (select * from cardkind order by cardkind ) a where rownum show user 3、查看系统拥有哪些用户 SQL> select * from all_users; 4、新建用户并授权 SQL> create user a identified by a;(默认建在SYSTEM表空间下)

linux下查看oracle用户权限

select * from dba_tab_privs where GRANTEE like '%SOFT'; linux下oracle用户、权限与角色管理详解 Oracle 数据库用户管理 Oracle 权限设置 一、权限分类: 系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。 实体权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。 二、系统权限管理: 1、系统权限分类: DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。 RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。 对于普通用户:授予connect, resource权限。 对于DBA管理用户:授予connect,resource, dba权限。 2、系统权限授权命令: [系统权限只能由DBA用户授出:sys, system(最开始只能是这两个用户)] 授权命令:SQL> grant connect, resource, dba to 用户名1 [,用户名2]...; [普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system用户的权限也可以被回收。]

例: SQL> connect system/manager SQL> Create user user50 identified by user50; SQL> grant connect, resource to user50; 查询用户拥有哪里权限: SQL> select * from dba_role_privs; SQL> select * from dba_sys_privs; SQL> select * from role_sys_privs; 删除用户:SQL> drop user 用户名 cascade; //加上cascade则将用户连同其创建的东西全部删除 3、系统权限传递: 增加WITH ADMIN OPTION选项,则得到的权限可以传递。 SQL> grant connect, resorce to user50 with admin option; //可以传递所获权限。 4、系统权限回收:系统权限只能由DBA用户回收 命令:SQL> Revoke connect, resource from user50; 系统权限无级联,即A授予B权限,B授予C权限,如果A收回B的权限,C的权限不受影响;系统权限可以跨用户回收,即A可以直接收回C用户的权限。 三、实体权限管理 1、实体权限分类:select, update, insert, alter, index, delete, all //all包括所有权限 execute //执行存储过程权限

oracle中查询所有用户表

oracle查询所有用户表的表名、主键名称、索引、外键等1、查找表的所有索引(包括索引名,类型,构成列): select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name and t.table_name = 要查询的表 2、查找表的主键(包括名称,构成列): select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'P' and au.table_name = 要查询的表 3、查找表的唯一性约束(包括名称,构成列): select column_name from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'U' and au.table_name = 要查询的表 4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):select * from user_constraints c where c.constraint_type = 'R' and c.table_name = 要查询的表 查询外键约束的列名: select * from user_cons_columns cl where cl.constraint_name = 外键名称 查询引用表的键的列名: select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键 名

Oracle查询用户所有表的语句

Oracle查询用户所有表的语句 下面为您介绍的语句用于实现Oracle查询用户所有表,如果您对oracle查询方面感兴趣的话,不妨一看。 select * from all_tab_comments -- 查询所有用户的表,视图等 select * from user_tab_comments -- 查询本用户的表,视图等 select * from all_col_comments --查询所有用户的表的列名和注释. select * from user_col_comments -- 查询本用户的表的列名和注释 select * from all_tab_columns --查询所有用户的表的列名等信息(详细但是没有备注). select * from user_tab_columns --查询本用户的表的列名等信息(详细但是没有备注). --一般使用1: select t.table_name,https://www.wendangku.net/doc/c89582546.html,ments from user_tab_comments t --一般使用2: select r1, r2, r3, r5 from (select a.table_name r1, a.column_name r2, https://www.wendangku.net/doc/c89582546.html,ments r3

from user_col_comments a), (select t.table_name r4, https://www.wendangku.net/doc/c89582546.html,ments r5 from user_tab_comments t) where r4 = r1 以上就是oracle查询用户所有表的语句介绍。 1、查找表的所有索引(包括索引名,类型,构成列):select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name and t.table_name = 要查询的表 2、查找表的主键(包括名称,构成列): select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'P' and au.table_name = 要查询的表 3、查找表的唯一性约束(包括名称,构成列): select column_name from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'U' and au.table_name = 要查询的表 4、查找表的外键(包括名称,引用表的表名和对应的键名,

oracle系统用户

第一,系统用户sysdba 1,创建表空间 --创建表空间语法:create tablespace 表空间名称 datafile 'dbf文件路径' size 大小 autoextend on; create tablespace kusy datafile'kusy'size1000m autoextend on; --创建表空间 create tablespace myspace datafile'D:\app\Administrator\oradata\orcl\myspace.dbf' size100m autoextend on; 2,创建临时表空间 2-1创建临时表空间 创建临时表空间语法:create temporary tablespace 表名 tempfile '临时表空间存放的dbf文件路径' size 大小 autoextend on; create temporary tablespace mytemp tempfile'D:\app\Administrator\oradata\orcl\mytemp.dbf'size10m a utoextend on ; 2-2删除表空间 --假如表空间为空了就用 drop tablespace 表空间名; --假如表空间不为空就级联删除 drop tablespace 表空间名 including contents and datafiles --但是现在被删除的数据库 dbf文件还是存在的直接删除dbf文件 drop tablespace db1pwd including contents and datafiles; 3,创建用户

Oracle 用户及角色 介绍

Oracle 用户及角色介绍 一. 用户管理 1.1 建立用户(数据库验证) CRE ATE USER DAVE IDE NTIFIED BY pw d DE FAULT TABLESP ACE users TEMP ORARY TABLE SP ACE temp QUOTA 5m ON users; 1.2 修改用户 ALTE R USER DAVE QUOTA 0 ON SYSTEM; 1.3 删除用户 DROP USE R DAVE; DROP USE R DAVE CASCADE; 1.4 显示用户信息 SELECT * FROM DBA_USERS SELECT * FROM DBA_TS_QUOTAS 二.系统权限 系统权限是指执行特定类型SQL命令的权利,用于控制用户可以执行的一个或一类数据库操作。(新建用户没有任何权限) 2.1 授予系统权限 GRANT CRE ATE SE SSION,CRE ATE TABLE TO DAVE; GRANT CRE ATE SE SSION TO DAVE WITH ADMIN OP TION; 选项:ADMIN OP TION 使该用户具有转授系统权限的权限。 2.2 显示系统权限 查看所有系统权限: Select * from system_privilege_map; 显示用户所具有的系统权限: Select * from dba_sys_privs; 显示当前用户所具有的系统权限: Select * from user_sys_privs; 显示当前会话所具有的系统权限: Select * from session_pri v s; 2.3 收回系统权限 RE VOKE CRE ATE TABLE FROM DAVE; RE VOKE CRE ATE SE SSION FROM DAVE;

查看ORACLE 数据库及表信息

-- 查看ORACLE 数据库中本用户下的所有表 SELECT table_name FROM user_tables; -- 查看ORACLE 数据库中所有用户下的所有表 select user,table_name from all_tables; -- 查看ORACLE 数据库中本用户下的所有列 select table_name,column_name from user_tab_columns; -- 查看ORACLE 数据库中本用户下的所有列 select user,table_name,column_name from all_tab_columns; -- 查看ORACLE 数据库中的序列号 select * from user_sequences; -- 上面的所有对象,都可以通过下面的SQL语句查询得到 -- 查询所有的用户生成的ORACLE对象 SELECT * FROM user_objects; -- 查看ORACLE 数据库中所有表的注释 select table_name,comments from user_tab_comments; -- 查看ORACLE 数据库中所有列的注释 select table_name,column_name,comments from user_col_comments; -- 给表加ORACLE的注释 COMMENT ON TABLE aa10 IS '系统参数表'; -- 给列加ORACLE的注释 COMMENT ON COLUMN aa10.aaa100 IS '参数类别'; -- 查看表中列的属性,包括数据类型,是否非空等 DESC aa10; -- 通过系统表,查看表中列的属性,包括数据类型,是否非空等 SELECT table_name,COLUMN_ID,column_name,data_type,data_length,DATA_PRECISION, NULLABLE FROM user_tab_columns ORDER BY table_name,COLUMN_ID; --查看所有表空间 selecttablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name --查看未使用表空间大小 selecttablespace_name,sum(bytes)/1024/1024 from dba_free_space group bytablespace_name; -- 查看数据库中表、索引占用的数据库空间大小 SELECT * FROM user_segments; -- 查看所有表的记录数 CREATE TABLE table_count(table_name VARCHAR2(50),columns NUMBER(20)); -- 通过PB运行下面的语句,得到结果集,将结果集在PB下执行,最后提交 select 'insert into table_count values('''||table_name||''', (select count(1)from '||table_name||'));//'||comments from user_tab_comments;

oracle数据库查询语句大全

oracle数据库查询语句大全 1.select*from table_name where rownum>begin and rownum"+(intPage-1) *intPageSize); 今天想查询一下Oracle数据库下所有的表名或某个用户下的所有表,半天没想起来.还是在网上找到了答案. select table_name from all_tables;//所有的表明 select table_name from user_all_tables;//用户的所有的表 一下是转贴的sql语句的帖子. select*from user_objects;//查询所有的表 select*from dba_tables;//查询所有的表 select*from all_tables;//查询所有的表 select*from user_users//查出一个用户 select*from all_users//查询所有用户 select*from dba_users//查询所有用户 select name,dbid from v$database;//查询数据库名和它的ID select*from https://www.wendangku.net/doc/c89582546.html,er_tab_columns;//查询表名,并显示列名 describe表名//查询表结构 select*from https://www.wendangku.net/doc/c89582546.html,er_tab_columns where table_name=表名//查询指定表名的字段 2:查询数据库参数

Oracle查询大集锦

Oracle查询大集锦 1、 Select 语句的基本结构 Select <字段名或表达式列表> // * 号代表全部 From <想要查询的表名> //可以是一张表或多张表或视图 Where <查询的条件> //排除不满足条件的行返回需要的记录 Group By <分组的字段名或表达式> //将查询的结果按指定的一个字段或多个字段的值进行分组统计,分组字段或表达式的值相等的被分为同一组 Having <筛选条件> //用于对Group By 字句分组的结果进一步限定搜索条件 Order By <排序的字段名或表达式> //将结果按照指定字段进行排序(升序降序)默认是升序 2、选择数据表所有的列 Select * From Tablename; 3、选择数据表指定的列 Select 商品编号,商品名称,商品价格,库存数量 From 商品信息表; 4、查询时更改列标题 Select 商品编码 [As] good_code, 商品名称 [As] good_name, 商品价格 [As] good_price, 库存数量 [As] stock_number From 商品信息表; 输出结果的时候列名被 AS 后面的替换了 提:[AS]可以省略。 5、查询时使用计算列 Select 商品价格*库存数量 As 金额 From 商品信息表; 6、使用 dual 表查询系统变量或表达式值 提:dual 表是为了给我们在数据库查询中填充 From 字句使用的 任务(1)查询 dual 表的记录数据 Select * From dual; 任务(2)通过系统变量 sysdate 显示系统当前日期 Select sysdate From dual; 任务(3)通过系统变量 sysdate 显示当前年份 Select Extract(Year From sysdate) 当前年份 From Dual; 任务(4)查询序列 user_seq 的当前值 Select https://www.wendangku.net/doc/c89582546.html,erID_seq.currval From dual; 任务(5)查询当前用户的名字 Select user From dual; 7、 Distinct选择不重复的行(如果表中有多个Null的记录它们将作为重复值处理) Select Distinct id From Tablename; 8、 Rownum(获取数据表中前面若干行) Select id,name From Tablename Where rownum<8; //查询表Tablename中的前7行 9、 Where子句条件查询 任务(1)从“商品信息表”中查询类型编号为“0103”的商品信息 Select * From 商品信息表 Where 类型编号=’0103’; 任务(2)从“商品信息表”中查询生产日期在2012年12月16日之前的商品信息 Select * From 商品信息表 Where 生产日期=2011; Select * From 商品信息表 Where to_char(生产日期,’YYY’)>=2011; 任务(4)从“商品信息表”中查询价格低于800元,库存数量高于5的商品信息 Select * From 商品信息表 Where 商品价格<800 And 库存数量>5; 任务(5)从“商品信息表”中查询生产日期在‘2012-06-20’和‘2012-12-20’的商品信息 Select * From 商品信息表 Where 生产日期 Between to_date(‘2012-06-20’,’YYY-MM-DD’)And to_date(‘2012-12-20’,’YYY-MM-DD’); 任务(6)从“商品信息表”中查询商品价格分别为‘600元’、‘1000元’、‘1500元’的商品信息 Select * from 商品信息表 Where 商品价格 In(600,1000,1500); 任务(7)从“商品信息表”中查询商品名称‘三星’开头的商品信息 Select * From 商品信息表 Where 商品名称 Like ’三星%’; 任务(8)从“商品信息表”中查询商品描述为空的商品信息

相关文档
相关文档 最新文档