文档库 最新最全的文档下载
当前位置:文档库 › Oracle语句大全

Oracle语句大全

Oracle语句大全
Oracle语句大全

Oracle SQL语句大全

1.desc(描述)emp 描述emp这张表

2.desc dept 部门表

3.desc salgrade 薪水等级

4.select *from table 查找表中的元素

5.dual 是系统中的一张空表

6.select *from dual

7.select sysdate from dual 取出系统时间

8.select ename,sal*12 "annul sal"(取的别名)from emp; 查找用户姓名和用户的年薪

9.任何含有空值的数学表达式的值都是空值

select ename,sal*12+comm from emp;

10.select ename||sal from emp 其中的||相当于将sal全部转化为字符串

11.表示字符串的方法

select ename ||'ajjf' from emp;

12.如果其中有一个单引号就用2个单引号来代替他

select ename||'sakj' 'lds'from emp;

13.select distinct deptno from emp (去除部门字段中重复的部分,关键字distinct)

14.select distinct deptno,job from emp;(去除这2个字段中重复的组合)

15.select *from dept where deptno=10; 取出条件(取出部门编号为10的记录)

16.select * from emp where ename='CLIRK'; 取出部门中姓名为clirk的记录(注意取出过程中ename用单引号隔开)

17.select ename,sal from emp where sal>1500; 取出部门中薪水大于1500的人的姓名

18.select ename,sal,deptno from emp where deptno<> 10 取出部门中的部门号不等于10的

19.select ename,sal,deptno from emp where ename>'CBA' 取出部门中员工名字大于CBA的员工(实际比较的是ACIIS码)

20.select ename,sal from emp where sal between 800 and 1500

select ename,sal from emp where sal>=800 and sal<=1500; (取出800和1500之间的数) 21.select ename,sal,comm from emp where comm is null (选出其中的空值)

select enmae,sal,comm from emp where comm is not null(选出其中的非空值)

22.select ename,sal,comm from emp where sal in (800,1500,2000);取出这3者之中的

select ename,sal,comm from emp where ename in('simth');

23.select ename,sal,hiredate from emp where hiredata>'3-04月-81';宣传符合条件的日期

24.select ename,sal,from emp where sal>1000 or deptno=10; 找出工资薪水大于1000或者部门号等于10的员工

25.select ename,sal from emp where sal not in(500,1000); 查找薪水不在500到1000的员工姓名和月薪

26.select ename,sal from emp where ename like '%ALL%';

select ename,sal from emp where ename like '_%A%'; 查找姓名中含有ALL的客户信息,一个横线代表一个通配符

27.select ename,sal from emp where ename like '_%$%%' escape '$'; 自己指定转易字符

select ename,sal from emp where ename like '_%\%%'; 查找中间含有%相匹配的客户信息,运用转易字符

28.select * from dept order by deptno 对表中元素按部门号排序

select *from dept order by deptno desc 默认为升序,可以用desc 按降序

29.select ename,sal from emp where sal <>1000 order by sal desc 按照查询条件来查询,并排序(asc升序排列)

30.select ename,sal*12 from emp where ename not like '_%A%' and sal>800 order by sal desc

31.select lower(ename) from emp 将ename都转化为小写lower是函数能将字母转化为小写

32.select ename from emp where lower(ename) like '_%a%'; 找出ename 中所有的含有a的字符

33.select substr(ename,2,3) form emp 从第2个字符开始截取3个字符

34.select chr(65) from dual; 将65转化为字符

35.select ascii('A') from dual 将ACSII码转化为字符串

36.select round(23.565)from dual 四舍五入

36.select round(23,4565,2)from dual 四舍五入到第二位

37.select to_char(sal,'$99.999.9999') from emp 按指定格式输出

select to_char(sal,'L99,999,9999') form emp L代表本地字符

38.select hiredate from emp

select to_char(hiredate,'YYYY-MM-DD HH:MI:SS) from emp; 时间格式的显示select to_char(sysdate,'YYYY-MM-DD HH:MI:ss) from dual; 十二小时制显示系统时间

select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS) from dual 二四小时制显示系统时间

39.select ename,hiredate from emp where hiredate > to_date('2005-2-3 12:32:23','YYYY-MM-DD HH:MI:SS');

40 select sal from emp where sal>to_number('$1,250.00','$9,999.99'); 取出比它大的一切字符串(把特定格式的数字转化成字符)

41 select ename,sal+nvl(comm,0) from emp; 讲comm值为空的用0来替换,单行函数(以一条记录为条件)一条对一条

42.select Max(sal) from emp;

select Min(sal) from emp;

select avg(sal) from emp;

select sum(sal) from emp;

select count(*) from emp; 查看表中一共有多少条记录

select count(*) from emp where deptno=10; 查找部门10一共有多少人;

43.select avg(sal),deptno from emp group by deptno; 按部门号进行分组

select deptno,job,max(sal) from emp group by job,deptno; 按工作和部门号进行分组;

44.select ename from emp where sal=(select max(sal) from emp); 子查询,查找部门中薪水最高的员工姓名

45.group by 注意:出现在select列表中的字段,如果没有出现在组函数中必须出现在group by 子句中

46.select avg(sal),deptno from emp group by deptno having avg(sal)>2000; 选出部门中平均薪水大于2000的部门,

47.select * from emp where sal>100 group by deptno having ..........order by........

先取数据--过滤数据------分组----对分组限制-------排序

48.select avg(sal) from emp where sal>2000 group by deptno having avg(sal)>1500 order by

avg(sal) desc;

查找部门中平均薪水打印2000的员工并按部门号进行排序,查询分组后的平均薪水必须大于1500,查询结果按平均薪水从低到高排列

49.select ename from emp where sal>(select avg(sal) from emp);

查找出员工中薪水位于部门平均薪水之上的所有员工

50.select ename,sal from emp join(select max(sal) max_sal from emp group by deptno) t on(emp.sal=t,max_sal and emp.deptno=t.deptno);

查找每个部门中薪水最高的

51.select e1.ename,e2.ename from emp e1,emp e2 where e1.mgr=e2.empno; 表的自连接

52.select dname,ename from emp cross join dept 交叉连接,笛卡尔

SQL99中的新语法

53.select ename,dname from emp join dept on(emp.deptno=dept.deptno);

54.select ename,dname from emp join dept using(deptno); 查找emp和dept表中deptno相同的部分。

55.select ename,dname,grade from emp e join dept d on(e.deptno=d.depno)

join salgrade s(e.sal between s.losal and s.hisal) (三表查找)

where ename not like '_%A%';

56.select e1.ename,e2.ename from emp e1 join emp e2 on(e1.mgr=e2.deptno); 表的自连接

57.select e1.ename,e2.ename from emp e1 left join emp e2 on(e1.mgr=e2.deptno) 左外表连接

select ename,dname from emp e right join dept d on(e.deptno=d.deptno)右外连接

select ename,dname from emp e full join dept d on(e.deptno=d.deptno)全连接

58.求部门中薪水最高的

select ename,sal from emp join (select max(sal) max_sal, deptno from emp group by deptno) t on (emp.sal=t.max_sal and emp.deptno=t.deptno);

59.求部门中薪水等级的平均值

select deptno,avg(grade) from(select deptno,ename,grade,from emp join salgrade s on(emp.sal between s.losal and s.hisal))t group by deptno;

60.查找雇员中哪些是经理人

select ename from emp where empno in(select mgr from emp);

61.select distinct e1.sal from emp e1 join emp e2 on(e1.sal

select distinct sal from emp where not in (select ename from e1.sal from emp e1 join emp e2 on(e1.sal

62.select deptno from (select avg(sal) max_sal deptno from emp group by deptno) where max_sal=(select max(avg_sal) from (select

avg(sal) avg_sal deptno from emp group by deptno)); 查找部门中部门薪水最大的部门号

63.求平均薪水最大的部门的部门编号

select deptno,avg_sal from(select avg(sal) avg_sal,deptno from emp group by

deptno)where avg_sal=(select max(avg(sal)) from emp group by deptno);

DML语句:更、删、改、查

创建权限,conn sys/admin as sysdba

grant create table,create view to scott;

首先在C:下面建个文件夹备份文件

1.createNewUser方法

1.--backup scott

exp

2.create user(创建用户)用超级管理员模式进入

create user yun identified by kang1234 default tablespace users quota 10M on users;

grant create session,create table,create view to kafei(给kafei这个用户授予权限)

3.import the data(导入备份数据)

imp

2.insert

insert into dept values (50,'game','bj') 插入一条记录

insert into dept2 (deptno,dname) values (78,'games'); 插入指定的几条记录

insert into dept2 select *from dept 插入指定的表(表结构要一样)

rollback; 回退

create table emp2 as select * from emp; 创建数据库表2来备份emp这张表

3.update emp2 set sal=sal*12 where deptno=10; update的用法

4.delete from dept2 where deptno<25 ; 删除语句的用法

DDL语言

1.创建表:create table t(a varchar2(10));

2.drop table t 删除表

https://www.wendangku.net/doc/3717048994.html,mit 所有的提交,所有修改都结束了。对于rollback无效,一个事务开始于第1条DML 语句

碰到执行DDL DCL语句事务自动提交对于rollback无效

建表语句

建学生信息表:

create table stu

(id number(6),

name varchar2(20) constraint stu_name_nn not null,

sex number(1),

age number(3),

sdate date,

grade number(2) default 1,

class number(4),

email varchar2(50) unique (唯一约束)

);

非空唯一主键外键chick

create table stu

(id number(6) primary key,(主键约束)

name varchar2(20) constraint stu_name_nn not null,(非空约束)

sex number(1),

age number(3),

sdate date,

grade number(2) default 1,

class number(4),

email varchar2(50),

constraint stu_name_uui unique(email,name) 组合性约束

);

主键约束方法二

create table stu

(id number(6),

name varchar2(20) constraint stu_name_nn not null,(非空约束)

sex number(1),

age number(3),

sdate date,

grade number(2) default 1,

class number(4) references class(id),(参考class 这张表,参考字段) email varchar2(50),

constraint stu_id_pk primary key(id),

constraint stu_name_uui unique(email,name) 组合性约束

);

外键约束

create table class

(id number(4) primary key,(id为被参考字段,被参考的字段必须是主键) name varchar2(20) not null

)

create table stu

(

id number(6),

name varchar2(20) constraint stu_name_nn not null,(非空约束)

sex number(1),

age number(3),

sdate date,

grade number(2) default 1,

class number(4)

email varchar2(50),

constraint stu_class_fk foreign key(class) references class(id), constraint stu_id_pk primary key(id),

constraint stu_name_uui unique(email,name) 组合性约束

);

像外键中插入关键字,

1.insert into class values(1000,'c1');

2.insert into stu(id,name,class,email) values(1,'a',1000,'a');

3.alter table stu add(addr varchar(20));添加表的结构

4.alter table stu drop(addr); 删除表结构

5.alter table stu modify(addr varchar2(150));修改精度

6.alter table stu drop constraint stu_class_fk; 删除约束条件

7.alter table stu add constraint stu_class_fk forengn key(class) references class(id),添加约束条件查找当前用户下有哪些表和哪些视图及哪些约束

8.select table_name from user_names

9.select view_name from view_names

10.select constraint_name,table_name from user_constraints;

desc dictionary数据字典表

desc user_tables当前用户下面有多少张表

select table_name from user_tables; 查找当前用户有多少张表

索引:

创建索引

create index idx_stu_email on stu(email);

drop index idx_stu_email;

查找索引

select index_name from user_indexes;

索引读的速度快了,插入速度变慢

view 视图

视图赠加了维护的量

序列:

create table arcticle

(id number,

title varchar2(1024),

cont long

);

序列的创建sequence产生独一无二的序列,而且是oracle独有的

create sequence seq;

select seq.nextval from dual; 查找序列号

insert into arcticle values(seq.nextval,'a','b');往表中插入序列

数据库设计的3范式

第一范式:设计任何表都要有主键,列不可分

第二范式:如果有2个主键的话,不能存在部分依赖

第三范式,不能存在传递依赖

PL-sql

例子1:

SQL> set serveroutput on;

SQL> begin(必要的--程序开始执行)

2 dbms_output.put_line('hello world');

3 end;(结束)

4 /

例子2:

SQL> declare

2 v_name varchar2(20);

3 begin

4 v_name:='myname';

5 dbms_output.put_line(v_name);

6 end;

7 /

myname

例子3:

SQL> declare

2 v_num number:=0;

3 begin

4 v_num:=2/v_num;

5 dbms_output.put_line(v_num);

6 end;

7 /

declare

*

ERROR 位于第 1 行:

ORA-01476: 除数为0

ORA-06512: 在line 4

例子4:

declare

v_num number:=0;

begin

v_num:=2/v_num;

dbms_output.put_line(v_num);

exception

when others then

dbms_output.put_line('error');

end;

/

变量声明的规则

1.变量名不能够使用保留字,如from,select等

2.第一字符必须是字母。

3.变量名最多包含30个字符

4.不要与数据库的表或者列同名

5.每一行只能声明一个变量

常用变量类型

1. binary_interger,整数,主要用来计数,而不是用来表示字段类型

2. number 数字类型

3. char 定长字符串

4. varchar2 变长字符串

5. date 日期

6.long 长字符串,最长2GB

7.boolean 布尔类型,可以取true false 和null的值

例5:

declare

v_temp number(1);

v_count binary_integer:=0;

v_sal number(7,2):=4000.00;

v_date date:=sysdate;

v_pi constant number(3,2):=3.14;

v_valid boolean:=false;

v_name varchar2(20) not null:='myname';

begin

dbms_output.put_line('v_temp value:'||v_temp);

end;

用--可以注释一行

例6:

declare

v_empno number(4);

v_empno2 emp.empno%type;

v_empno3 v_empno2%type;

begin

dbms_output.put_line('test');

end;

例7

table变量类型

set serveroutput on;

declare

type type_table_emp_empno is table of emp.empno%type index by binary_integer;

v_empnos type_table_emp_empno;

begin

v_empnos(0):=7369;

v_empnos(2):=7869;

v_empnos(-1):=9999;

dbms_output.put_line(v_empnos(-1));

end;

例8

Record 变量类型

set serveroutput on;

declare

type type_record_dept is record

(

deptno dept.deptno%type,

dname dept.dname%type,

loc dept.loc%type

);

v_temp type_record_dept;

begin

v_temp.deptno:=50;

v_temp.loc:='aaaa';

v_temp.loc:='bj';

dbms_output.put_line(v_temp.deptno||' '||v_temp.dname);

end;

例9:

使用%rowtype声明record变量(表结构的变化同时也能代理储存过程的变化)

set serveroutput on;

declare

v_temp dept%rowtype;

begin

v_temp.deptno:=50;

v_temp.loc:='aaaa';

v_temp.loc:='bj';

dbms_output.put_line(v_temp.deptno||' '||v_temp.dname);

end;

例10;

declare

v_name emp.ename%type;

v_sal emp.sal%type;

begin

select ename,sal into v_name,v_sal from emp where empno=7369;(将ename和sal的值放在v_name和v_sal里面)

例11:

declare

v_name emp.ename%type;

v_sal emp.sal%type;

begin

select ename,sal into v_name,v_sal from emp where empno=7369;

dbms_output.put_line(v_name||' '||v_sal);

end;

dbms_output.put_line(v_name||' '||v_sal);

end;

例12:

declare

v_deptno dept.deptno%type:=50;

v_dname dept.dname%type:='aaaa';

v_loc dept.loc%type:='bj';

begin

insert into dept2 values(v_deptno,v_dname,v_loc);

commit;

end;

例13:

declare

v_deptno emp2.deptno%type:=50;

v_count number;

begin

update emp2 set sal=sal/2 where deptno=v_deptno;

dbms_output.put_line(sql%rowcount ||'条记录被影响');(sql为关键字,代表上一条语句commit;

end;

/

例14:

declare

v_deptno emp2.deptno%type:=50;

v_count number;

begin

--update emp2 set sal=sal/2 where deptno=v_deptno;

select deptno into v_deptno from emp2 where empno=7369;

dbms_output.put_line(sql%rowcount ||'条记录被影响');(sql为关键字,代表上一条语句commit;

end;

/

例15

declare

v_deptno emp2.deptno%type:=50;

v_count number;

begin

--update emp2 set sal=sal/2 where deptno=v_deptno;

--select deptno into v_deptno from emp2 where empno=7369;

select count(*) into v_count from emp2; (select必须和into一起使用)

dbms_output.put_line(sql%rowcount ||'条记录被影响');

commit;

end;

/

PL/SQL里面执行DDL语句

begin

execute immediate 'create table T(nnn varchar2(20) default ''aaa'')';

end;

PL/SQL的分支语句:

declare

v_sal emp.sal%type;

begin

select sal into v_sal from emp

where empno=7369;

if(v_sal<1200) then

dbms_output.put_line('low');

elsif(v_sal<2000) then

dbms_output.put_line('middle');

else

dbms_output.put_line('high');

end if;

end;

pL/Sql循环

declare

i binary_integer:=1;

begin

loop

dbms_output.put_line(i);

i:=i+1;

exit when(i>=11);

end loop;

end;

PL/SQL for循环

begin

for k in 1..10 loop

dbms_output.put_line(k);

end loop;

for k in reverse 1..10 loop

dbms_output.put_line(k);

end loop;

end;

exception 捕获异常

declare

v_temp number(4);

begin

select empno into v_temp from emp where deptno=10; exception

when too_many_rows then

dbms_output.put_line('太多记录了');

when others then

dbms_output.put_line('error');

end;

没有数据错误

declare

v_temp number(4);

begin

select empno into v_temp from emp where deptno=2222;

exception

when no_data_found then

dbms_output.put_line('没数据');

when others then

dbms_output.put_line('error');

end;

/

错误处理

create table errorlog

(

id number primary key,

errcode number,

errmsg varchar2(1024),

errdate date

);

create sequence seq_errorlog_id start with 1 increment by 1;

declare

v_deptno dept.deptno%type:=10;

v_errcode number;

v_errmsg varchar2(1024);

begin

delete from dept where deptno=v_deptno;

exception

when others then

rollback;

v_errcode:=SQLCODE;

v_errmsg:=SQLERRN;

insert into errorlog values(seq_errorlog_id.nextval,v_errcode,v_errmsg,sysdate);

commit;

end;

游标

cursor c is

select * from emp;

v_emp c%rowtype;

begin

open c;

fetch c into v_emp; --(取游标的第一个值插入v_emp,在不断的循环) dbms_output.put_line(v_emp.ename);

close c;

end;

例子

declare

cursor c is

select * from emp;

v_emp c%rowtype;

begin

open c;

loop

fetch c into v_emp;

exit when(c%notfound);

dbms_output.put_line(v_emp.ename);

end loop;

close c;

end;

declare

cursor c is

select * from emp;

v_emp c%rowtype;

begin

open c;

fetch c into v_emp;

while(c%found) loop

dbms_output.put_line(v_emp.ename);

fetch c into v_emp;

end loop;

close c;

end;

declare

cursor c is

select * from emp;

for v_emp in c loop

dbms_output.put_line(v_emp.ename);

end loop;

end;

带参数的游标

declare

cursor c(v_deptno emp.deptno%type,v_job emp.job%type)

is

select ename,sal from emp where deptno=v_deptno and job=v_job; begin

for v_temp in c(30,'chick') loop

dbms_output.put_line(v_temp.ename);

end loop;

end;

可更新的游标

存储过程

create or replace procedure p

is

cursor c is

select * from emp2 for update;

begin

for v_emp in c loop

if (v_emp.deptno=10) then

update emp2 set sal=sal+10 where current of c;

elsif(v_emp.deptno=20) then

update emp2 set sal=sal+20 where current of c;

else

update emp2 set sal=sal+50 where current of c;

end if;

end loop;

commit;

end;

exec p执行存储过程

begin

p:

end;

带参数的存储过程

create or replace procedure p

(v_a in number,v_b number,v_ret out number, v_temp in out number) is

begin

if(v_a>v_b) then

v_ret:=v_a;

else

v_ret:=v_b;

end if;

v_temp:=v_temp+1;

end;

调用存储过程

declare

v_a number:=3;

v_b number:=4;

v_ret number;

v_temp number:=5;

begin

p(v_a,v_b,v_ret,v_temp);

dbms_output.put_line(v_ret);

dbms_output.put_line(v_temp);

end;

show error返回错误信息

删除存储过程

存储过程中的函数

create or replace function sal_tax

(v_sal number)

return number

is

begin

if(v_sal<2000) then

return 0.10;

elsif(v_sal<2750) then

return 0.5;

else

return 0.20;

end if;

end;

/

触发器

create or replace trigger trig

after update on dept

for each row

begin

update emp set deptno=:NEW.deptno where deptno=:OLD.deptno; end;

/

ORACLE常用SQL语句大全

ORACLE常用SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:/mssql7backup/MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not nul l],..) 根据已有的表创建新表: A:select * into table_new from table_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only<仅适用于Oracle> 5、说明:删除表 drop table tablename

6、说明:增加一个列,删除一个列 A:alter table tabname add column col type B:alter table tabname drop column colname 注:DB2DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、添加主键: Alter table tabname add primary key(col) 删除主键: Alter table tabname drop primary key(col) 8、创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、创建视图:create view viewname as select statement 删除视图:drop view viewname 10、几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、几个高级查询运算词 A:UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 B:EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 C:INTERSECT 运算符 INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。 12、使用外连接

oracle中常用函数大全

oracle中常用函数大全 1、数值型常用函数 函数返回值样例显示 ceil(n) 大于或等于数值n的最小整数select ceil(10.6) from dual; 11 floor(n) 小于等于数值n的最大整数select ceil(10.6) from dual; 10 mod(m,n) m除以n的余数,若n=0,则返回m select mod(7,5) from dual; 2 power(m,n) m的n次方select power(3,2) from dual; 9 round(n,m) 将n四舍五入,保留小数点后m位select round(1234.5678,2) from dual; 1234.57 sign(n) 若n=0,则返回0,否则,n>0,则返回1,n<0,则返回-1 select sign(12) from dual; 1 sqrt(n) n的平方根select sqrt(25) from dual ; 5 2、常用字符函数 initcap(char) 把每个字符串的第一个字符换成大写select initicap('mr.ecop') from dual; Mr.Ecop lower(char) 整个字符串换成小写select lower('MR.ecop') from dual; mr.ecop replace(char,str1,str2) 字符串中所有str1换成str2 select replace('Scott','s','Boy') from dual; Boycott substr(char,m,n) 取出从m字符开始的n个字符的子串select substr('ABCDEF',2,2) from dual; CD length(char) 求字符串的长度select length('ACD') from dual; 3 || 并置运算符select 'ABCD'||'EFGH' from dual; ABCDEFGH 3、日期型函数 sysdate当前日期和时间select sysdate from dual;

oracle的Select语句

oracle的Select语句 select 查询的一般格式是 select {[distinct|all] columns | *} //1 选择列 from {tables | views | other select} //2 数据来源 where conditions //3 选择条件 group by columns //4 分组 having conditions //5 选择 order by columns //6 排序 一、选择列 1. select后面出现的内容可以是from后面的数据来源中的列,也可以是*,也可以是常量或者T-SQL函数。 2. 如果列名很长,或者多个表的列名有冲突,可以使用as来定义别名。 二、数据来源 1. 数据来源可以是表,视图,还可以是其他的select语句(即,行集)。 2. from子句中可以包含连接说明,即inner join,outer join这样的内容。这个内容参见下面的内容。 3. 可以在from子句中为表,视图,或者其他select语句的结果指定别名,但是不要用as。 三、where子句 1. 多个条件之间可以用and 或者or连接。 2. null值查询要使用is null,或者is not null,而不是=null或者<>null 3. like是进行模式匹配的一种方式,列的数据类型可以是任何字符或者日期数据。它的否定形式是not like。%和_是通配符,一个表示0或多个任意字符,一个表示一个任意字符。但是这两个字符如果不出现在like后面的模式中,就是两个普通字符。 4. text列的where条件只能是like,is null,patindex。 5. 如果要在like中匹配普通字符%和_,可以使用escape定义一个转义字符,这个转义字符可以随意指定。然后将这个转义字符放在一个通配符或者单引号之前,就表示这个通配符或者单引号是一个普通的字符。 6. in ,not in,between and,not between and.“between a and b”将会包括a和b在内。in可以转换为一个连接,但是not in不能。 7. where exists R.当且仅当R非空时,条件exists R为真。其否定形式是where not exists R. 8. where s <| >| = | <>| >=|<= all/any R.否定形式是在s前对整个表达式加not. 四、连接查询 两张表的连接可以用from子句的ansi连接语法或者where子句中的sql连接语法实现。ansi 连接语法格式为From table1 join_type table2 on(conditions) join_type table3 on(conditions)。 连接有等值连接,笛卡尔积(交叉连接),自然连接,theta连接,外部链接五种。 1 等值连接 select students.* , stu_course.* from students inner join stu_course on(students.id = stu_course.studentid)--31条记录,stu_course的记录数目

Oracle-基本建表语句

--创建用户 create user han identified by han default tablespace users Temporary TABLESPACE Temp; grant connect,resource,dba to han; //授予用户han开发人员的权利 --------------------对表的操作-------------------------- 创建表格语法: create table 表名( 字段名1 字段类型(长度) 是否为空, 字段名2 字段类型是否为空 ); -增加主键 alter table 表名 add constraint 主键名 primary key (字段名1); -增加外键: alter table 表名 add constraint 外键名 foreign key (字段名1) references 关联表 (字段名2); 在建立表格时就指定主键和外键 create table T_STU ( STU_ID char(5) not null, STU_NAME varchar2(8) not null, constraint PK_T_STU primary key (STU_ID) ); 主键和外键一起建立: create table T_SCORE ( EXAM_SCORE number(5,2),

EXAM_DATE date, AUTOID number(10) not null, STU_ID char(5), SUB_ID char(3), constraint PK_T_SCORE primary key (AUTOID), constraint FK_T_SCORE_REFE foreign key (STU_ID) references T_STU (STU_ID) ) --创建表 create table classes( id number(9) not null primary key, classname varchar2(40) not null ) --查询表 select * from classes; --删除表 drop table students; --修改表的名称 rename alist_table_copy to alist_table; --显示表结构 describe test --不对没查到 -----------------------对字段的操作 ----------------------------------- --增加列 alter table test add address varchar2(40); --删除列 alter table test drop column address; --修改列的名称 alter table test modify address addresses varchar(40; --修改列的属性 alter table test modi

oracle命令行大全

SQL*PLUS命令的使用大全 Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql*plus 语句。 我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。 除了sql*plus语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,它们一般用来对输出的结果进行格式化显示,以便于制作报表。 下面就介绍一下一些常用的sql*plus命令: 1. 执行一个SQL脚本文件 SQL>start file_name SQL>@ file_name 我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。 2. 对当前的输入进行编辑 SQL>edit 3. 重新运行上一次运行的sql语句 SQL>/ 4. 将显示的内容输出到指定文件 SQL> SPOOL file_name 在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。 5. 关闭spool输出 SQL> SPOOL OFF 只有关闭spool输出,才会在输出文件中看到输出的内容。 6.显示一个表的结构 SQL> desc table_name 7. COL命令: 主要格式化列的显示形式。 该命令有许多选项,具体如下: COL[UMN] [{ column|expr} [ option ...]] Option选项可以是如下的子句: ALI[AS] alias CLE[AR] FOLD_A[FTER] FOLD_B[EFORE] FOR[MA T] format

Oracle-SQL简单查询语句处理

Oracle-SQL简单查询语句处理笔记一 数据处理及进展–数据:是指所有能输入到计算机中并被计算机程序处理的符号的总称。 数据处理:是指对各种形式的数据进行收集、储存、加工和传播的一系列活动的综合。 其目的是从大量的、原始的数据中抽取、推导出对人们有价值的信息。 数据处理的3个阶段: ?人工管理阶段 ?文件系统阶段 ?数据库系统阶段 关系型数据库 ?数据模型–是数据库系统中,用于抽象、表示、处理现实世界中数据的一种形式架构。 ?数据模型三层次 概念模型:是现实世界到信息世界的第一层抽象,常用E-R 图表示。逻辑模型:是用户从数据库所看到的模型,是具体的DBMS 所支持的数据模型,常用的包括层次模型、网状模型、关系模型。

物理模型:是面向计算机物理表示的模型,描述了数据在储存介质上的组织结构,它不但与具体的DBMS有关,而且 V1.0 还与操作系统和硬件有关 关系型数据库 ?关系模型 关系模型有关系数据结构、关系操作集合和关系完整性约束三部分组成的。 关系数据结构:在关系模型中,现实世界的实体以及实体间的各种联系均用关系来表示。 在用户看来,关系就是一张由行和列组成的二维数据表。 关系操作:包括:选择、投影、连接、增加、删除、修改等。 关系完整性约束:包括实体完整性、参照完整性和用户定义的完整性。 算术运算符? 算术运算符优先级 乘除优先于加减 相同优先权的表达式按照从左至右的顺序依次计算 括弧可以提高优先权,并使表达式的描述更为清晰 空值NULL

?空值NULL –空值是指一种无效的、未赋值、未知的或不可用的值。 空值不同于零或者空格。 列别名 好处:方便查看 用来重新命名列的显示标题,如果SELECT语句中包含计算列,通常使用列别名来重新定义列标题。 ?使用列别名的方法 方式1:列名列别名 方式2:列名 AS 列别名 ?以下三种情况列别名两侧需要添加双引号 列别名中包含有空格 列别名中要求区分大小写 列别名中包含有特殊字符 连接操作符使用 || 去连接,相当于java中的 + 号呢。 消除重复行使用DISTINCT 关键字 习题整理一:简单的查询语句(查询oracle已经创建的表格,使用用户scott普通用户登陆) 说明:

oracle 经典SQL语句大全

一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1. dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1

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

日期/时间 相关查询 1、获取当前月份的第一天 运行这个命令能快速返回当前月份的第一天。你可以用任何的日期值替换 “SYSDATE”来指定查询的日期。 1 SELECT TRUNC (SYSDATE, 'MONTH') "First day of current month " 2 FROM DUAL; 2、获取当前月份的最后一天 这个查询语句类似于上面那个语句,而且充分照顾到了闰年,所以当二月份有 29 号,那么就会返回 29/2 。你可以用任何的日期值替换 “SYSDATE”来指定查询的日期。 view source print? 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 source print? 1 SELECT ADD_MONTHS (TRUNC (SYSDATE, 'YEAR'), 12) - 1 "Year Last Day" FROM DUAL 5、 获取当前月份的天数 这个语句非常有用,可以计算出当前月份的天数。你可以用任何的日期值替换 “SYSDATE”来指定查询的日期。 view source print? 1 SELECT CAST (TO_CHAR (LAST_DAY (SYSDATE), 'dd') AS INT) num ber_of_days 2 FROM DUAL; 6、获取当前月份剩下的天数 下面的语句用来计算当前月份剩下的天数。你可以用任何的日期值替换 “SYSDATE”来指定查询的日期。 1 SELECT SYSDATE, 2 LAST_DAY (SYSDATE) "Last",

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/3717048994.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/3717048994.html,ments r3 from user_col_comments a), (select t.table_name r4, https://www.wendangku.net/doc/3717048994.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 = 要查询的表

sql 语句大全

oracle数据库性能监控的SQL 1. 监控事例的等待 SQL> SELECT EVENT,SUM(DECODE(WAIT_TIME,0,0,1)) "PREV",SUM(DECODE(WAIT_TIME,0,1,0)) "CURR",COUNT(*) "TOT" FROM V$SESSION_WAIT GROUP BY EVENT ORDER BY 4; 2. 回滚段的争用情况 SQL> SELECT NAME, WAITS, GETS, WAITS/GETS "RATIO" FROM V$ROLLSTAT A, V$ROLLNAME B WHERE https://www.wendangku.net/doc/3717048994.html,N = https://www.wendangku.net/doc/3717048994.html,N; 3. 监控表空间的 I/O 比例 SQL> SELECT DF.TABLESPACE_NAME NAME,DF.FILE_NAME "FILE",F.PHYRDS PYR, F.PHYBLKRD PBR,F.PHYWRTS PYW, F.PHYBLKWRT PBW FROM V$FILESTAT F, DBA_DATA_FILES DF WHERE F.FILE# = DF.FILE_ID ORDER BY DF.TABLESPACE_NAME; 4. 监控文件系统的 I/O 比例 SQL> SELECT SUBSTR(A.FILE#,1,2) "#", SUBSTR(https://www.wendangku.net/doc/3717048994.html,,1,30) "NAME", A.STATUS,A.BYTES, B.PHYRDS,B.PHYWRTS FROM V$DATAFILE A, V$FILESTAT B WHERE A.FILE# = B.FILE#; 5.在某个用户下找所有的索引 SQL> SELECT USER_INDEXES.TABLE_NAME, USER_INDEXES.INDEX_NAME,UNIQUENESS, COLUMN_NAME FROM USER_IND_COLUMNS, USER_INDEXES WHERE USER_IND_COLUMNS.INDEX_NAME = USER_INDEXES.INDEX_NAME AND USER_IND_COLUMNS.TABLE_NAME = USER_INDEXES.TABLE_NAME ORDER BY USER_INDEXES.TABLE_TYPE, USER_INDEXES.TABLE_NAME, USER_INDEXES.INDEX_NAME, COLUMN_POSITION; 6. 监控 SGA 的命中率 SQL> SELECT A.VALUE + B.VALUE "LOGICAL_READS", C.VALUE "PHYS_READS", ROUND(100 * ((A.VALUE+B.VALUE)-C.VALUE) / (A.VALUE+B.VALUE)) "BUFFER HIT RATIO" FROM V$SYSSTAT A, V$SYSSTAT B, V$SYSSTAT C WHERE A.STATISTIC# = 38 AND B.STATISTIC# = 39 AND C.STATISTIC# = 40; 7. 监控 SGA 中字典缓冲区的命中率 SQL> SELECT PARAMETER, GETS,GETMISSES , GETMISSES/(GETS+GETMISSES)*100 "MISS RATIO",(1-(SUM(GETMISSES)/ (SUM(GETS)+SUM(GETMISSES))))*100 "HIT RATIO" FROM V$ROWCACHE WHERE GETS+GETMISSES <>0 GROUP BY PARAMETER, GETS, GETMISSES; 8. 监控 SGA 中共享缓存区的命中率,应该小于1% SQL> SELECT SUM(PINS) "TOTAL PINS", SUM(RELOADS) "TOTAL RELOADS", SUM(RELOADS)/SUM(PINS) *100 LIBCACHE FROM V$LIBRARYCACHE; SQL> SELECT SUM(PINHITS-RELOADS)/SUM(PINS) "HIT RADIO",SUM(RELOADS)/SUM(PINS)

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/3717048994.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表空间下)

ORACLE基本SQL语句

ORACLE基本定义、操作语句 一、表 1.创建表 CREATE TABLE TAB_NAME ( COL_01 V ARCHAR2(10) NOT NULL, COL_02 NUMBER(8,2), COL_03 DATE ); 2.添加主键约束 ALTER TABLE TAB_NAME ADD CONSTRAINT PK_COL_01 PRIMARY KEY(COL_01); 3.添加唯一性约束 ALTER TABLE TAB_NAME ADD CONSTRAINT UK_COL_02 UNIQUE(COL_02); 4.添加外键约束 ALTER TABLE TAB_NAME ADD CONSTRAINT FK_COL0_03 FOREIGN KEY(COL_03) REFERENCES TAB_2(COL_03); 5.添加check约束 ALTER TABLE TAB_NAME ADD CONSTRAINT CHK_COL_03 CHECK(COL_01 <> ‘ABC’); 6.创建索引 ――创建唯一索引 CREATE UNIQUE INDEX IDX_NAME ON TAB_NAME(COL_01); ――创建非唯一索引 CREATE INDEX IDX_NAME ON TAB_NAME(COL_01); 7.给表添加一个新列 ALTER TABLE TAB_NAME ADD COL_04 V ARCHAR2(10); 8.修改列的数据类型 ALTER TABLE TAB_NAME MODIFY COL_04 NUMBER(8); 9.删除一列 ALTER TABLE TAB_NAME DROP COLUMN COL_04; 10.更改表的名称 ALTER TABLE TAB_NAME RENAME TO TAB_NEW_NAME; 11.更改表的列名 ALTER TABLE TAB_NAME RENAME COLUMN COL_04 TO COL_05; 12.给表和列添加注释说明 --add comments to the table COMMENT ON TABLE TAB_NAME IS‘示例表’; --add comments to the column COMMENT ON COLUMN TAB_NAME.COL_01 IS‘列名’; 13.删除表 DROP TABLE TAB_NAME; 14.MERGE merge into tj_test1 tt1

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/3717048994.html,mandText = "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 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;

Oracle数据库常用的Sql语句

Oracle数据库常用的Sql语句 今天想查询一下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/3717048994.html,er_tab_columns; //查询表名,并显示列名 describe 表名//查询表结构 2: 查询数据库参数 show parameter db; 3:查询数据库的实例名 select instance_name from v$instance; 4: 数据库域名 数据库安装结束后,如果要知道正在运行额数据库是否有域名以及数据库域名名称可以用select value from v$parameter where name='db_domain' show parameter domain 5:数据库服务名 如果数据库有域名,则数据库服务名就是全局数据库名,如果该数据库没有定义域名,则数据库服务名与数据库名相同 show parameter service_name 6:显示当前用户 show user 7:直接登陆 sqlplus "/as sysdba" 8:当前ORACLE系统时间 select sysdate from dual; 9:查询数据库字典v$nls_parameter产看字符集相关参数 select * from v$nls_parameters; //************* oracle基本操作语句(适合初学者) oracle操作语句:

oracle基本操作语句(适合初学者)

1. select * from table_name where rownum>begin and rownum< end 2.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; //查询数据库名和它的ID select * from https://www.wendangku.net/doc/3717048994.html,er_tab_columns; //查询表名,并显示列名 describe 表名//查询表结构 select * from https://www.wendangku.net/doc/3717048994.html,er_tab_columns where table_name=表名//查询指定表名的字段 2: 查询数据库参数 show parameter db;

相关文档