oracle数据库查询语句
Ⅰ oracle查询语句sql
给你一个参考的写法:
select *
from 病人信息
where 登记时间 between
to_date('2005-05-08 00:00:00', 'yyyy-mm-dd hh24:mi:ss') and
to_date('2005-08-08 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
and to_char(登记时间,'hh24:mi:ss') = '07:39:29'
Ⅱ 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='TABLE_NAME';//查询表中的表名,字段名等等。 最后的table_name要大写。
5. 如何执行脚本SQL文件? SQL>@PATH/filename.sql;
7.查询用户下的所有表 select distinct table_name from user_tab_columns; ===仅显示一列表名。
8.如何搜索出前N条记录?
select * from tablename where rownum<n;--足矣。(--是注释用的标记)
9.查找用户下的所有表:select * from tab; --查询该用户下的所有表及视图(显示表名tname, 类型tabname和clusterid)
2、显示当前连接用户
SQL> show user –不能用在sql窗口 只能用在command命令窗口。
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 –或者是connect a/a
6、查询当前用户下所有对象
SQL> select * from tab; --table或是view
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 al ; --‘||chr(10)||’作为换行符
53. 如何使select语句使查询结果自动生成序号?
select rownum COL from table; --主要就是oracle中引入了rownum
54. 如何知道数据裤中某个表所在的tablespace?
select tablespace_name from user_tables where table_name='TEST'; --table_name名称要大写。
select * from user_tables中有个字段TABLESPACE_NAME,(oracle);
select * from dba_segments where …;
55. 怎么可以快速做一个和原表一样的备份表?
create table new_table as (select * from old_table);
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$session表
62. 怎么可以看到数据库有多少个tablespace?
select * from dba_tablespaces;
Ⅲ ORACLE 快速查询数据SQL语句
单条匹配,没有索引也不准备建索引。只能靠并发来加快检索速度,最快的语句应该是:select /*+ full(A) parallel(A,10) */ * from A where b=c;理由有2:full table scan 时,oracle会一次读出多个block加快速度parallel指定并发10线程检索,当然如果允许,你指定20也可以。最好等于CPU个数。 不过还是建议在b列上建索引,这是最好的办法。
Ⅳ oracle数据库中多条件查询语句怎么写
1、首先需要打开一个oracle数据库界面。
Ⅳ 在oracle数据库中查询语句怎么写
查询语句差不多的
select*from表名--最基础的查询与SQLServer一样
(ORACLE) SELECT a.*, b.* from a(+) = b就是一个右连接,等同于select a.*, b.* from a right join b (ORACLE与SQL Server)
(ORACLE) SELECT a.*, b.* from a = b(+)就是一个左连接,等同于select a.*, b.* from a left join b (Oracle 与SQL Server)
记得加条件
Ⅵ oracle SQL查询语句
SELECT LPAD(' ',(LEVEL-1)*3)||ename
FROM emp
START WITH ename='SMITH'
CONNECT BY PRIOR empno=mgr ;
SELECT ename
FROM emp
START WITH ename='SCOTT'
CONNECT BY PRIOR mgr=empno
ORDER BY LEVEL DESC ;
SELECT LPAD(' ',(LEVEL-1)*3)||ename
FROM emp
START WITH mgr IS NULL
CONNECT BY PRIOR empno=mgr ;
你问的是ORACLE中层次树状查询,START WITH 。。 CONNECT BY 用法。
START WITH 指明树的起点。至于是找上级还是下级(也就是你问的),关键就在于PRIOR的用
法。PRIOR的意思是前一个。
比如:START WITH ename='SMITH'
CONNECT BY PRIOR empno=mgr ;
的意思:ename='SMITH'表示树的起点,即第一行
CONNECT BY PRIOR empno=mgr 表示上一行员工的编号是当前行的管理者,即找SMITH的下属。
START WITH ename='SCOTT'树的起点,即第一行
CONNECT BY PRIOR mgr=empno 表示上一行员工的管理员编号是当前员工的编号,即找SCOTT的上级及间接上级。
Ⅶ oracle 中的 sql语句查询
1、
select emp.* from emp,(select deptno,avg(sal) avg1 from emp group by deptno)B where emp.deptno=B.deptno and emp.sal>B.avg1;
2、
select emp.*,B.avg1 平均工资 from emp,(select deptno,avg(sal) avg1 from emp group by deptno)B where emp.deptno=B.deptno and emp.sal>B.avg1;
3、
select emp.* from emp,(select deptno,avg(sal) avg1 from emp group by deptno)B where emp.sal=B.avg1;
4、
select A.*,B.* from
(select * from emp where empno=10)A,
(select * from emp where empno=(select mgr from emp where empno=10))B;
---
以上,希望对你有所帮助。
Ⅷ Oracle数据库查询语句
1。select a.xm,b.cj from xsmd a,cjd b where a.xh=b.xh order by b.cj desc
2。select a.xm from xsmd a,cjd b where a.xh<>b.xh
3。 declare
i number;
v_temp1 varchar2(100);
v_temp2 varchar2(100);
cursor c1 is
select xh from cjd where cj <60;
rt1 c1%rowtype;
begin
delete from ljmd;
open c1;
fetch c1 into rt1;
while c1%found loop
insert into ljmd select xh,xm,dh from xsmd where xh=rt1;
commit;
end loop;
close c1;
end;
最后一题的第三个空格处我觉得不用写东西了啊
哦,改一下
select xm from xsmd where xh not in (select xh from cjd)
Ⅸ Oracle数据库里面的SQL语句查询
你的第3条语句我看不到.不过就我看到的说:
(1)只有一项的,不要用in,用等号就行. t.eventtype in (1002)改成t.eventtype=1002
(2)>= and <=可以写成between的形式. t.ymd>=20091013 and t.ymd<=20091030改成t.ymd between 20091013 and 20091030
(3)不到万不得已不要用or.带or的查询,一个索引也用不上,会变很慢.
(4)你的order by完全没作用.因为是查数据的条数,所以排序只会让速度变慢.
上述四条都可以使查询加速.
最后,很奇怪,你要的是count(*),又有设置rownum<2001,这样如果多于2000条,不是只会有count(*)=2000吗?只有少于2000条的时候,count(*)才会是查询本身查到的条数.也许就是为什么数据量少反而慢的原因,在多于2000条记录的情况下,oracle已经意识到,这个查询的结果只可能是2000...