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>@PATH/filename.sql; 6.Oracle oledb 提供者在command中执行多条SQL语句与SQL SERVER有少许差别,SQL Server只需使用";"分割多条SQL语句,而Oracle需要遵守ORACLE调用规范,即除分号分割外,还需以begin /end;包围语句体.

使用C#描述应如下所示: this.oleDbCommand1.CommandText = "begin INSERT INTO GROUP_INFO (GROUP_ID, GROUP_NAME) VALUES (1, \'2\'); INSERT INTO GROUP_INFO(GROUP_ID, GROUP_NAME) VALUES (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

9.查找用户下的所有表:select * from tab; 2、显示当前连接用户 SQL> 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 6、查询当前用户下所有对象 SQL> select * from tab; 7、建立第一个表 SQL> create table a(a number); 8、查询表结构 SQL> desc a 9、插入新记录 SQL> insert into a values(1); 10、查询记录 SQL> select * from a; 11、更改记录 SQL> update a set a=2; 12、删除记录 SQL> delete from a; 13、回滚 SQL> roll; SQL> rollback; 14、提交 SQL> commit; select * from (select t.*,dense_rank() over (order by cardkind) rank from cardkind t) where rank = 2; 46. 如何在字符串里加回车? select 'Welcome to visit'||chr(10)||'www.CSDN.NET' from dual ; 47. 中文是如何排序的? Oracle9i之前,中文是按照二进制编码进行排序的。 在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值 SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序 SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序 SCHINESE_PINYIN_M 按照拼音排序 48. Oracle8i中对象名可以用中文吗? 可以 49. 如何改变WIN中SQL*Plus启动选项? SQL*PLUS自身的选项设置我们可以在$ORACLE_HOME/sqlplus/admin/glogin.sql中设置。

50. 怎样修改oracel数据库的默认日期? alter session set nls_date_format='yyyymmddhh24miss'; OR 可以在init.ora中加上一行 nls_date_format='yyyymmddhh24miss' 51. 如何将小表放入keep池中? alter table xxx storage(buffer_pool keep); 52. 如何检查是否安装了某个patch? check that oraInventory 53. 如何使select语句使查询结果自动生成序号? select rownum,COL from table; 54. 如何知道数据裤中某个表所在的tablespace? select tablespace_name from user_tables where table_name='TEST'; select * from user_tables中有个字段TABLESPACE_NAME,(oracle); select * from dba_segments where …; 55. 怎么可以快速做一个和原表一样的备份表? create table new_table as (select * from old_table); 55. 怎么在sqlplus下修改procedure? select line,trim(text) t from user_source where name ='A' order by line; 56. 怎样解除PROCEDURE被意外锁定? alter system kill session ,把那个session给杀掉,不过你要先查出她的session id or 把该过程重新改个名字就可以了。 57. SQL Reference是个什么东西? 是一本sql的使用手册,包括语法、函数等等,oracle官方网站的文档中心有下载. 58. 如何查看数据库的状态? unix下 ps -ef | grep ora windows下 看服务是否起来 是否可以连上数据库 59. 请问如何修改一张表的主键? alter table aaa drop constraint aaa_key ; alter table aaa add constraint aaa_key primary key(a1,b1) ; 60. 改变数据文件的大小? 用 ALTER DATABASE .... DATAFILE .... ; 手工改变数据文件的大小,对于原来的 数据文件有没有损害。 61. 怎样查看ORACLE中有哪些程序在运行之中? 查看v$sessions表 62. 怎么可以看到数据库有多少个tablespace? select * from dba_tablespaces; 63. 如何修改oracle数据库的用户连接数? 修改initSID.ora,将process加大,重启数据库. 64. 如何查出一条记录的最后更新时间? 可以用logminer 察看 65. 如何在PL/SQL中读写文件? UTL_FILE包允许用户通过PL/SQL读写操作系统文件。 66. 怎样把"&"放入一条记录中? insert into a values (translate ('at{&}t','at{}','at')); 67. EXP 如何加QUERY参数? EXP USER/PASS FILE=A.DMP TABLES(BSEMPMS) QUERY='"WHERE EMP_NO=\'S09394\'\" ﹔ 68. 关于oracle8i支持简体和繁体的字符集问题? ZHS16GBK可以支 69. Data Guard是什么软件? 就是Standby的换代产品 70. 如何创建SPFILE? SQL> connect / as sysdba SQL> select * from v$version; SQL> create pfile from spfile; SQL> CREATE SPFILE FROM PFILE='E:\ora9i\admin\eygle\pfile\init.ora'; 文件已创建。 SQL> CREATE SPFILE='E:\ora9i\database\SPFILEEYGLE.ORA' FROM PFILE='E:\ora9i\admin\eygle\pfile\init.ora'; 文件已创建。 71. 内核参数的应用? shmmax 含义:这个设置并不决定究竟Oracle数据库或者操作系统使用多少物理内存,只决定了

最多可以使用的内存数目。这个设置也不影响操作系统的内核资源。 设置方法:0.5*物理内存 例子:Set shmsys:shminfo_shmmax=10485760 shmmin 含义:共享内存的最小大小。 设置方法:一般都设置成为1。 例子:Set shmsys:shminfo_shmmin=1: shmmni 含义:系统中共享内存段的最大个数。 例子:Set shmsys:shminfo_shmmni=100 shmseg 含义:每个用户进程可以使用的最多的共享内存段的数目。 例子:Set shmsys:shminfo_shmseg=20: semmni 含义:系统中semaphore identifierer的最大个数。 设置方法:把这个变量的值设置为这个系统上的所有Oracle的实例的init.ora中的最大 的那个processes的那个值加10。 例子:Set semsys:seminfo_semmni=100 semmns 含义:系统中emaphores的最大个数。 设置方法:这个值可以通过以下方式计算得到:各个Oracle实例的initSID.ora里边的 processes的值的总和(除去最大的Processes参数)+最大的那个Processes×2+10× Oracle实例的个数。 例子:Set semsys:seminfo_semmns=200

合集下载

oracle sql并发查询语句

oracle sql并发查询语句

oracle sql并发查询语句Oracle SQL是一种强大的关系型数据库管理系统,支持并发查询,可以同时处理多个查询请求。

下面列举了十个符合题目要求的Oracle SQL并发查询语句。

1. 查询所有员工的姓名和工资```sqlSELECT 姓名, 工资 FROM 员工表;```2. 查询员工工资大于5000元的部门名称和平均工资```sqlSELECT 部门名称, AVG(工资) AS 平均工资FROM 员工表WHERE 工资 > 5000GROUP BY 部门名称;```3. 查询销售额最高的产品名称和销售额```sqlSELECT 产品名称, MAX(销售额) AS 最高销售额FROM 销售表GROUP BY 产品名称ORDER BY 最高销售额 DESCFETCH FIRST ROW ONLY;```4. 查询在某个日期范围内有销售记录的员工姓名和销售数量```sqlSELECT 姓名, COUNT(*) AS 销售数量FROM 员工表INNER JOIN 销售表 ON 员工表.员工ID = 销售表.员工ID WHERE 销售日期BETWEEN TO_DATE('2021-01-01', 'YYYY-MM-DD') AND TO_DATE('2021-12-31', 'YYYY-MM-DD') GROUP BY 姓名;```5. 查询每个部门的员工数量和平均工资```sqlSELECT 部门名称, COUNT(*) AS 员工数量, AVG(工资) AS 平均工资FROM 员工表GROUP BY 部门名称;```6. 查询没有销售记录的产品名称和库存数量```sqlSELECT 产品名称, 库存数量FROM 产品表WHERE 产品ID NOT IN (SELECT 产品ID FROM 销售表);```7. 查询员工工资排名前10的姓名和工资```sqlSELECT 姓名, 工资FROM (SELECT 姓名, 工资, RANK() OVER (ORDER BY 工资 DESC) AS 排名FROM 员工表)WHERE 排名 <= 10;```8. 查询每个部门的销售总额和销售数量```sqlSELECT 部门名称, SUM(销售额) AS 销售总额, COUNT(*) AS 销售数量FROM 员工表INNER JOIN 销售表 ON 员工表.员工ID = 销售表.员工ID GROUP BY 部门名称;```9. 查询在某个日期之后有销售记录的产品名称和最早销售日期```sqlSELECT 产品名称, MIN(销售日期) AS 最早销售日期FROM 产品表INNER JOIN 销售表 ON 产品表.产品ID = 销售表.产品ID WHERE 销售日期 > TO_DATE('2021-01-01', 'YYYY-MM-DD') GROUP BY 产品名称;```10. 查询销售额排名前5的员工姓名和销售额```sqlSELECT 姓名, 销售额FROM (SELECT 姓名, 销售额, RANK() OVER (ORDER BY 销售额DESC) AS 排名FROM 员工表INNER JOIN 销售表 ON 员工表.员工ID = 销售表.员工ID) WHERE 排名 <= 5;```以上是十个符合题目要求的Oracle SQL并发查询语句。

oracle查询表索引语句

oracle查询表索引语句

oracle查询表索引语句Oracle是一种关系型数据库管理系统,可以使用SQL语言进行数据查询和操作。

在Oracle中,索引是一种特殊的数据库对象,它可以提高查询效率和数据访问速度。

索引可以根据一个或多个列值进行排序,并且可以通过索引来快速定位到满足查询条件的数据行。

下面列举了一些常用的Oracle查询表索引的语句。

1. 查看表的索引信息:```sqlSELECT index_name, table_name, column_nameFROM all_ind_columnsWHERE table_name = '表名';```这个语句可以查询指定表的所有索引,包括索引名称、索引所在的表以及索引列。

2. 查看表的主键索引:```sqlSELECT constraint_name, column_nameFROM all_cons_columnsWHERE table_name = '表名'AND constraint_name = 'PK_表名';```这个语句可以查询指定表的主键索引,包括主键约束名称以及主键列。

3. 查看表的唯一索引:```sqlSELECT index_name, table_name, column_nameFROM all_ind_columnsWHERE table_name = '表名'AND uniqueness = 'UNIQUE';```这个语句可以查询指定表的唯一索引,包括索引名称、索引所在的表以及索引列。

4. 查看表的非唯一索引:```sqlSELECT index_name, table_name, column_nameFROM all_ind_columnsWHERE table_name = '表名'AND uniqueness = 'NONUNIQUE';```这个语句可以查询指定表的非唯一索引,包括索引名称、索引所在的表以及索引列。

oracle数据库模糊查询语句

oracle数据库模糊查询语句

oracle数据库模糊查询语句在Oracle数据库中,模糊查询可以使用通配符和特定的SQL函数来实现。

其中,通配符包括百分号(%)和下划线(_)。

下面我将从多个角度介绍Oracle数据库中实现模糊查询的方法。

首先,使用LIKE操作符进行模糊查询是最常见的方法。

例如,如果你想要查询以特定字符串开头的记录,可以使用以下语句:sql.SELECT FROM table_name WHERE column_name LIKE'your_string%';这将返回所有以"your_string"开头的记录。

同样,如果你想要查询以特定字符串结尾的记录,可以使用以下语句:sql.SELECT FROM table_name WHERE column_name LIKE'%your_string';这将返回所有以"your_string"结尾的记录。

另外,如果你想要查询包含特定字符串的记录,可以使用以下语句:sql.SELECT FROM table_name WHERE column_name LIKE'%your_string%';这将返回所有包含"your_string"的记录。

另一种方法是使用REGEXP_LIKE函数进行正则表达式匹配。

这种方法可以更灵活地进行模糊查询,例如可以指定多个匹配模式。

以下是一个示例:sql.SELECT FROM table_name WHERE REGEXP_LIKE(column_name, 'pattern');在这个示例中,'pattern'是你要匹配的正则表达式模式。

除了使用LIKE操作符和REGEXP_LIKE函数,Oracle数据库还提供了其他一些模糊查询的方法,比如使用ESCAPE子句来转义通配符,或者使用CONTAINS函数进行全文搜索。

oracle中查询表记录数的语句

oracle中查询表记录数的语句

一、介绍在数据库管理系统中,查询表的记录数是一项常见的操作。

对于Oracle数据库来说,查询表的记录数可以通过不同的方法来实现。

本文将从基础的SQL语句到高级SQL语句,以及一些常见的优化技巧,逐步介绍在Oracle数据库中查询表记录数的方法。

二、基础SQL语句1. 使用COUNT函数在Oracle数据库中,最常见的查询表记录数的方法就是使用COUNT 函数。

COUNT函数是SQL中的聚合函数之一,用于计算某一列的行数。

下面是使用COUNT函数查询表记录数的基础语句:```sqlSELECT COUNT(*) FROM table_name;```其中,table_name为需要查询记录数的表名。

2. 使用ROWNUM除了COUNT函数,还可以使用ROWNUM来查询表的记录数。

ROWNUM是Oracle数据库中的一个伪列,用于标识返回的行的行号。

通过查询ROWNUM的最大值,即可得到表的记录数。

以下是使用ROWNUM查询表记录数的语句:```sqlSELECT MAX(ROWNUM) FROM table_name;```这种方法虽然比较简单,但需要注意的是,查询结果可能会受到Oracle的优化影响,因此在某些情况下可能不够准确。

三、高级SQL语句1. 使用DBA_TABLES视图在Oracle数据库中,可以通过DBA_TABLES视图来查询表的记录数。

DBA_TABLES视图是Oracle系统提供的一个系统视图,可以显示数据库中所有表的信息,包括表的记录数。

以下是使用DBA_TABLES视图查询表记录数的语句:```sqlSELECT TABLE_NAME, NUM_ROWS FROM DBA_TABLES WHERE TABLE_NAME = 'table_name';```这种方法可以直接获取表的记录数,无需遍历整个表,因此效率较高。

2. 使用EXPL本人N PLAN除了上述方法,还可以通过使用EXPL本人N PLAN来查询表记录数。

oracle查询10条数据的sql语句

oracle查询10条数据的sql语句

oracle查询10条数据的sql语句Oracle 数据库是当今世界上最流行的数据库系统之一、它提供了高度安全性和完整的事务管理,以及可扩展性,跨平台和可控性等特点。

为了从 Oracle 数据库中检索数据,我们需要用到 SQL 语句。

SQL 语句是结构化查询语言的缩写,它是一个标准化的语言,用于管理和处理数据库。

在这篇文章中,我们将学习如何从 Oracle 数据库中查询前10条数据的SQL 语句。

在 Oracle 中,我们使用 SELECT 语句来检索数据。

它的基本语法如下:SELECT column1, column2, column3, ... FROM table_name;。

在这里,column1,column2,column3是我们要检索的列,而table_name是我们要检索数据的表。

但是,如果我们只想检索前10条记录,我们需要使用ROWNUM(行号)。

ROWNUM 是 Oracle 中的一个伪列,它表示查询返回的结果集中的行号。

下面是它的基本语法:SELECT column1, column2, ... FROM table_name WHERE ROWNUM <= 10;。

在这里,我们使用WHERE子句来限制检索的行数,仅返回前10行数据。

我们可以使用ORDERBY来排序结果集中的行,如下所示:SELECT column1, column2, ... FROM table_name WHERE ROWNUM <= 10 ORDER BY column_name ASC,DESC;。

这个语句将返回前10行已经按列名排序的数据,ASC表示升序排列,DESC表示降序排列。

如果你想从多个表中检索前10条记录,你可以使用JOIN语句,如下所示:SELECT column1, column2, ... FROM table1 JOIN table2 ON condition WHERE ROWNUM <= 10 ORDER BY column_name ASC,DESC;。

oracle表注释查询语句

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查询用户所有表的语句

O r a c l e查询用户所有表的语句Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998下面为您介绍的语句用于实现Oracle查询用户所有表,如果您对oracle查询方面感兴趣的话,不妨一看。

select*fromall_tab_comments--查询所有用户的表,视图等select*fromuser_tab_comments?--查询本用户的表,视图等select*fromall_col_comments--查询所有用户的表的列名和注释.select*fromuser_col_comments--查询本用户的表的列名和注释select*fromall_tab_columns--查询所有用户的表的列名等信息(详细但是没有备注).select*fromuser_tab_columns--查询本用户的表的列名等信息(详细但是没有备注).--一般使用1:,--一般使用2:selectr1,r2,r3,r5from,,fromuser_col_commentsa),,wherer4=r1以上就是oracle查询用户所有表的语句介绍。

如何在oracle中查询所有用户表的表名、主键名称、索引、外键等1、查找表的所有索引(包括索引名,类型,构成列):selectt.*,fromuser_ind_columnst,user_indexesiwhere=and=and=要查询的表?2、查找表的主键(包括名称,构成列):selectcu.*fromuser_cons_columnscu,user_constraintsauwhere=and='P'and=要查询的表?3、查找表的唯一性约束(包括名称,构成列):selectcolumn_namefromuser_cons_columnscu,user_constraintsauwhere=and='U'and=要查询的表?4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):select*fromuser_constraintscwhere='R'and=要查询的表查询外键约束的列名:select*fromuser_cons_columnsclwhere=外键名称查询引用表的键的列名:select*fromuser_cons_columnsclwhere=外键引用表的键名?5、查询表的所有列及其属性selectt.*,fromuser_tab_columnst,user_col_commentscwhere=and=and=要查询的表。

oracle 查dll语句

oracle 查dll语句Oracle是一种关系型数据库管理系统,具有强大的数据处理和查询功能。

在Oracle中,可以使用SQL语言来查询和操作数据库中的数据。

下面列举了一些在Oracle中查询.dll文件的语句。

1. 查询数据库中所有的.dll文件:SELECT * FROM sys.dba_libraries WHERE library_name LIKE '%.dll';2. 查询指定目录下的.dll文件:SELECT * FROM sys.dba_libraries WHERE library_name LIKE 'C:\Windows\system32\%.dll';3. 查询数据库中所有的.dll文件及其所属的模块:SELECT library_name, module_name FROM sys.dba_libraries WHERE library_name LIKE '%.dll';4. 查询指定目录下的.dll文件及其所属的模块:SELECT library_name, module_name FROM sys.dba_libraries WHERE library_name LIKE 'C:\Windows\system32\%.dll';5. 查询数据库中所有的.dll文件及其路径:SELECT library_name, file_spec FROM sys.dba_libraries WHERE library_name LIKE '%.dll';6. 查询指定目录下的.dll文件及其路径:SELECT library_name, file_spec FROM sys.dba_libraries WHERE library_name LIKE 'C:\Windows\system32\%.dll';7. 查询数据库中所有的.dll文件及其大小:SELECT library_name, bytes/1024/1024 AS size_mb FROM sys.dba_libraries WHERE library_name LIKE '%.dll';8. 查询指定目录下的.dll文件及其大小:SELECT library_name, bytes/1024/1024 AS size_mb FROM sys.dba_libraries WHERE library_name LIKE 'C:\Windows\system32\%.dll';9. 查询数据库中指定.dll文件的详细信息:SELECT * FROM sys.dba_libraries WHERE library_name = 'xxx.dll';10. 查询指定目录下的.dll文件的详细信息:SELECT * FROM sys.dba_libraries WHERE library_name = 'C:\Windows\system32\xxx.dll';以上是一些在Oracle中查询.dll文件的语句。

oracle数据库模糊查询语句

oracle数据库模糊查询语句全文共四篇示例,供读者参考第一篇示例:Oracle数据库是一种广泛使用的关系型数据库管理系统,它支持使用SQL语言进行数据查询和操作。

在实际业务场景中,经常会遇到需要进行模糊查询的情况,以便更快地找到需要的数据。

模糊查询是一种能够匹配模式而非确定性的查询方法,在关键字不确定或者查询结果需要包含多种可能性时非常有用。

在Oracle数据库中,模糊查询主要通过使用LIKE关键字来实现。

通过使用通配符和LIKE关键字结合,可以实现更加灵活和强大的模糊查询功能。

接下来我们将详细介绍如何在Oracle数据库中使用模糊查询语句。

通配符是一种特殊字符,用于在模糊查询中匹配模式。

在Oracle 数据库中,主要有两种通配符:百分号(%)和下划线(_)。

百分号用于匹配任意字符(包括零个字符),而下划线用于匹配单个字符。

通过在查询语句中使用这些通配符,可以实现针对不确定字符的模糊匹配。

下面是一个简单的例子,演示如何在Oracle数据库中使用LIKE关键字进行模糊查询。

假设我们有一个名为“employees”的表,其中包含员工姓名信息。

我们想要查找所有名字包含“John”的员工信息,可以使用如下查询语句:```sqlSELECT * FROM employees WHERE name LIKE '%John%';```在上面的查询语句中,`%`是通配符,表示可以匹配0个或多个任意字符。

这条查询语句会返回所有名字中包含“John”的员工信息。

如果想要查找名字以“John”开头的员工信息,可以使用如下查询语句:类似地,如果要查找名字以“John”结尾的员工信息,可以使用如下查询语句:除了使用`%`通配符外,还可以结合使用下划线来进行更精确的模糊匹配。

如果想要查找名字为“John”且名字总长度为5的员工信息,可以使用如下查询语句:通过使用不同的组合方式,可以实现各种各样的模糊查询。

oracle数据库常用的99条查询语句

1. select * from emp;2. select empno, ename, job from emp;3. select empno 编号, ename 姓名, job 工作 from emp;4. select job from emp;5. select distinct job from emp;6. select distinct empno, job from emp;说明:因为雇员编号不重复, 所以此时证明所有的列没有重复,所以不能消除掉重复的列.7. 查询出雇员的编号, 姓名, 工作, 但是显示的格式:编号是: 7369 的雇员, 姓名是: smith, 工作是: clearselect '编号是: ' || empno || '的雇员, 姓名是: ' || ename || ', 工作是: ' || job from emp;8. 求出每个雇员的姓名及年薪select ename, sal * 12 income from emp;9. 求出工资大于 1500 的所有雇员信息select * from emp where sal > 1500;10. 查询每月可以得到奖金的雇员信息select * from emp where comm is not null;11. 查询没有奖金的雇员信息select * from emp where comm is null;12. 查询出基本工资大于 1500 同时可以领取奖金的雇员信息select * from emp where sal > 1500 and comm is not null;13. 查询出基本工资大于 1500 或者可以领取奖金的雇员信息select * from emp where sal > 1500 or comm is not null;14. 查询出基本工资不大于 1500 或者不可以领取奖金的雇员信息select * from emp where not(sal > 1500 and comm is not null);15. 查询基本工资大于 1500, 但是小于 3000 的全部雇员信息select * from emp where sal > 1500 and sal < 3000;16. 查询基本工资大于等于 1500, 但是小于等于 3000 的全部雇员信息select * from emp where sal >= 1500 and sal <= 3000;select * from emp where sal between 1500 and 3000;17. 查询出在 1981 年雇佣的全部雇员信息(1981 年 1 月 1 日到 1981 年 12 月 31 日之间的雇佣的雇员)select * from emp where hiredate between '1-1月-81' and '31-12月-81';18. 要求查询出姓名是 smith 的雇员信息select * from emp where ename = 'SMITH';19. 要求查询出雇员是 7369, 7499, 7521 的雇员的具体信息select * from emp where empno = 7369 or empno = 7499 or empno = 7521;select * from emp where empno in(7369, 7499, 7521);20. 要求查询出雇员不是 7369, 7499, 7521 的雇员的具体信息select * from emp where empno not in(7369, 7499, 7521);21. 要求查询出姓名是 smith, allen, king 的雇员信息select * from emp where ename in('SMITH', 'ALLEN', 'KING');22. 查询出所有雇员姓名中第二个字母包含 "M" 的雇员信息select * from emp where ename like '_M%';23. 查询出雇员姓名中包含字母 M 的雇员信息select * from emp where ename like '%M%';24. 要求查询出在 1981 年雇佣的雇员信息select * from emp where hiredate like '%81%';25. 查询工资中包含 5 的雇员信息select * from emp where sal like '%5%';26. 查询雇员编号不是 7369 的雇员信息select * from emp where empno != 7369;select * from emp where empno <> 7369;27. 要求按照工资由低到高排序select * frm emp order by sal;select * from emp order by sal asc;28. 要求按照工资由高到低排序select * from emp order by sal desc;29. 要求查询出 20 部门的所有雇员信息, 查询的信息按照工资由高到低排序,如果工资相等,则按照雇佣日期由早到晚排序.select * from emp where deptno = 20 order by sal desc, hiredate asc;30. 将小写字母变为大写字母select upper('hello') from dual;31. 将大写字母变为小写字母select lower('HELLO WORLD') from dual;32. 要求查询出姓名是 smith 的雇员信息select * from emp where ename = upper('smith');33. 使用 initcap() 函数将单词的第一个字母大写select initcap('hello world') from dual;34. 将雇员表中的雇员姓名变为开头字母大写select initcap(ename) from emp;35. 将字符串 "hello" 和 "world" 进行串联select concat('hello ', 'world') from dual;36. 对字符串进行操作的常用字符处理函数select substr('hello', 1, 3) 截取字符串, length('hello') 字符串的长度, replace('hello', 'l', 'x') 字符串替换 from dual;select substr('hello', 0, 3) 截取字符串, length('hello') 字符串的长度, replace('hello', 'l', 'x') 字符串替换 from dual;37. 显示所有雇员的姓名及姓名的后三个字符select ename, substr(ename, length(ename) -2) from emp;select ename, substr(ename, -3, 3) from emp;38. 使用数值函数执行四舍五入操作select round(789.536) from dual;39. 要求将 789.536 数值保留两位小数select round(789.536, 2) from dual;40. 要求将 789.536 数值中的整数的十位进行四舍五入进位select round(789.536, -2) from dual;41. 采用 trunc() 函数不会保留任何小数,而且小数点也不会执行四舍五入的操作select trunc(789.536) from dual;42. 通过 trunc() 也可以指定小数点的保留位数select trunc(789.536, 2) from dual;43. 作用负数表示位数select trunc(789.536, -2) from dual;44. 使用 mod() 函数可以进行取余的操作select mod(10, 3) from dual;45. 显示 10 部门雇员进入公司的星期数(当前日期 - 雇佣日期 = 天数 / 7 = 星期数)select empno, ename, round((sysdate - hiredate) / 7) from emp where deptno = 10;46. 日期函数months_between(): 求出给定日期范围的月数add_months(): 在指定的日期上加上指定的月数, 求出之后的日期next_day(): 指定日期的下一个日期last_day(): 求出给定日期当月的最后一天日期47.select empno, ename, months_between(sysdate, hiredate) from emp;select empno, ename, round(months_between(sysdate, hiredate)) from emp;48. select sysdate, add_months(sysdate, 4) from dual;49. select next_day(sysdate, '星期一') from dual;50. select last_day(sysdate) from dual;51. 转换函数to_char(): 转换成字符串to_number(): 转换成数字to_date(): 转换成日期52. 查询所有雇员的雇员编号, 姓名, 雇佣日期select empno,ename,to_char(hiredate, 'yyyy') year,to_char(hiredate, 'mm') months,to_char(hiredate, 'dd') dayfrom emp;select empno, ename, to_char(hiredate, 'yyyy-mm-dd') from emp;select empno, ename, to_char(hiredate, 'fmyyyy-mm-dd') from emp;53. 查询所有雇员的编号, 姓名和工资select empno, ename, sal from emp;select empno, ename, to_char(sal, '99,999') from emp;select empno, ename, to_char(sal, 'L99,999') from emp;select empno, ename, to_char(sal, '$99,999') from emp;54. select to_number('123') + to_number('123') from dual;55. 将一个字符串转换成日期类型select to_date('2009-01-01', 'yyyy-mm-dd') from dual;56. 求出每个雇员的年薪(要求加上奖金)select empno, ename, sal, comm, (sal + comm) * 12 from emp;select empno, ename, sal, comm, nvl(comm, 0), (sal + nvl(comm, 0)) * 12 income from emp;57. decode() 函数类似于 if....elsif...else 语句select decode(1, 1, '内容是 1', 2, '内容是 2', 3, '内容是 3') from dual;58. 查询出雇员的编号, 姓名, 雇佣日期及工作, 要求将雇员的工作替换成以下信息:select empno 雇员编号,ename 雇员姓名,hiredate 雇佣日期,decode(job,'CLERK', '业务员','SALESMAN', '销售人员','MANAGER', '经理','ANALYST', '分析员','PRESIDENT', '总裁') 职位from emp;59. 笛卡尔积(交差连接)select * from emp, dept;select * from emp cross join dept;60. 内连接select * from emp e, dept d where e.deptno = d.deptno;select * from emp e inner join dept d on e.deptno = d.deptno;select * from emp e join dept d on e.deptno = d.deptno;61. 自然连接select * from emp natural join dept;select * from emp e join dept d using(deptno);62. 要求查询出雇员的编号, 姓名, 部门的编号, 名称, 地址select e.empno, e.ename, d.deptno, d.dname, d.loc from emp e, dept d where e.deptno = d.deptno;63. 要求查询出雇员的姓名, 工作, 雇员的直接上级领导姓名select e.ename, e.job, m.ename from emp e, emp m where e.mgr = m.empno;64. 要求查询出雇员的姓名, 工作, 雇员的直接上级领导姓名以及部门名称select e.ename, e.job, m.ename, d.dname from emp e, emp m, dept d where e.mgr = m.empno and e.deptno = d.deptno;65. 要求查询出每个雇员的姓名, 工资, 部门名称, 工资在公司的等级(salgrade), 及其领导的姓名及工资所在公司的等级select e.ename, e.sal, d.dname, s.grade, m.ename, m.sal, ms.gradefrom emp e, dept d, salgrade s, emp m, salgrade mswhere e.deptno = d.deptnoand e.sal between s.losal and s.hisaland e.mgr = m.empnoand m.sal between ms.losal and ms.hisal;select e.ename,e.sal,d.dname,decode(s.grade, 1, '第五等级', 2, '第四等级', 3, '第三等级', 4, '第二等级', 5, '第一等级'),m.ename,m.sal,decode(ms.grade, 1, '第五等级', 2, '第四等级', 3, '第三等级', 4, '第二等级', 5, '第一等级')from emp e, dept d, salgrade s, emp m, salgrade mswhere e.deptno = d.deptno and e.sal between s.losal and s.hisal and e.mgr = m.empno and m.sal between ms.losal and ms.hisal;66. select empno, ename, d.deptno, dname, loc from emp e, dept d where e.deptno = d.deptno;select empno, ename, d.deptno, dname, loc from emp e inner join dept d on e.deptno = d.deptno;67. 左外连接select empno, ename, d.deptno, dname, loc from emp e, dept d where e.deptno = d.deptno(+);select empno, ename, d.deptno, dname, loc from emp e left outer join dept d on e.deptno = d.deptno;select empno, ename, d.deptno, dname, loc from emp e left join dept d on e.deptno = d.deptno(+);68. 右外连接select empno, ename, d.deptno, dname, loc from emp e, dept d where e.deptno(+) = d.deptno;select empno, ename, d.deptno, dname, loc from emp e right outer join dept d on e.deptno = d.deptno;select empno, ename, d.deptno, dname, loc from emp e right join dept d on e.deptno = d.deptno;69. select e.empno, e.ename, m.empno, m.ename from emp e, emp m where e.mgr = m.empno;70. select e.empno, e.ename, m.empno, m.ename from emp e, emp m where e.mgr = m.empno(+);71.select * from emp e, dept d where e.deptno = d.deptno and d.deptno = 30; select * from emp e inner join dept d on e.deptno = d.deptno where d.deptno = 30;select * from emp e join dept d on e.deptno = d.deptno where d.deptno = 30; select * from emp e natural join dept d where deptno = 30;select * from emp e join dept d using(deptno) where deptno = 30;72.select e.ename, d.deptno, d.dname, d.loc from emp e right outer join dept d on e.deptno = d.deptno;select e.ename, d.deptno, d.dname, d.loc from emp e right join dept d on e.deptno = d.deptno;select e.ename, d.deptno, d.dname, d.loc from emp e, dept d where e.deptno(+) = d.deptno;73. select count(ename) from emp;74. select min(sal) from emp;75. select max(sal) from emp;76. select sum(sal) from emp;77. select avg(sal) from emp;78. select sum(sal) from emp where deptno = 20;79. select avg(sal) from emp where deptno = 20;80. 求出每个部门的雇员数量select deptno, count(deptno) from emp group by deptno;select deptno, count(empno) from emp group by deptno;81. 求出每个部门的平均工资select deptno, avg(sal) from emp group by deptno;82. 按部门分组, 并显示部门的名称, 及每个部门的员工数select d.dname, count(e.empno) from emp e, dept dwhere e.deptno = d.deptnogroup by d.dname;select d.deptno, d.dname, temp.cfrom (select deptno, count(e.empno) c from emp e group by e.deptno) temp, dept dwhere temp.deptno = d.deptno;83. 要求显示出平均工资大于 2000 的部门编号和平均工资select deptno, avg(sal) from emp group by deptno having avg(sal) > 2000;84. 显示非销售人员工作名称以及从事同一工作雇员的月工资的总和,并且要满足从事同一工作的雇员的月工资合计大于 5000, 输出结果按月工资的合计升序排序.select job, sum(sal) su from emp where job <> 'SALESMAN' group by job having sum(sal) > 5000 order by su;select temp.job, sum(temp.sal) sfrom (select job, sal from emp e where job <> 'SALESMAN') tempgroup by temp.jobhaving sum(temp.sal) > 5000order by s;85. 求出平均工资最高的部门工资select max(avg(sal)) from emp group by deptno;86. 要求查询出比雇员编号为 7654 工资高的所有雇员信息select * from emp where sal >(select sal from emp where empno = 7654);87. 要求查询出工资比 7654 高, 同时与 7788 从事相同工作的全部雇员信息select * from empwhere sal >(select sal from emp where empno = 7654)and job = (select job from emp where empno = 7788);88. 要求查询出工资最低的雇员姓名, 工作, 工资select ename, job, sal from emp where sal = (select min(sal) from emp);89. 要求查询出:部门名称,部门的员工数,部门的平均工资,部门的最低收入雇员的姓名select d.dname, temp.c, temp.a, e.enamefrom dept d,(select deptno, count(empno) c, avg(sal) a, min(sal) m from emp group by deptno) temp,emp ewhere d.deptno = temp.deptno and e.sal = temp.m;select d.deptno, temp.dname, temp.c, temp.a, e.ename, e.salfrom(select d.dname , count(e.empno) c, avg(e.sal) a, min(e.sal) mfrom emp e, dept dwhere e.deptno = d.deptnogroup by d.dname) temp,emp e,dept dwhere temp.m = e.saland temp.dname = d.dname;90. 求出每个部门的最低工资的雇员的信息select * from emp where sal in(select min(sal) from emp group by deptno); select * from emp where sal =any(select min(sal) from emp group by deptno); select * from(select min(sal) m from emp group by deptno) temp,emp ewhere e.sal = temp.m;91. 范例 90 中, 比子查询条件中最低(小)的工资要大的雇员信息select * from emp where sal >any(select min(sal) from emp group by deptno); select * from emp where sal > (select min(min(sal)) from emp group by deptno);92. 范例 90 中, 比子查询条件中最高(大)的工资要小的雇员信息select * from emp where sal <any(select min(sal) from emp group by deptno); select * from emp where sal < (select max(min(sal)) from emp group by deptno);93. 范例 90 中, 比子查询条件中最高(大)的工资要大的雇员信息select * from emp where sal >all(select min(sal) from emp group by deptno); select * from emp where sal > (select max(min(sal)) from emp group by deptno);94. 范例 90 中, 比子查询条件中最低(小)的工资要小的雇员信息select * from emp where sal <all(select min(sal) from emp group by deptno); select * from emp where sal < (select min(min(sal)) from emp group by deptno);95. 查找出 20 部门中没有奖金的雇员信息select * from emp where (sal, nvl(comm, -1)) in (select sal, nvl(comm, -1) from emp where deptno = 20);select * from emp where deptno = 20 and comm is null;96. union 操作符返回两个查询选定的所有不重复的行select deptno from emp union select deptno from dept;97. union all 操作符合并两个查询选定的所有行,包括重复的行select deptno from emp union all select deptno from dept;98. intersect 操作符只返回两个查询都有的行select deptno from emp intersect select deptno from dept;99. minus 操作符只返回由第一个查询选定但是没有被第二个查询选定的行, 也就是在第一个查询结果中排除在第二个查询结果中出现的行select deptno from dept minus select deptno from emp;。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档