oracle數據庫學習

  • trunc(number[,decimals])--number 待作截取處理的數值;decimals 指明需保留小數點後面的位數

   

CREATE PUBLIC DATABASE LINK CopydbToTransLink CONNECT TO hs_user IDENTIFIED BY hundsun USING 'COPYDB1'; linux

DROP [PUBLIC] DATABASE LINK dblink; sql

注意:你必須有CREATE DATABASE LINK或CREATE PUBLIC DATABASE LINK的權限(可用sys身份去分配),另外,在你要鏈接的數據庫上的權限. 數據庫

grant CREATE DATABASE LINK to hr; oracle

參數說明: 函數

dblink: 你所建立的database link的名字, 測試

user和password:要鏈接的數據庫的用戶名和密碼 spa

connect_string:能夠是通過Net Manager配置的(tnsnames.ora)且經測試能夠鏈接的服務名,不過也更直接用tnsnames裏的字符串:(DESCRIPTION = 日誌

(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = even.oracle.com)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME =orcl) ) component

經過SHOW PARAMETER GLOBAL_NAMES,能夠查看到其值是FALSE或者TRUE。 對象

1、oracle數據庫

1.linux查看oracle服務啓動 ps -ef|grep pmon 其中pmon(process monitor)進程監器

關閉數據庫 sqlplus / as sysdba

shutdown immediate

啓動數據庫 sqlplus / as sysdba

startup

啓動監聽 lsnrctl start

2.查詢登陸用戶名 select * from dba_users;

鏈接數據 conn hs_user/hundsun@UF20

2、oracle數據庫函數說明

nvl(字段名,0),就是當你選出來的時候,這個字段雖然爲空,可是顯示的是0,固然這個0也能夠換成其餘東西,如:1,2,3……

DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示若是value 等於if1時,DECODE函數的結果返回then1,...,若是不等於任何一個if值,則返回else。初看一下,DECODE 只能作等於測試,但剛纔也看到了,咱們經過一些函數或計算替代value,是可使DECODE函數具有大於、小於或等於功能。

3、max函數 查詢出當前數據中最大的數據

4、備份講解

rows=n在exp中就是表示只導出表結構,而不導出數據,其中rows爲行的意思,n爲no的意思。

若是加上"full=y",將整個數據庫所有導出,須要特殊的權限(具體什麼權限沒研究過),通常用system用戶就足夠了,普通用戶是不能夠的。

查看錶空間大小及相關的sql

一、查看錶空間的名稱及大小

SQl > SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size FROM dba_tablespaces t, dba_data_files d WHERE t.tablespace_name = d.tablespace_name GROUP BY t.tablespace_name;

二、查看錶空間物理文件的名稱及大小

SQl > SELECT tablespace_name, file_id, file_name, round(bytes / (1024 * 1024), 0) total_space FROM dba_data_files ORDER BY tablespace_name;

三、查看回滾段名稱及大小

SQl > SELECT segment_name, tablespace_name, r.status, (initial_extent / 1024) initialextent, (next_extent / 1024) nextextent, max_extents, v.curext curextent FROM dba_rollback_segs r, v$rollstat v WHERE r.segment_id = v.usn(+) ORDER BY segment_name;

四、查看控制文件

SQl > SELECT NAME FROM v$controlfile;

五、查看日誌文件

SELECT MEMBER FROM v$logfile;

六、查看錶空間的使用狀況

SQl > SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name FROM dba_free_space GROUP BY tablespace_name;

SQl > 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 c WHERE a.tablespace_name = b.tablespace_name AND a.tablespace_name = c.tablespace_name;

七、查看數據庫庫對象

SQl > SELECT owner, object_type, status, COUNT(*) count# FROM all_objects GROUP BY owner, object_type, status;

八、查看數據庫的版本

SQl > SELECT version FROM product_component_version WHERE substr(product, 1, 6) = 'Oracle';

九、查看數據庫的建立日期和歸檔方式

SQl > SELECT created, log_mode, log_mode FROM v$database;

備份表 使用create table xxx as select xxxxx...

建立表空間時候,查看以前建立的路徑 select * from dba_data_files;

查看oracle的版本 select * from v$version;

查詢一個表中重複的數據

比方說

在A表中存在一個字段"name",

並且不一樣記錄之間的"name"值有可能會相同,

如今就是須要查詢出在該表中的各記錄之間,"name"值存在重複的項;

Select Name,Count(*) From A Group By Name Having Count(*) > 1

查詢前多少條數目使用

select...where rownum <=N order by rownum asc

oracle 變動某個字段的值爲當前值加上其它值

update A表 set a=a||'其餘值';

將多條行的值,顯示成爲一行,並使用逗號分隔 wm_concat(字段)

使用replace(字段,'要修改的字符','修改後的字符') 修改查詢字段中的字符爲想要的字符

查詢oracle用戶具備的權限 select * from dba_sys_privs;

相關文章
相關標籤/搜索