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...