1.create user username identified by password;//建用戶名和密碼oracle ,oracle
福貢網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)建站于2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
2.grant connect,resource,dba to username;//授權(quán) 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. 如何執(zhí)行腳本SQL文件? SQL@PATH/filename.sql;
7.查詢用戶下的所有表 select distinct table_name from user_tab_columns; ===僅顯示一列表名。
8.如何搜索出前N條記錄?
select * from tablename where rownumn;--足矣。(--是注釋用的標記)
9.查找用戶下的所有表:select * from tab; --查詢該用戶下的所有表及視圖(顯示表名tname, 類型tabname和clusterid)
2、顯示當前連接用戶
SQL show user –不能用在sql窗口 只能用在command命令窗口。
3、查看系統(tǒng)擁有哪些用戶
SQL select * from all_users;
4、新建用戶并授權(quán)
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、查詢表結(jié)構(gòu)
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)||'' from dual ; --‘||chr(10)||’作為換行符
53. 如何使select語句使查詢結(jié)果自動生成序號?
select rownum COL from table; --主要就是oracle中引入了rownum
54. 如何知道數(shù)據(jù)褲中某個表所在的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. 改變數(shù)據(jù)文件的大小?
用 ALTER DATABASE .... DATAFILE .... ;
手工改變數(shù)據(jù)文件的大小,對于原來的 數(shù)據(jù)文件有沒有損害。
61. 怎樣查看ORACLE中有哪些程序在運行之中?
查看v$session表
62. 怎么可以看到數(shù)據(jù)庫有多少個tablespace?
select * from dba_tablespaces;
如果都是n位2進制的
我舉個例子
比如表a有字段col是5位2進制
select max(substr(col,1,1))||max(substr(col,2,1))||max(substr(col,3,1))||max(substr(col,4,1))||max(substr(col,5,1)) from a
oracle只能顯示成這樣
select?身份證號碼,姓名,年齡,wm_concat(體檢時間),wm_concat(體檢結(jié)果)?from?表名?group?by?身份證號碼,姓名,年齡
oracle的if語句采用decode函數(shù)。
DECODE(value,if1,then1,if2,then2,if3,then3,...,else)
表示如果value 等于if1時,DECODE函數(shù)的結(jié)果返回then1,...,如果不等于任何一個if值,則返回else
示例:
比如,有個if語句如下
if(a==1){//如果a等于1,返回2,否則返回3
return?2;
}else{
return?3;
}
翻譯成DECODE如下
DECODE(a,1,2,3)
select i.姓名,i.成績, (select count(distinct o.成績) from info o where i.成績o.成績 and i.姓名o.姓名)+1 as '排名' from info i
表名要做相應(yīng)的修改?。?!
我這個是在SQL SERVER2005上運行的,我想也不需要改動什么也可以在oracle上運行出來。 這樣做的話不需要動不動就去修改原表的結(jié)構(gòu)或者數(shù)據(jù)。 大致的思路是先把原表中的姓名和成績這兩列的原始數(shù)據(jù)查出來,然后通過一個子查詢來統(tǒng)計出比我當前要查的這個人的成績要大的人數(shù)有多少來作為排名這一列的數(shù)據(jù)。
如果確實想將排名的數(shù)據(jù)添加到表里面的話(在SQL SERVER2005下可以這樣寫,你試一下能否在你的oracle上面用)
update info set 排名=T.排名 from info i,(select i.姓名, (select count(distinct o.成績) from info o where i.成績o.成績 and i.姓名o.姓名)+1 as '排名' from info i) T where i.姓名=T.姓名
-----------------------------------------------------------------------------------------------------------------------
以上測試均是在SQL SERVER2005上測試,且均成功。我后來在oracle上運行了一遍,結(jié)果發(fā)現(xiàn)確實存在問題。
下面是經(jīng)過修改之后的sql語句,經(jīng)過測試是可以成功運行的。
單純將排名查出來,并不正真改變數(shù)據(jù):
select i.姓名,i.成績, (select count(distinct o.成績) from info o where i.成績o.成績 and i.姓名o.姓名)+1 as "排名" from info i
通過update語句將排名這一列的數(shù)據(jù)加上:
update info i set i.排名=(select count(distinct o.成績)+1 from info o where i.成績o.成績 and i.姓名o.姓名)
Oracle存儲過程基本語法: CREATE OR REPLACE PROCEDURE 存儲過程名 IS BEGIN NULL; END;解釋: 行1: CREATE OR REPLACE PROCEDURE 是一個SQL語句通知Oracle數(shù)據(jù)庫去創(chuàng)建一個叫做skeleton存儲過程, 如果存在就覆蓋它; 行2: IS關(guān)鍵詞表明后面將跟...