Oracle查询语句基本命令一

合集下载

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常用查询语句

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 * 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常用的45个查询语句

Oracle常用的45个查询语句

日期/时间 相关查询1、获取当前月份的第一天运行这个命令能快速返回当前月份的第一天。

你可以用任何的日期值替换 “SYSDATE”来指定查询的日期。

1 SELECT TRUNC (SYSDATE, 'MONTH') "First day of current month "2 FROM DUAL;2、获取当前月份的最后一天 这个查询语句类似于上面那个语句,而且充分照顾到了闰年,所以当二月份有 29 号,那么就会返回 29/2 。

你可以用任何的日期值替换 “SYSDATE”来指定查询的日期。

view sourceprint?1 SELECT TRUNC (LAST_DAY (SYSDATE)) "Last day of current mont h"2 FROM DUAL;3、获取当前年份的第一天每年的第一天都是1 月1日,这个查询语句可以使用在存储过程中,需要对当前年份第一天做一些计算的时候。

你可以用任何的日期值替换 “SYSDATE”来指定查询的日期。

1 SELECT TRUNC (SYSDATE, 'YEAR') "Year First Day" FROM DUAL;4、获取当前年份的最后一天类似于上面的查询语句。

你可以用任何的日期值替换 “SYSDATE”来指定查询的日期。

view sourceprint?1 SELECT ADD_MONTHS (TRUNC (SYSDATE, 'YEAR'), 12) - 1 "Year Last Day" FROM DUAL5、 获取当前月份的天数这个语句非常有用,可以计算出当前月份的天数。

你可以用任何的日期值替换 “SYSDATE”来指定查询的日期。

view sourceprint?1 SELECT CAST (TO_CHAR (LAST_DAY (SYSDATE), 'dd') AS INT) num ber_of_days2 FROM DUAL;6、获取当前月份剩下的天数下面的语句用来计算当前月份剩下的天数。

Oracle数据库基础知识:SELECT语句

Oracle数据库基础知识:SELECT语句

Oracle数据库基础知识:SELECT语句Oracle数据库基础知识:SELECT语句SELECT语句是指用来查询、添加、和删除数据库中数据的语句, 和删除数据库中数据的语句 , 它们是 SELECT 、 INSERT 、 UPDATE 、DELETE等. 下面是Oracle数据库基础知识——SELECT语句,希望对大家有所帮助!普通用户连接conn scott/tiger超级管理员连接conn “sys/sys as sysdba”Disconnect 断开连接把SQL存到文件 save c:\1.txtEd c:\1.txt编辑SQL语句@c:\1.txt运行SQL语句Desc emp描述EMP结构Select * from tab 查看该用户下大所有对象Show user显示当前用户书写SQL语句的原则大小写不敏感,但单引和双引内的大小写是敏感的。

切记!关键字不能缩写可以分行书写,但关键字不能被跨行书写,单引内也不要跨行书写。

一般每个子句是一行可以排版来增加可读性字符串用单引列的别名用双引SELECT语句1、简单的Select语句Select * from table 不指定查询的字段Select attr1,attr2 from table指定查询某些字段Select attr1,attr2 from table where attr1=xxx查询符合条件的指定字段2、使用算术表达式 + - / *表达式的运算是有优先级的,和程序中的.一样,先乘除后加减,括号强制优先级.+ - * /先乘除,后加减,括号强制优先级Select ename,12*sal+300 from emp;Select ename,12*(sal+300) from emp;3、连接运算符 ||4、使用字段别名 as别名的使用原则1。

区分同名列的名称2。

非法的表达式合法化3。

按照你的意愿显示列的名称4。

特殊的别名要双引5。

oracle数据库语句汇总

oracle数据库语句汇总

oracle数据库语句汇总在Oracle数据库中,有许多常用的SQL语句可以用于查询、插入、更新和删除数据。

下面列举了一些常见的Oracle数据库语句,以供参考。

1. 查询表中的所有数据:```SELECT * FROM 表名;```2. 查询表中的特定字段数据:```SELECT 字段1, 字段2, ... FROM 表名;```3. 查询表中满足特定条件的数据:```SELECT * FROM 表名 WHERE 条件;```4. 对查询结果进行排序:```SELECT * FROM 表名 ORDER BY 字段 ASC/DESC;```5. 对查询结果进行分组:```SELECT 字段1, 字段2, ... FROM 表名 GROUP BY 字段;```6. 对查询结果进行统计:```SELECT COUNT(*) FROM 表名;```7. 插入数据到表中:```INSERT INTO 表名(字段1, 字段2, ...) VALUES (值1, 值2, ...);```8. 更新表中的数据:```UPDATE 表名 SET 字段1 = 值1, 字段2 = 值2 WHERE 条件;9. 删除表中的数据:```DELETE FROM 表名 WHERE 条件;```10. 创建新表:```CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型,...);```11. 修改表结构:```ALTER TABLE 表名 ADD (字段数据类型); ```12. 删除表:DROP TABLE 表名;```13. 创建索引:```CREATE INDEX 索引名 ON 表名 (字段);```14. 删除索引:```DROP INDEX 索引名;```15. 创建视图:```CREATE VIEW 视图名 AS SELECT * FROM 表名 WHERE 条件; ```16. 删除视图:```DROP VIEW 视图名;17. 创建存储过程:```CREATE PROCEDURE 存储过程名ISBEGIN-- 存储过程的具体逻辑END;```18. 调用存储过程:```EXEC 存储过程名;```以上是一些常见的Oracle数据库语句,可以满足大部分基本的数据操作需求。

Oracle中查询当前数据库中的所有表空间和对应的数据文件语句命令

Oracle中查询当前数据库中的所有表空间和对应的数据文件语句命令

Oracle中查询当前数据库中的所有表空间和对应的数据⽂件语句命令Oracle中查询当前数据库中的所有表空间和对应的数据⽂件语句命令-----------------------------------------------------------------------------------------1、在cmd中输⼊sqlplus,弹出命令⾏窗体2、输⼊⼝令和密码3、SQL>col file_name for a60;4、SQL>set linesize 160;5、SQL>select file_name,tablespace_name,bytes from dba_data_files;---------------------------------------------------------------------------------------------同样的可以从dba_temp_files数据字典中查询临时表空间的信息SQL>select tablespace_name,file_name from dba_temp_files;----------------------------------------------------------------------------------------------删除Oracle表空间与表空间⽂件语句如下:SQL>drop tablespace 表空间名称 including contents and datafiles ;⽰例:--删除Oracle表空间和⽂件的语句命令drop tablespace 表空间名称 including contents and datafiles cascade constraints;--including contents 删除表空间中的内容--datafiles 删除表空间中的数据⽂件--cascade constraints 删除所有与表空间数据有关的级联,如主外键等----------------------------------------------------------------------------------------------。

oracle 查询表数量的语句

oracle 查询表数量的语句

oracle 查询表数量的语句Oracle是一种关系型数据库管理系统,它支持SQL语言,可以用来查询、管理和维护数据库。

在Oracle中,查询表数量是一项非常基础的操作,可以通过多种方式实现。

下面列举了10个常用的查询表数量的语句。

1. 查询所有表的数量SELECT COUNT(*) FROM user_tables;这个语句会返回当前用户下所有表的数量。

2. 查询指定用户下的表数量SELECT COUNT(*) FROM all_tables WHERE owner = 'username';这个语句会返回指定用户下所有表的数量。

3. 查询系统中所有表的数量SELECT COUNT(*) FROM all_tables WHERE owner = 'SYS';这个语句会返回系统中所有表的数量。

4. 查询当前用户下指定模式的表数量SELECT COUNT(*) FROM user_tables WHERE table_name LIKE 'pattern%';这个语句会返回当前用户下以指定模式开头的表的数量。

5. 查询当前用户下指定类型的表数量SELECT COUNT(*) FROM user_tables WHERE table_type = 'TABLE';这个语句会返回当前用户下所有表的数量。

6. 查询当前用户下指定表空间的表数量SELECT COUNT(*) FROM user_tables WHERE tablespace_name = 'tablespace_name';这个语句会返回当前用户下指定表空间的表的数量。

7. 查询当前用户下指定日期之后创建的表数量SELECT COUNT(*) FROM user_tables WHERE created_date > 'date';这个语句会返回当前用户下指定日期之后创建的表的数量。

oracle数据库查询命令

oracle数据库查询命令

oracle数据库查询命令⼀、⽤户表数据查询1、⽤户查看当前⽤户的缺省表空间SQL>select username,default_tablespace from user_users;查看当前⽤户的⾓⾊SQL>select * from user_role_privs;查看当前⽤户的系统权限和表级权限SQL>select * from user_sys_privs;SQL>select * from user_tab_privs;2、表 tabs查看⽤户下所有的表SQL>select * from user_tables;查看名称包含log字符的表SQL>select object_name,object_id from user_objects where instr(object_name,'LOG')>0;查看某表的创建时间SQL>select object_name,created from user_objects where object_name=upper('&table_name');查看某表的⼤⼩SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&table_name');查看放在ORACLE的内存区⾥的表SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;3、索引 ind查看索引个数和类别SQL>select index_name,index_type,table_name from user_indexes order by table_name;查看索引被索引的字段SQL>select * from user_ind_columns where index_name=upper('&index_name');查看索引的⼤⼩SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&index_name');4、序列号 seq查看序列号,last_number是当前值SQL>select * from user_sequences; 或 select * from seq;5、视图查看视图的名称SQL>select view_name from user_views;查看创建视图的select语句SQL>set view_name,text_length from user_views;SQL>set long 2000; 说明:可以根据视图的text_length值设定set long 的⼤⼩SQL>select text from user_views where view_name=upper('&view_name');6、同义词查看同义词的名称SQL>select * from user_synonyms;7、约束条件查看某表的约束条件SQL>select constraint_name, constraint_type,search_condition, r_constraint_name from user_constraints where table_name = upper('&table_name');SQL>select c.constraint_name,c.constraint_type,cc.column_namefrom user_constraints c,user_cons_columns ccwhere c.owner = upper('&table_owner') and c.table_name = upper('&table_name') and c.owner = cc.owner and c.constraint_name = cc.constraint_nameorder by cc.position;8、存储函数和过程查看函数和过程的状态SQL>select object_name,status from user_objects where object_type='FUNCTION'; SQL>select object_name,status from user_objects where object_type='PROCEDURE';查看函数和过程的源代码SQL>select text from all_source where owner=user and name=upper('&plsql_name');9、获取创建表语句 设置输出长度 SQL> SET LONG 9999; SQL> SELECT DBMS_METADATA.GET_DDL('TABLE','tablename') FROM DUAL;⼆、查看数据库的SQL1、查看表空间的名称及⼤⼩select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_sizefrom dba_tablespaces t, dba_data_files dwhere t.tablespace_name = d.tablespace_namegroup by t.tablespace_name;2、查看表空间物理⽂件的名称及⼤⼩select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_spacefrom dba_data_filesorder by tablespace_name;3、查看回滚段名称及⼤⼩select segment_name, tablespace_name, r.status,(initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent,max_extents, v.curext CurExtentFrom dba_rollback_segs r, v$rollstat vWhere r.segment_id = n(+)order by segment_name ;4、查看控制⽂件select name from v$controlfile;5、查看⽇志⽂件select member from v$logfile;6、查看表空间的使⽤情况select sum(bytes)/(1024*1024) as free_space,tablespace_namefrom dba_free_spacegroup by tablespace_name;SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE, (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE CWHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;7、查看数据库库对象select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status;8、查看数据库的版本Select version FROM Product_component_versionWhere SUBSTR(PRODUCT,1,6)='Oracle';9、查看数据库的创建⽇期和归档⽅式Select Created, Log_Mode, Log_Mode From V$Database;。

oracle 分表查询语句

oracle 分表查询语句

oracle 分表查询语句Oracle是一种关系型数据库管理系统,可以使用分表查询语句来查询分布在不同表中的数据。

下面是一些示例:1. 查询两个表中的数据:SELECT *FROM table1, table2WHERE table1.id = table2.id;2. 查询特定条件下的数据:SELECT *FROM tableWHERE condition = value;3. 查询多个条件下的数据:SELECT *FROM tableWHERE condition1 = value1AND condition2 = value2;4. 查询日期范围内的数据:SELECT *FROM tableWHERE date_column BETWEEN start_date AND end_date;5. 查询满足某个条件的数据并按特定字段排序:SELECT *FROM tableWHERE condition = valueORDER BY column;6. 查询符合某个模式的数据:SELECT *FROM tableWHERE column LIKE 'pattern';7. 查询不重复的数据:SELECT DISTINCT columnFROM table;8. 查询满足条件的前n条数据:SELECT *FROM tableWHERE condition = valueFETCH FIRST n ROWS ONLY;9. 查询特定字段的统计信息:SELECT column, COUNT(*)FROM tableGROUP BY column;10. 查询两个表中的数据并进行连接:SELECT *FROM table1INNER JOIN table2 ON table1.id = table2.id;以上是一些常用的Oracle分表查询语句示例,可以根据具体的需求进行调整和扩展。

oracle基础select查询语句

oracle基础select查询语句

select dname "工资" from dept;--查询全部员工select * from emp;--查询指定的编号,姓名和职位select empno,ename,job from emp;--修改显示别名空格,数字和特殊符号(#$除外)做别名需要双引号select empno as "1" ,ename 员工姓名,job "职位" from emp;--去除重复行select distinct job from emp;--列拼接select concat(concat(concat(concat(concat(' 编号是:',empno ),'的雇员,姓名是:'),ename) ,'工作是:'),job) from emp;--oracle用简单办法||拼接select '编号:' || empno || '的雇员,姓名是:' || ename || ',工作是:' || job from emp;--使用nvl (v1,v2)处理空值v1不为空返回,v2为空返回v2select ename,sal,comm,sal*12 + nvl (comm,0) from emp;--使用decodeselect ename,sal,comm,sal*12 + decode(comm,null,0,comm)from emp;--单行单列虚拟表dualselect sysdate from dual--得到一个32位的唯一guidselect sys_guid() from dual;--进行加减乘除运算select 1+3 from dual--oracle条件语句查询--查询出基本工资大于2000的所有雇员信息select * from emp where sal > 2000;--查询职位是办事员的所有雇员信息select * from emp where job ='CLERK'--查询工资在2000-3000之间的员工信息select * from emp where sal>2000 and sal < 3000;--查询工资在2000-3000之间的全部雇员信息*(包含)select * from emp where sal >= 2000 and sal <=3000;select * from emp where sal between 2000 and 3000;--查询职位是办事员或者销售人员的全部信息select * from emp where job='CLERK' or job='SALESMAN';select * from emp where job in ('CLERK','SALESMAN');--查询所用不是办事员的雇员信息select * from emp where job <>'CLERK';select * from emp where job != 'CLERK';select * from emp where not job = 'CLERK';--查询所有某段时间内入职的员工信息select * from emp where hiredate between to_date('1981/1/1','yyyy/mm/dd') and to_date('1982/1/1','yyyy/mm/dd');--查询所有有奖金的雇员select * from emp where comm is not null;--查询所有没有奖金的雇员select * from emp where comm is null;--查询出员工编号为7369.7499,7521的信息select * from emp where empno =7369 or empno=7499;select * from emp where empno in (7369,7499,7521)--查询出员工编号不为7369.7499,7521的信息select * from emp where empno not in (7369,7499,7521);--查询员工姓名中以字母A为开头的全部员工信息select ename from emp where ename like 'A%';--查询员工姓名中第二个字母是A的全部员工信息select ename from emp where ename like '_A%';--查询员工姓名中有A的全部员工信息select ename from emp where ename like '%A%';--oracle结果排序--查询所有员工,并按照要求工资升序排序select * from emp order by sal;--查询所有员工,并按照要求工资升序排序select * from emp order by sal desc;--按照工资从高到低排序,如果工资相同,则按照雇佣时间先后排序select * from emp order by sal desc, hiredate;--排序中的空值问题select * from emp order by comm desc;select * from emp order by comm desc nulls first;select * from emp order by comm desc nulls last;--oracle单行函数--字符函数--字符串大写upperselect upper('mingming')from dual;--字符串小写lowerselect lower(ename) from emp;--首字符大写initcapselect initcap(ename) from emp;--字符串取长度lengthselect ename,length(ename) from emp;--字符串替换replaceselect ename,replace(ename,'A','#')from emp;--字符串截取substrselect ename,substr(ename,0,2) from emp; select ename,substr(ename,1,2) from emp;select ename,substr(ename,-1) from emp;select ename,substr(ename,-2,1) from emp; select ename,substr(ename,-2,3) from emp;--两边去掉空格trimselect ename,trim(ename) from emp;--数字函数--四舍五入select round(987.6543) from dual;--988select round(987.6543,0) from dual;--988select round(987.6543,1) from dual;--987.7 select round(987.6543,2) from dual;--987.65 select round(987.6543,-1) from dual;--990select round(987.6543,-2) from dual;--1000--trunc舍弃内容select trunc(953.6286) from dual; --953select trunc(953.6286,0) from dual;--953select trunc(953.6286,1) from dual;--953.6select trunc(953.6286,2) from dual;--953.62 select trunc(953.6286,-1) from dual;--950select trunc(953.6286,-2) from dual--900--取模mod /余数select mod(10,3) from dual;--日期函数--获取当前时间sysdateselect sysdate from dual;--表示几天之后的日期+dayselect sysdate+3 from dual;--两个日期之间的天数差sysdate-hiredate select ename,hiredate,sysdate-hiredate from emp ; select trunc(sysdate-hiredate) from emp ;--本月的最后一天日期last_dayselect last_day(sysdate) from dual;--两个日期键的月份差months_betweenselect ename,hiredate ,trunc(MONTHS_BETWEEN(sysdate,hiredate)) from emp;--求出四个月后的日期add_montsselect add_months(sysdate,2)from dual;--转换函数--日期变为字符串to_char*(mi,hh24,yyyy,day)select to_char(sysdate,'yyyy-mm-dd')from dual;--2017-11--12select to_char(sysdate,'yyyy-mm-dd hh:mi:ss')from dual;--2017-11-12 05:07:00--数字变为字符串to_char(L999,999,999)数字代表长度SELECT TO_CHAR(89078907890,'L9999,9999,9999,9999') FROM dual;-- $89,078,907,890--字符串转日期to_date(yyyy-mm-dd hh:mi:ss)--字符串必须是日期格式的字符串select to_date('2017-11-12','yyyy/mm/dd') from dual;--2017/11/12--字符串转数字to_number('123'+4)select to_number('123'+4) from dual--127--通用函数--nvl(v1,v2)处理null 如果第一个数为null返回第二个数,如果第一个数不为空返回第一个数select nvl(1,2)from dual;--1select nvl(null,2) from dual;--2--nvl(v1,v2,v3)处理null; 如果v1为null返回v3,否则返回v2select nvl2(null,1,2) from dual;select nvl2(3,1,2) from dual;--decode()多值判断DECODE(数值| 列,判断值1,显示值1,判断值2,显示值2,判断值3,显示值3,…)--将职位信息转为汉字SELECT empno,ename,job,DECODE(job,'CLERK','办事员','SALESMAN','销售人员','MANAGER','经理','ANALYST','分析员','PRESIDENT','总裁')FROM emp;--case when条件判断--将职位信息转为汉字select empno,ename,job,case jobwhen 'CLERK' then'业务员'when 'SALESMAN' then'销售人员'else'其他'endfrom emp;--oracle多行函数分组函数作用于一组数据,并对一组数据返回一个值--统计记录数count() 查询出所有员工的记录数select count(*) from emp;--不建议使用count(*),可以使用一个具体的列以免影响性能select count(empno) from emp;--最小值查询min()查询出来员工最低工资select min(sal) from emp;--最大值查询max()查询出来员工最高工资select max(sal) from emp;--查询平均值avg()查询出员工的平均工资select avg(sal) from emp;--求和函数sum()查询出某部门额员工工资总和select sum(sal) from emp where deptno=20;--分组汇合统计group by--查询每个部分的人数select deptno,count(*) from emp group by deptno;--查询出每个部分的平均工资select deptno,avg(sal)from emp group by deptno;--唯一字段做分组select ename,count(*) from emp group by ename;--过滤分组数据having--查询部分平均工资大于2000的部门,用having和where都可以实现select deptno,avg(sal) from emp group by deptno having avg(sal)>2000;--第二天多表查询--笛卡尔集select * from emp,dept;--内连接--隐式内连接select e.empno,e.ename,e.job,d.dname from emp e,dept d where e.deptno = d.deptno;--显示内连接select e.empno,e.ename,e.job,d.dname from emp e inner join dept d on e.deptno =d.deptno; --左外连接select * from dept left join emp on dept.deptno = emp.deptno;--右外连接select * from emp e right join dept d on e.deptno=d.deptno;--oracle特有外连接--使用符号(+):放在作为补充显示的列后面select * from emp,dept where emp.deptno(+)=dept.deptno;--自连接--查询出员工的姓名,职位,领导姓名select * from emp a,emp b where a.mgr=b.empno;--使用左右外连接,找到没有领导的员工select * from emp a,emp b where a.mgr=b.empno(+);--多表联查--查询员工姓名,部门名称,领导姓名select e1.ename,e2.ename,d.dname from emp e1,emp e2,dept d where e1.mgr=e2.empno and e1.deptno=d.deptno;--查询员工姓名,部门名称,领导名称,员工工资等级select e1.ename,e2.ename,d.dname,s.grade from emp e1,emp e2,dept d,salgrade s where e1.mgr=e2.empno and e1.deptno=d.deptno and e1.sal between s.losal and s.hisal;--查询员工姓名、部门名称、领导名称、员工工资等级、领导工资等级select e1.ename, e2.ename, d.dname, s1.grade,s2.gradefrom emp e1, emp e2, dept d, salgrade s1,salgrade s2where e1.mgr = e2.empnoand e1.deptno = d.deptnoand e1.sal between s1.losal and s1.hisaland e1.sal between s2.losal and s2.hisal;--将工资等级转换为汉字select e1.ename, e2.ename, d.dname, decode(s1.grade,'1','第五级','2','第四级','3','第三级','4','第二级' ,'5','第一级'),decode(s2.grade,'1','第五级','2','第四级','3','第三级','4','第二级' ,'5','第一级')from emp e1, emp e2, dept d, salgrade s1,salgrade s2where e1.mgr = e2.empnoand e1.deptno = d.deptnoand e1.sal between s1.losal and s1.hisaland e1.sal between s2.losal and s2.hisal;--子查询--单行子查询(单行单列)--查询比员工7654工资高,并和7788相同职位的员工select e.ename from emp e where e.sal>(select sal from emp where empno=7654)and e.job=(select job from emp where empno =7788)Select * from emp where sal>(Select sal from emp where empno=7654)And job = (Select job from emp where empno=7788)--子查询放在select中--查询员工信息和部门名称select e.* ,(select d.dname from dept d where d.deptno=e.deptno)from emp e ;--多行子查询(多行多列和多行单列)--多行多列子查询实现--查询每个部门的最低工资,和最低工资的员工select e.ename,e.sal,d.dname from emp e,(select deptno ,min(sal) sal from emp group by deptno) dm,dept d where e.deptno = d.deptno and e.deptno = dm.deptno and e.sal= dm.sal;Select e.ename,e.sal,d.dnameFrom emp e,(Select deptno,min(sal) sal from emp group by deptno) dm,dept dWhere e.deptno=d.deptno and e.deptno=dm.deptno And e.sal = dm.sal--多行单列子查询实现--查询是领导的所有员工信息select * from emp where emp.empno in(select mgr from emp e where e.mgr is not null);--查询不是领导的所有员工信息select * from emp where empno not in (select nvl(mgr,0) from emp)--exists--判断结果集是否存在exists(sql语句)--用来判断结果集是否存在,如果存在返回true,如果不存在返回falseselect * from emp where exists (select * from dept)--查询有员工的部门select * from dept where deptno in (select deptno from emp where deptno is not null)select * from dept d where exists (select deptno from emp e where e.deptno= d.deptno )--查询是领导的所有的员工信息select * from emp e1 where exists (select e2.mgr from emp e2 where e2.mgr= e1.empno)--伪列rownumselect rownum, e.* from emp e;--查询员工信息的前三条select rownum, e.* from emp e where rownum<4;--排序后rownum乱序select rownum ,e.* fROM emp e where rownum<20 order by sal desc ;--解决办法,先排序再生成rownumselect * from emp order by sal desc;select rownum ,e.* from (select * from emp order by sal desc)e where rownum <4;select * from(Select rownum rm, t.* from (select * from emp order by sal desc) t) where rm<4--找到员工表中薪水大于本部门平均薪水的员工--本部门平均薪水select deptno,avg(sal) from emp group by deptno;select * from emp e,(select deptno,avg(sal)avs from emp group by deptno)m where e.sal>m.avs and e.deptno=m.deptno;--统计每年入职的员工个数select to_char(e.hiredate,'yyyy')hire_year,count(*) from emp e group by to_char(hiredate,'yyyy');SelectSum(hire_count) total,sum(decode(t.hire_year,'1980',t.hire_count)) "1980",sum(decode(t.hire_year,'1981',t.hire_count)) "1981",sum(decode(t.hire_year,'1982',t.hire_count)) "1982",sum(decode(t.hire_year,'1987',t.hire_count)) "1987"from(Select to_char(hiredate,'yyyy') hire_year,count(*) hire_countFrom emp group by to_char(hiredate,'yyyy')) trowidRowid是oracle数据库插入数据时给数据分配的真实物理地址,唯一不变Rownum 是伪列,在查询数据时才会生成的临时数值--集合运算--并集--查询工资大于1500或是20号部分的员工select * from emp where sal>1500 or deptno=20;--union实现select * from emp where sal>1500unionselect * from emp where deptno =20;--union all实现(没有去重)select * from emp where sal>1500union allselect * from emp where deptno =20;--交集*(intersect 取两个集合共同的部分)select * from emp where sal >1500 and deptno=20;select * from emp where sal >1500intersectselect * from emp where deptno=20;--差集(minus 从一个集合中去掉另一个集合剩余的部分)--1981年入职的普通员工,不包含总裁和经理select * from emp where to_char(hiredate,'yyyy')='1981'and job not in ('MANAGER','PRESIDENT')select * from emp where to_char(hiredate,'yyyy')='1981'minusselect * from emp where job in ('MANAGER','PRESIDENT')。

oracle 查询表的几种方法

oracle 查询表的几种方法

标题:Oracle查询表的几种方法随着大数据时代的到来,数据库查询成为了日常工作中必不可少的一部分。

在Oracle数据库中,查询表是我们使用频率最高的操作之一。

本文将介绍Oracle查询表的几种方法,帮助读者更好地理解和应用Oracle数据库。

一、使用SELECT语句查询单个表在Oracle数据库中,通过使用SELECT语句可以查询单个表的数据。

SELECT语句的基本语法如下:SELECT column1, column2, ...FROM table_nameWHERE condition;其中,column1, column2表示要查询的列名,table_name表示表名,condition表示查询条件。

二、使用JOIN语句查询多个表在实际应用中,我们经常需要同时查询多个表的数据。

这时可以使用JOIN语句来实现。

在Oracle数据库中,JOIN语句有多种类型,包括INNER JOIN、LEFT JOIN、RIGHT JOIN等,根据实际需求选择合适的JOIN类型。

JOIN语句的基本语法如下:SELECT column1, column2, ...FROM table1INNER JOIN table2 ON condition;其中,table1、table2表示要查询的表名,condition表示连接条件。

三、使用子查询查询表有时候我们需要在查询语句中嵌套查询,这时可以使用子查询来实现。

子查询是指在一个查询语句中嵌套另一个查询语句,将子查询的结果作为外层查询的条件使用。

子查询的基本语法如下:SELECT column1, column2, ...FROM table_nameWHERE column1 IN (SELECT column1 FROM another_table);四、使用EXISTS子查询查询表除了常规的子查询外,Oracle数据库还支持EXISTS子查询。

EXISTS子查询是一种特殊的子查询,用来判断子查询中是否存在符合条件的数据,如果存在则返回TRUE,否则返回FALSE。

oracle数据库查询语句

oracle数据库查询语句

SELECT [ALL | DISTINCT] [selec_columns | *] FROM table_name[WHERE search_condition][GROUP BY columns][HAVING search_condition][ORDER BY columns [ASC | DESC]](1)SELECT:查询关键字,用于选择查询的列。

(2)[ALL | DISTINCT]:用于标识查询结果集中相同数据的处理方式,all关键字表示显示查询到的所有数据,包括重复的行;DISTINCT关键字表示查询数据中的重复行只显示一次。

(3)selec_columns:表示要查询的列,列名之间使用逗号隔开,如果需要查询表中所有的列可直接用“*”表示。

(4)WHERE search_condition:指定查询操作的条件,只有符合条件的数据才会被查询出来。

(5)GROUP BY columns:用于设置分组查询的列。

(5)HAVING search_condition:用于设置分组的条件,需要与GROUP BY语句结合使用。

(6)ORDER BY columns [ASC | DESC]:用于指定结果集的排序方式,ASC为升序,DESC为降序,默认ASC升序。

1、基本查询2.条件语句查询3、模糊查询在实际应用中如果不能完全确定查询的条件,但是又了解这些条件的某些特征,就可以通过模糊查询来解决问题,在where子句中可以使用like或not like编写模糊查询的条件实现模糊查询需要用到两个通配符,分别为“%”与“_”(1)%:表示零个、一个或多个任意字符。

(2)_:表示一个任意字符。

4、排序查询如果希望对查询的结果进行排序,就需要使用order by子句,order by子句可以将查询的结果按照升序或者降序进行排列5、分组查询使用GROUP BY子句与HAVING子句实现,GROUP BY子句用于指定分组的列,HAVING语句用于指定分组的条件6、其他查询a、DISTINCT取消重复行b、列的别名7、子查询a、单行子查询执行数据库操作时,如果某个操作希望依赖于另外一个SELECT语句的查询结果,那么就可以在操作中嵌入SELECT语句,当查询操作中嵌入了SELECT语句后,就形成了一个子查询。

oracle表结构查询语句

oracle表结构查询语句

oracle表结构查询语句Oracle是一种关系型数据库管理系统,它具有强大的数据操作和查询功能。

在Oracle中,表是存储数据的基本单位,表结构查询语句用于查看表的结构信息,包括表名、字段名、字段类型、字段长度等。

下面列举了10个符合要求的Oracle表结构查询语句。

1. 查询指定表的所有字段名和字段类型```sqlSELECT COLUMN_NAME, DATA_TYPEFROM ALL_TAB_COLUMNSWHERE TABLE_NAME = '表名'```这条语句通过查询ALL_TAB_COLUMNS视图,可以获取指定表的所有字段名和字段类型。

2. 查询指定表的所有字段名和字段长度```sqlSELECT COLUMN_NAME, DATA_LENGTHFROM ALL_TAB_COLUMNSWHERE TABLE_NAME = '表名'```这条语句通过查询ALL_TAB_COLUMNS视图,可以获取指定表的所有字段名和字段长度。

3. 查询指定表的主键字段名```sqlSELECT COLUMN_NAMEFROM ALL_CONSTRAINTS C, ALL_CONS_COLUMNS CC WHERE C.TABLE_NAME = '表名'AND C.CONSTRAINT_TYPE = 'P'AND C.CONSTRAINT_NAME = CC.CONSTRAINT_NAMEAND CC.TABLE_NAME = '表名'```这条语句通过查询ALL_CONSTRAINTS和ALL_CONS_COLUMNS 视图,可以获取指定表的主键字段名。

4. 查询指定表的外键字段名和关联表名```sqlSELECT A.COLUMN_NAME, B.TABLE_NAMEFROM ALL_CONSTRAINTS A, ALL_CONSTRAINTS B WHERE A.TABLE_NAME = '表名'AND A.CONSTRAINT_TYPE = 'R'AND A.R_CONSTRAINT_NAME = B.CONSTRAINT_NAME AND B.TABLE_NAME != '表名'```这条语句通过查询ALL_CONSTRAINTS视图,可以获取指定表的外键字段名和关联表名。

oracle的sql语句

oracle的sql语句

oracle的sql语句Oracle的SQL语句可以用于查询、插入、更新和删除数据库中的数据。

以下是一些常见的Oracle SQL语句示例:1. 查询数据:- 查询所有记录:SELECT * FROM 表名;- 查询指定列:SELECT 列名1, 列名2 FROM 表名;- 带条件查询:SELECT * FROM 表名 WHERE 条件;- 排序查询:SELECT * FROM 表名 ORDER BY 列名ASC/DESC;- 分组查询:SELECT 列名, COUNT(*) FROM 表名GROUP BY 列名;2. 插入数据:- 插入单条记录:INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);- 插入多条记录:INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2), (值3, 值4), ...;3. 更新数据:- 更新单个字段:UPDATE 表名 SET 列名 = 新值WHERE 条件;- 更新多个字段:UPDATE 表名 SET 列名1 = 新值1, 列名2 = 新值2 WHERE 条件;4. 删除数据:- 删除所有记录:DELETE FROM 表名;- 删除满足条件的记录:DELETE FROM 表名 WHERE 条件;5. 聚合函数:- 计算总数:SELECT COUNT(*) FROM 表名;- 计算平均值:SELECT AVG(列名) FROM 表名;- 计算最大值:SELECT MAX(列名) FROM 表名;- 计算最小值:SELECT MIN(列名) FROM 表名;- 计算求和:SELECT SUM(列名) FROM 表名;这些只是一些常见的Oracle SQL语句示例,实际使用中还可以结合其他语句和函数进行更复杂的查询和操作。

oracle session 查询语句

oracle session 查询语句

oracle session 查询语句Oracle是一种流行的关系型数据库管理系统,它允许用户在一个或多个会话中访问和操作数据库。

一个会话是指用户与数据库建立的交互连接,Oracle允许用户并发地创建和管理多个会话。

在Oracle中,有几种常用的语句可用于查询和管理会话。

下面是一些常见的Oracle会话查询语句的参考内容。

1. 查询当前会话:在Oracle中,可以使用以下语句查询当前会话的信息:```SELECT sid, serial#, username, machine, programFROM v$sessionWHERE username = '当前用户名';```以上语句将返回当前用户名的会话信息,包括会话ID(sid)、序列号(serial#)、用户名(username)、登录的机器名(machine)和使用的程序(program)。

2. 查询活动会话:可以使用以下语句查询当前所有活动的会话:```SELECT sid, serial#, username, machine, programFROM v$sessionWHERE status = 'ACTIVE';```以上语句将返回当前所有活动的会话信息,包括会话ID(sid)、序列号(serial#)、用户名(username)、登录的机器名(machine)和使用的程序(program)。

3. 查询会话的锁信息:可以使用以下语句查询会话的锁信息:```SELECT sid, serial#, type, mode, object_id, object_nameFROM v$locked_objectWHERE session_id = '当前会话ID';```以上语句将返回指定会话锁定的对象信息,包括会话ID (sid)、序列号(serial#)、锁类型(type)、锁模式(mode)、对象ID(object_id)和对象名称(object_name)。

oracle 查询用户权限的语句

oracle 查询用户权限的语句

oracle 查询用户权限的语句Oracle是一种关系型数据库管理系统,可以用来存储和管理大量的数据。

在Oracle中,用户权限是指用户对数据库对象(如表、视图、存储过程等)的访问和操作权限。

用户权限的查询可以帮助管理员了解当前用户的权限情况,以便进行权限管理和安全控制。

下面是一些查询用户权限的Oracle语句:1. 查询当前用户的所有权限:```SELECT * FROM USER_SYS_PRIVS;```该语句可以查询当前用户被授予的系统级权限,返回结果包括权限名称和授权者。

2. 查询当前用户对指定表的权限:```SELECT * FROM USER_TAB_PRIVS WHERE TABLE_NAME = '表名';```该语句可以查询当前用户对指定表的权限,返回结果包括权限类型(如SELECT、INSERT、UPDATE、DELETE等)、授权者和表名。

3. 查询当前用户对指定视图的权限:```SELECT * FROM USER_TAB_PRIVS WHERE TABLE_NAME = '视图名';```该语句可以查询当前用户对指定视图的权限,返回结果与查询表权限的语句相似。

4. 查询当前用户对指定存储过程的权限:```SELECT * FROM USER_PROC_PRIVS WHERE PROCEDURE_NAME = '存储过程名';```该语句可以查询当前用户对指定存储过程的权限,返回结果包括权限类型(如EXECUTE)、授权者和存储过程名。

5. 查询当前用户对指定包的权限:```SELECT * FROM USER_TAB_PRIVS WHERE TABLE_NAME = '包名';```该语句可以查询当前用户对指定包的权限,返回结果与查询表权限的语句相似。

6. 查询当前用户对指定序列的权限:```SELECT * FROM USER_TAB_PRIVS WHERE TABLE_NAME = '序列名';```该语句可以查询当前用户对指定序列的权限,返回结果与查询表权限的语句相似。

【最新资料】oracle数据库查询语句大全

【最新资料】oracle数据库查询语句大全

oracle数据库查询语句大全1. select * from table_name where rownum>begin and rownum< end2.sql = "select * from table"con.prepareCall("SELECT * FROM(SELECT A.*, rownum r FROM("+sql+") A WHERE rownum <="+intPage*intPageSize+") B WHERE r > "+(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; //查询数据库名和它的IDselect * from er_tab_columns; //查询表名,并显示列名describe 表名//查询表结构select * from er_tab_columns where table_name=表名 //查询指定表名的字段2: 查询数据库参数show parameter db;3:查询数据库的实例名select instance_name from v$instance;4: 数据库域名数据库安装结束后,如果要知道正在运行额数据库是否有域名以及数据库域名名称可以用select value from v$parameter where name='db_domain'show parameter domain5:数据库服务名如果数据库有域名,则数据库服务名就是全局数据库名,如果该数据库没有定义域名,则数据库服务名与数据库名相同show parameter service_name6:显示当前用户show user7:直接登陆sqlplus "/as sysdba"8:当前ORACLE系统时间select sysdate from dual;9:查询数据库字典v$nls_parameter产看字符集相关参数select * from v$nls_parameters;//*************oracle基本操作语句(适合初学者)oracle操作语句:1.创建表create table 表名(列名1 类型,列名2 类型);2.修改类属性alter table 表名 modify(列名类型);3.添加列alter table 表名 add(列名类型);4.添加主键约束和非空约束alter table 表名 add constraint pk_表名 primary key(列名); alter table 表名 modify(列名 not null);5.删除主键约束alter table 表名 drop primary key;alter table 表名 drop constraint pk_表名;6.失效约束alter table 表名 disable primary key;alter table 表名 disable constraint pk_表名;7.有效约束alter table 表名 enable primary key;alter table 表名 enable constraint pk_表名;8.删除列alter table 表名 drop column 列名;9.设置某列不可用,然后删除alter table 表名 set unused(列名);alter table 表名 drop unused columns;10.修改表名rename 表名1 to 表名2alter 表名1 rename to 表名2;11.截断表truncate table 表名;12.截断表保留行空间truncate table 表名 resue storage;13.查看表结构desc table 表名;14.删除表drop table 表名;15.插入记录例:insert into 表名 values(内容1,内容2,内容3,内容4);16.带参数对话方式插入行例:insert into 表名 values(&列名1,&列名2);insert into 表名 values(内容1,内容2);17.插入某几列记录insert into 表名(列名1,列名2) values(内容1,内容2);18.为列插入空值(其列不能为not null)insert into 表名 values(内容1,null,null);19.创建表(包括主键及外键设置)方法一create table 表名(列名1 类型constraint pk_表名 primary key,列名2 类型 not null,列名3 类型constraint fk_表名 reference 表名(列名),列名3 类型constraint ck_表名 check(列名3 in(''内容1'',''内容2'',''内容3'')));20.查询所有行select * from 表名;21.查询某几列select 列名1,列名2 from 表名;22.重复行消除select distict 列名 from 表名;23.where语句查询select * from 表名 where 条件 order by 列名;(注:如number类型查出自动按升序排列,如要按降序排列,则select * from 表名where 条件 order by 列名 desc;)24.创建表,方法二create table 表名(列名1 类型 primary key,列名2 类型 not null,列名3 类型 check(列名3 in('''','''','''')), 列名4 类型 refernce 表名(列名));25.修改列=‘?’的数据update 表名 set (列=?) where 列=‘?’; 26.删除行delete from 表名 where 条件;27.事务处理--事务处理update 表名set 列名(日期) = ''30-5月-98''where 条件;savepoint mark1;delete from 表名 where 条件;savepoint mark2;rollback to savepoint mark1;rollback;28.建立用户user1,密码为password授予用户connect,resource的权限connect角色用于登录resource角色用于建表等.connect system/managercreate user user1 identified by password;grant connect,resource to password;29.数据控制语言connect scott/tiger30.把对表1查询和修改的权限授予user1grant select,update on 表1 to user1;31.把对表表1中列1和列2修改的权限授予user1grant update(列1,列2) on 表1 to user1;32.把对表表1查询的权限授予用户user1并且user1用户还可以把这个权限授予别的用户(with grant option) grant select on 表1 to user1 with grant option;33.从用户user1撤销对表1查询和修改的权限revoke select,update on 表1 from user1;以下是附加文档,不需要的朋友下载后删除,谢谢班主任工作总结专题8篇第一篇:班主任工作总结小学班主任特别是一年级的班主任,是一个复合性角色。

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

oracle查询语句大全--基本命令大全一1.create user username identified by password;//建用户名和密码oracle ,oracle2.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#描述应如下所示: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<n9.查找用户下的所有表:select * from tab;2、显示当前连接用户SQL> show user3、查看系统拥有哪些用户SQL> select * from all_users;4、新建用户并授权SQL> create user a identified by a;(默认建在SYSTEM表空间下)SQL> grant connect,resource to a;5、连接到新用户SQL> conn a/a6、查询当前用户下所有对象SQL> select * from tab;7、建立第一个表SQL> create table a(a number);8、查询表结构SQL> desc a9、插入新记录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)||'' 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 oraInventory53. 如何使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 idor把该过程重新改个名字就可以了。

57. SQL Reference是个什么东西?是一本sql的使用手册,包括语法、函数等等,oracle官方网站的文档中心有下载.58. 如何查看数据库的状态?unix下ps -ef | grep orawindows下看服务是否起来,是否可以连上数据库59. 请问如何修改一张表的主键?alter table aaadrop constraint aaa_key ;alter table aaaadd constraint aaa_key primary key(a1,b1) ;60. 改变数据文件的大小?用ALTER DA TABASE .... 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 sysdbaSQL> 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=10485760shmmin含义:共享内存的最小大小。

设置方法:一般都设置成为1。

例子:Set shmsys:shminfo_shmmin=1:shmmni含义:系统中共享内存段的最大个数。

例子:Set shmsys:shminfo_shmmni=100shmseg含义:每个用户进程可以使用的最多的共享内存段的数目。

例子:Set shmsys:shminfo_shmseg=20:semmni含义:系统中semaphore identifierer的最大个数。

设置方法:把这个变量的值设置为这个系统上的所有Oracle的实例的init.ora中的最大的那个processes的那个值加10。

例子:Set semsys:seminfo_semmni=100semmns含义:系统中emaphores的最大个数。

设置方法:这个值可以通过以下方式计算得到:各个Oracle实例的initSID.ora里边的processes的值的总和(除去最大的Processes参数)+最大的那个Processes×2+10×Oracle实例的个数。

相关文档
最新文档