经典Oracle语句查询
Oracle50句经典查询-数据源

select '016','C#基础','002' union
select '017','Oracl数据库原理','010'
go
insert into tblScore
select '1001','003',90 union
select '005','逻辑电路','006' union
select '006','英语','003' union
select '007','电子电路','005' union
select '008
select '009','西方哲学史','012' union
select '1003','011',21 union
select '1004','007',90 union
select '1004','002',87 union
select '1005','001',23 union
select '1006','015',85 union
select '1006','006',46 union
oracle索引查询语句

oracle索引查询语句Oracle索引是一种用于加快查询速度的数据结构,它能够提高数据库的性能和效率。
索引查询语句是使用索引来搜索和获取数据的查询语句。
下面列举了一些常用的Oracle索引查询语句。
1. 查询表中的所有索引```sqlSELECT index_name, table_nameFROM user_indexes;```2. 查询索引的定义和属性```sqlSELECT index_name, table_name, column_name, uniqueness FROM user_ind_columnsWHERE table_name = '表名';```3. 查询表中某个索引的使用情况```sqlSELECT index_name, table_name, statusFROM all_indexesWHERE table_name = '表名' AND index_name = '索引名';```4. 查询使用了索引的SQL语句```sqlSELECT sql_textFROM v$sqlWHERE sql_text LIKE '%索引名%';```5. 查询索引的大小和碎片情况```sqlSELECT index_name, leaf_blocks, num_rows, clustering_factor FROM user_indexesWHERE table_name = '表名';```6. 查询索引的统计信息```sqlSELECT index_name, distinct_keys, num_rows, clustering_factorFROM user_indexesWHERE table_name = '表名';``````sqlEXPLAIN PLAN FORSELECT * FROM 表名WHERE 索引列 = 值;SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);```8. 查询索引的创建时间和最后修改时间```sqlSELECT index_name, created, last_ddl_timeFROM all_indexesWHERE table_name = '表名';```9. 查询索引的统计信息和优化建议```sqlSELECT index_name, table_name, column_name, num_distinct, density, histogramFROM dba_optstat_indexesWHERE table_name = '表名';``````sqlSELECT index_name, table_name, column_name, usage, effectivenessFROM v$index_usage;```以上是一些常用的Oracle索引查询语句,可以帮助我们了解和优化索引的使用情况,提高数据库的性能和效率。
oracle 数据字典查询语句

oracle 数据字典查询语句Oracle 数据字典是一个包含了数据库中所有对象和结构的元数据集合。
通过查询数据字典,可以获取数据库的详细信息,如表、列、索引、约束、触发器等对象的定义和属性。
下面列举了十个常用的Oracle 数据字典查询语句。
1. 查询所有表名:```sqlSELECT TABLE_NAME FROM ALL_TABLES;```这个查询语句将返回当前用户下所有表的名称。
2. 查询表的列信息:```sqlSELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH, NULLABLE FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = '表名';```这个查询语句将返回指定表的所有列名、数据类型、数据长度和是否可空。
3. 查询表的索引信息:```sqlSELECT INDEX_NAME, COLUMN_NAME, COLUMN_POSITION FROM ALL_IND_COLUMNS WHERE TABLE_NAME = '表名';这个查询语句将返回指定表的所有索引名称、索引列名和索引列位置。
4. 查询表的主键信息:```sqlSELECT CONSTRAINT_NAME, COLUMN_NAME FROM ALL_CONS_COLUMNS WHERE TABLE_NAME = '表名' AND CONSTRAINT_NAME = 'PK_主键名'; ```这个查询语句将返回指定表的主键约束名和主键列名。
5. 查询表的外键信息:```sqlSELECT CONSTRAINT_NAME, COLUMN_NAME, R_CONSTRAINT_NAME, R_OWNER, R_TABLE_NAME, R_COLUMN_NAME FROM ALL_CONS_COLUMNS WHERE TABLE_NAME = '表名' AND CONSTRAINT_TYPE = 'R';```这个查询语句将返回指定表的外键约束名、外键列名、参考表的所有者、参考表名和参考列名。
oracle数据库常用检测语句

1、--查询每台电脑的连接数select username, t.MACHINE,t.PROGRAM, t.STATUS, count(username)from v$session twhere username is not nullgroup by username, t.MACHINE,t.PROGRAM, t.STATUSorder by username, t.MACHINE,t.PROGRAM, t.STATUS;2--查询可用连接数和已经用了的连接数select RESOURCE_NAME as A,--资源名,CURRENT_UTILIZATION as b,--资源的当前使用量,MAX_UTILIZATION as c,--资源使用达到的最大值,INITIAL_ALLOCATION as d,--初始化值一般等于limit_value,LIMIT_VALUE as e--系统设置的资源值from v$resource_limitwhere resource_name in ('sessions', 'processes');3--查询数据库内存select * from v$sga;select * from v$sgastat;4--查询耗时最长的sql,采用这个语句在业务高峰监控那个查询语句耗时长,占用数据库连接不释放select *from (select SQL_TEXT,SQL_FULLTEXT,round(ELAPSED_TIME / 1000000, 2) ccc,--总时长,EXECUTIONS dd,--执行次数,round(ELAPSED_TIME / 1000000 / EXECUTIONS, 3) ee,--每次时长,trunc((elapsed_Time - cpu_time) * 100 / elapsed_Time, 2) aa,--等待时间占比,round((elapsed_Time - cpu_time) / 1000000, 2) ff,--等待时长,round(USER_IO_WAIT_TIME / 1000000, 2) gg,--IO等待时间,buffer_gets bb,--读取缓冲区次数,disk_reads hh,--读盘次数,hash_value, --SQL的hash_value,以备获取完整SQLsql_id,SORTS --排序次数from (select *from v$sqlareawhere executions > 10and PARSING_SCHEMA_NAME = '***' --注意修改schema名称order by ELAPSED_TIME desc)where rownum < 500)order by ee desc;5--数据库分区表最大分区检查---查询结果当前最大分区要比当前日期提前半年以上。
oracle常用查询语句

oracle常用查询语句Oracle是一种关系型数据库管理系统,常用于数据存储和查询。
下面列举了10个常用的Oracle查询语句。
1. SELECT语句SELECT语句是Oracle中最常用的查询语句之一。
它用于从数据库表中检索数据。
可以指定要查询的列、要查询的表以及任何过滤条件。
例如:SELECT * FROM employees;2. WHERE子句WHERE子句用于在SELECT语句中添加过滤条件。
可以使用各种运算符(如等于、大于、小于等)来指定条件。
例如:SELECT * FROM employees WHERE salary > 50000;3. ORDER BY子句ORDER BY子句用于按指定的列对结果进行排序。
可以指定升序(ASC)或降序(DESC)。
例如:SELECT * FROM employees ORDER BY hire_date DESC;4. GROUP BY子句GROUP BY子句用于根据一个或多个列对结果进行分组。
通常与聚合函数(如SUM、COUNT、AVG等)一起使用。
例如:SELECT department_id, COUNT(*) FROM employees GROUP BYdepartment_id;5. JOIN操作JOIN操作用于从多个表中检索数据,并根据指定的关联条件将它们合并在一起。
常见的JOIN类型包括内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)等。
例如:SELECT employees.employee_id, departments.department_name FROM employees INNER JOIN departments ON employees.department_id = departments.department_id;6. 子查询子查询是嵌套在其他查询语句中的查询。
oracle表注释查询语句

oracle表注释查询语句Oracle数据库中的表注释可以提供关于表结构和用途的重要信息,有助于数据库管理和开发。
以下是一些常用的查询语句,可用于检索Oracle表的注释。
1. 查询所有表的注释SELECT table_name, comments FROM all_tab_comments WHERE owner = 'schema_name';该语句将返回指定模式(schema_name)下所有表的名称和注释。
可以用“%”代替模式名称,以检索数据库中所有表的注释。
2. 查询单个表的注释SELECT comments FROM all_tab_comments WHERE owner ='schema_name' AND table_name = 'table_name';该语句将返回指定模式下指定表的注释。
3. 查询列的注释SELECT column_name, comments FROM all_col_comments WHERE owner = 'schema_name' AND table_name = 'table_name';该语句将返回指定模式下指定表的列名和注释。
4. 查询主键列的注释SELECT cols.column_name, cons.constraint_name, comments FROM all_constraints cons, all_cons_columns cols,all_col_comments coms WHERE cons.owner = 'schema_name' AND cons.table_name = 'table_name' AND cons.constraint_type = 'P'AND cols.owner = cons.owner AND cols.constraint_name = cons.constraint_name AND coms.owner = cols.owner AND coms.table_name = cols.table_name AND coms.column_name = cols.column_name;该语句将返回指定模式下指定表的主键列的名称、主键名称和注释。
oracle查询实例命令

oracle查询实例命令以下是一些Oracle数据库中常用的查询实例命令示例:1.查询表的所有数据:SELECT * FROM table_name;2.查询指定列的数据:SELECT column1, column2, ... FROM table_name;3.查询满足特定条件的数据:SELECT * FROM table_name WHERE condition;4.对结果进行排序:SELECT * FROM table_name ORDER BY column_name [ASC|DESC];5.使用聚合函数进行数据统计:SELECT COUNT(*) FROM table_name; -- 统计行数SELECT SUM(column_name) FROM table_name; -- 求和SELECT AVG(column_name) FROM table_name; -- 平均值SELECT MAX(column_name) FROM table_name; -- 最大值SELECT MIN(column_name) FROM table_name; -- 最小值6.连接多个表进行查询:SELECT t1.column1, t2.column2 FROM table1 t1 JOIN table2 t2 ON t1.id = t2.id;7.使用条件进行分组:SELECT column1, COUNT(*) FROM table_name GROUP BY column1;8.使用LIKE进行模糊查询:SELECT * FROM table_name WHERE column_name LIKE 'keyword%';以上只是一些常见的查询示例,实际查询命令会根据具体的表结构和查询需求而有所不同。
在使用Oracle数据库时,请根据具体情况和需求构建和调整查询语句。
oracle 查询索引语句

oracle 查询索引语句一、查询索引定义1. 查询Oracle数据库中所有的索引```SELECT index_name, table_name FROM all_indexes;```2. 查询指定表中的所有索引```SELECT index_name FROM all_indexes WHERE table_name = '表名';```3. 查询指定索引的定义```SELECT index_name, table_name, column_name FROM all_ind_columns WHERE index_name = '索引名';```4. 查询索引的类型```SELECT index_name, table_name, index_type FROM all_indexes;```5. 查询索引的存储方式```SELECT index_name, table_name, index_type, index_subpartition_name, index_partition_name FROM all_indexes;```二、查询索引状态与统计信息1. 查询索引的状态(有效/无效)```SELECT index_name, status FROM all_indexes;```2. 查询索引的使用情况(最后一次访问时间、读取次数等)```SELECT index_name, last_analyzed, num_rows, leaf_blocks, distinct_keys, clustering_factor FROM all_indexes;```3. 查询索引的大小```SELECT index_name, table_name, index_type, ROUND(bytes/1024/1024, 2) AS size_mb FROM dba_segments WHERE segment_type = 'INDEX';```4. 查询索引的碎片化情况```SELECT index_name, table_name, index_type, blevel, leaf_blocks, distinct_keys, clustering_factor FROM all_indexes; ```5. 查询索引的使用情况(是否被频繁访问)```SELECT index_name, table_name, user_reads, user_updates FROM all_indexes;```三、查询索引的相关约束1. 查询索引所属的表的主键约束```SELECT index_name, table_name FROM all_indexes WHERE index_type = 'NORMAL' AND uniqueness = 'UNIQUE';```2. 查询索引所属的表的外键约束```SELECT index_name, table_name FROM all_indexes WHERE index_type = 'NORMAL' AND uniqueness = 'NONUNIQUE';```3. 查询索引所属的表的唯一约束```SELECT index_name, table_name FROM all_indexes WHERE index_type = 'NORMAL' AND uniqueness = 'NONUNIQUE';```4. 查询索引所属的表的检查约束```SELECT index_name, table_name FROM all_indexes WHERE index_type = 'NORMAL' AND uniqueness = 'NONUNIQUE';```5. 查询索引所属的表的默认值约束```SELECT index_name, table_name FROM all_indexes WHERE index_type = 'NORMAL' AND uniqueness = 'NONUNIQUE';```四、查询索引的相关操作1. 查询索引的创建语句```SELECT dbms_metadata.get_ddl('INDEX', '索引名') FROM dual; ```2. 查询索引的重建语句```SELECT 'ALTER INDEX ' || index_name || ' REBUILD;' FROM all_indexes;```3. 查询索引的重命名语句```SELECT 'ALTER INDEX ' || index_name || ' RENAME TO 新索引名;' FROM all_indexes;```4. 查询索引的删除语句```SELECT 'DROP INDEX ' || index_name || ';' FROM all_indexes;```5. 查询索引的禁用语句```SELECT 'ALTER INDEX ' || index_name || ' UNUSABLE;' FROM all_indexes;```五、查询索引的相关性能优化1. 查询索引是否需要重新构建```SELECT index_name, table_name, last_analyzed FROM all_indexes WHERE last_analyzed < SYSDATE - 30;```2. 查询未使用的索引```SELECT index_name, table_name FROM all_indexes WHERE status = 'VALID' AND (user_reads = 0 OR user_updates = 0); ```3. 查询索引碎片化严重的情况```SELECT index_name, table_name, blevel, leaf_blocks, distinct_keys, clustering_factor FROM all_indexes WHERE blevel > 3;```4. 查询索引的大小是否过大```SELECT index_name, table_name, index_type, ROUND(bytes/1024/1024, 2) AS size_mb FROM dba_segments WHERE segment_type = 'INDEX' AND bytes/1024/1024 > 100;```5. 查询索引的选择性是否低```SELECT index_name, table_name, distinct_keys, num_rows, (distinct_keys/num_rows) AS selectivity FROM all_indexes WHERE selectivity < 0.1;```六、查询索引的相关性能统计1. 查询索引的读取次数与更新次数```SELECT index_name, table_name, user_reads, user_updates FROM all_indexes;```2. 查询索引的平均访问时间```SELECT index_name, table_name, blevel, leaf_blocks, distinct_keys, clustering_factor, num_rows, (leaf_blocks/clustering_factor) AS avg_access_time FROM all_indexes;```3. 查询索引的存储效率```SELECT index_name, table_name, blevel, leaf_blocks,distinct_keys, clustering_factor, (leaf_blocks/clustering_factor) AS storage_efficiency FROM all_indexes;```4. 查询索引的选择性```SELECT index_name, table_name, distinct_keys, num_rows, (distinct_keys/num_rows) AS selectivity FROM all_indexes;```5. 查询索引的碎片率```SELECT index_name, table_name, blevel, leaf_blocks, distinct_keys, clustering_factor, (leaf_blocks/clustering_factor) AS fragmentation FROM all_indexes;```以上是关于Oracle查询索引的一些常用语句,通过这些语句可以方便地查询索引的定义、状态、统计信息以及进行相关操作和性能优化。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle sql 语句查询本文使用的实例表结构与表的数据如下:scott.emp员工表结构如下: Type Nullable Default Comments2.-------- ------------ -------- ------- --------3.EMPNO NUMBER(4) 员工号4.ENAME VARCHAR2(10) Y 员工姓名5.JOB VARCHAR2(9) Y 工作6.MGR NUMBER(4) Y 上级编号7.HIREDATE DATE Y 雇佣日期8.SAL NUMBER(7,2) Y 薪金M NUMBER(7,2) Y 佣金10.DEPTNO NUMBER(2) Y 部门编号scott.dept部门表: Type Nullable Default Comments2.------ ------------ -------- ------- --------3.DEPTNO NUMBER(2) 部门编号4.DNAME VARCHAR2(14) Y 部门名称5.LOC VARCHAR2(13) Y 地点提示:工资 = 薪金 + 佣金scott.emp表的现有数据如下:1.SQL> select * from emp;2.3.EMPNO ENAME JOB MGR HIREDATE SAL COMMDEPTNO4.----- ---------- --------- ----- ----------- --------- ---------------5. 7369 SMITH CLERK 7902 1980-12-17 800.00206. 7499 ALLEN SALESMAN 7698 1981-2-20 1600.00 300.00307. 7521 WARD SALESMAN 7698 1981-2-22 1250.00 500.00308. 7566 JONES MANAGER 7839 1981-4-2 2975.00209. 7654 MARTIN SALESMAN 7698 1981-9-28 1250.00 1400.003010. 7698 BLAKE MANAGER 7839 1981-5-1 2850.003011. 7782 CLARK MANAGER 7839 1981-6-9 2450.001012. 7788 SCOTT ANALYST 7566 1987-4-19 4000.002013. 7839 KING PRESIDENT 1981-11-17 5000.001014. 7844 TURNER SALESMAN 7698 1981-9-8 1500.00 0.003015. 7876 ADAMS CLERK 7788 1987-5-23 1100.002016. 7900 JAMES CLERK 7698 1981-12-3 950.003017. 7902 FORD ANALYST 7566 1981-12-3 3000.002018. 7934 MILLER CLERK 7782 1982-1-23 1300.001019. 102 EricHu Developer 1455 2011-5-26 1 5500.00 14.001020. 104 huyong PM 1455 2011-5-26 1 5500.00 14.001021. 105 WANGJING Developer 1455 2011-5-26 1 5500.00 14.001022.23.17 rows selectedScott.dept表的现有数据如下:1.SQL> select * from dept;2.3.DEPTNO DNAME LOC4.------ -------------- -------------5. 10 ACCOUNTING NEW YORK6. 20 RESEARCH DALLAS7. 30 SALES CHICAGO8. 40 OPERATIONS BOSTON9. 50 50abc 50def10. 60 Developer HaiKou11.12.6 rows selected用SQL完成以下问题列表:1.列出至少有一个员工的所有部门。
2.列出薪金比“SMITH”多的所有员工。
3.列出所有员工的姓名及其直接上级的姓名。
4.列出受雇日期早于其直接上级的所有员工。
5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门6.列出所有“CLERK”(办事员)的姓名及其部门名称。
7.列出最低薪金大于1500的各种工作。
8.列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。
9.列出薪金高于公司平均薪金的所有员工。
10.列出与“SCOTT”从事相同工作的所有员工。
11.列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。
12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。
13.列出在每个部门工作的员工数量、平均工资和平均服务期限。
14.列出所有员工的姓名、部门名称和工资。
15.列出所有部门的详细信息和部门人数。
16.列出各种工作的最低工资。
17.列出各个部门的MANAGER(经理)的最低薪金。
18.列出所有员工的年工资,按年薪从低到高排序。
各答案如下,欢迎大家给出不出的解答方式。
1.--------1.列出至少有一个员工的所有部门。
---------2.SQL> select dname from dept where deptno in(select deptno from emp);3.DNAME4.--------------5.RESEARCH6.SALES7.ACCOUNTING8.--------或--------9.SQL> select dname from dept where deptno in(select deptno from emp group by deptno having count(deptno) >=1);10.DNAME11.--------------12.ACCOUNTING13.RESEARCH14.SALES1.--------2.列出薪金比“SMITH”多的所有员工。
----------2.SQL> select * from emp where sal > (select sal from emp where ename = 'SMITH');3.4.EMPNO ENAME JOB MGR HIREDATE SAL COMMDEPTNO5.----- ---------- --------- ----- ----------- --------- ---------------6. 7499 ALLEN SALESMAN 7698 1981-2-20 1600.00 300.00307. 7521 WARD SALESMAN 7698 1981-2-22 1250.00 500.00308. 7566 JONES MANAGER 7839 1981-4-2 2975.00209. 7654 MARTIN SALESMAN 7698 1981-9-28 1250.00 1400.003010. 7698 BLAKE MANAGER 7839 1981-5-1 2850.003011. 7782 CLARK MANAGER 7839 1981-6-9 2450.001012. 7788 SCOTT ANALYST 7566 1987-4-19 4000.002013. 7839 KING PRESIDENT 1981-11-17 5000.001014. 7844 TURNER SALESMAN 7698 1981-9-8 1500.00 0.003015. 7876 ADAMS CLERK 7788 1987-5-23 1100.002016. 7900 JAMES CLERK 7698 1981-12-3 950.003017. 7902 FORD ANALYST 7566 1981-12-3 3000.002018. 7934 MILLER CLERK 7782 1982-1-23 1300.001019. 102 EricHu Developer 1455 2011-5-26 1 5500.00 14.001020. 104 huyong PM 1455 2011-5-26 1 5500.00 14.001021. 105 WANGJING Developer 1455 2011-5-26 1 5500.00 14.001022. 16 rows selected1.--------3.列出所有员工的姓名及其直接上级的姓名。
----------2.SQL> select a.ename,(select ename from emp b where b.empno=a.mgr)as boss_name from emp a;3.ENAME BOSS_NAME4.---------- ----------5.SMITH FORD6.ALLEN BLAKE7.WARD BLAKE8.JONES KING9.MARTIN BLAKE10.BLAKE KING11.CLARK KING12.SCOTT JONES13.KING14.TURNER BLAKE15.ADAMS SCOTT16.JAMES BLAKE17.FORD JONESLER CLARK19.EricHu20.huyong21.WANGJING22.17 rows selected1.--------4.列出受雇日期早于其直接上级的所有员工。
----------2.SQL> select a.ename from emp a where a.hiredate<(select hiredatefrom emp b where b.empno=a.mgr);3.ENAME4.----------5.SMITH6.ALLEN7.WARD8.JONES9.BLAKE10.CLARK11.6 rows selected12.1.--------5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门----------2.SQL> select a.dname,b.empno,b.ename,b.job,b.mgr,b.hiredate,b.sal,b.deptno3. 2 from dept a left join emp b on a.deptno=b.deptno;4.5.DNAME EMPNO ENAME JOB MGR HIREDATE SAL DEPTNO6.-------------- ----- ---------- --------- ----- ----------- --------- ------7.RESEARCH 7369 SMITH CLERK 7902 1980-12-17 800.00 208.SALES 7499 ALLEN SALESMAN 7698 1981-2-20 1600.00 309.SALES 7521 WARD SALESMAN 7698 1981-2-22 1250.00 3010.RESEARCH 7566 JONES MANAGER 7839 1981-4-2 2975.00 2011.SALES 7654 MARTIN SALESMAN 7698 1981-9-28 1250.00 3012.SALES 7698 BLAKE MANAGER 7839 1981-5-1 2850.00 3013.ACCOUNTING 7782 CLARK MANAGER 7839 1981-6-9 2450.00 1014.RESEARCH 7788 SCOTT ANALYST 7566 1987-4-19 4000.00 2015.ACCOUNTING 7839 KING PRESIDENT 1981-11-17 5000.00 1016.SALES 7844 TURNER SALESMAN 7698 1981-9-8 1500.00 3017.RESEARCH 7876 ADAMS CLERK 7788 1987-5-23 1100.00 2018.SALES 7900 JAMES CLERK 7698 1981-12-3 950.00 3019.RESEARCH 7902 FORD ANALYST 7566 1981-12-3 3000.00 2020.ACCOUNTING 7934 MILLER CLERK 7782 1982-1-23 1300.00 1021.ACCOUNTING 102 EricHu Developer 1455 2011-5-26 1 5500.00 1022.ACCOUNTING 104 huyong PM 1455 2011-5-26 1 5500.00 1023.ACCOUNTING 105 WANGJING Developer 1455 2011-5-26 1 5500.00 1024.50abc25.OPERATIONS26.Developer27.28.20 rows selected1.--------6.列出所有“CLERK”(办事员)的姓名及其部门名称。