1、經常使用Sqljava
一、建立用戶web
create tablespace whc_tbs datafile 'E:\oracle\oradata\whcdb\whc.dbf' size 100M; sql
create user whc identified by whc default tablespace whc_tbs; 數據庫
grant connect,resource,dba to whc; oracle
二、刪除數據文件(dbf文件)ide
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;函數
三、Oracle減小null工具
表中最好別有null記錄,這會引發全文掃描,建議改爲0代替。url
四、查詢字段類型spa
select * from cols where table_name='TBL_SYS_TREE_CODE';//查詢字段信息
select * from user_col_comments;//查詢字段備註
select * from user_tab_comments;//查詢表備註
五、count(*)會查詢出全部記錄(包括null);select(字段)也會查詢出全部記錄,可是不包括null
六、排序後,查詢出一條記錄
select CODE_ID from (
select CODE_ID, rownum from TBL_SYS_TREE_CODE where PARENT_ID is null order by last_modify_time desc)
where rownum=1
七、系統表
--USER_*:有關用戶所擁有的對象信息,即用戶本身建立的對象信息
--ALL_*:有關用戶能夠訪問的對象的信息,即用戶本身建立的對象的信息加上其餘用戶建立的對象但該用戶有權訪問的信息
--DBA_*:有關整個數據庫中對象的信息
--查詢用戶信息
select * from dba_users;//查詢全部用戶
select * from all_users;//查詢全部用戶,獲得的信息比較少
select * from user_users;//用戶本身的信息
select * from dba_sys_privs;//查詢權限
select * from all_sys_privs;//此表不存在
select * from user_sys_privs;//查詢用戶的權限
select * from dba_tab_privs where owner = 'holly';
select * from all_all_tables;//查詢全部的表
八、常常查詢某一天,或者某一個月的記錄,可是不知道Oracle內部的時間轉換,有種簡單的方式
select * from user where regTime like '2015-12-12%' //查詢12月12日的全部記錄
select * from user where regTime like '2015-12%' //查詢12月份的全部記錄
九、設置表、字段註釋
comment on table table_name is 'comments_on_tab_information';//設置表備註
comment on column table.column_name is 'comments_on_col_information';//設置字段備註
十、group by/order by/distinct
去重:group by,distinct
group by 查詢的結果中必需要有聚合函數,並且分組的字段必須出如今查詢結果中
排序:order by
group by 在order by 前面,並且order by 中的數據必須在group by中出現。
2、Oracle更一個字段
更改某個字段的類型
有一個表名爲tb,字段段名爲name,數據類型nchar(20)。
一、假設字段數據爲空,則無論改成什麼字段類型,能夠直接執行:
alter table tb modify (name nvarchar2(20));
二、假設字段有數據,則改成nvarchar2(20)能夠直接執行:
alter table tb modify (name nvarchar2(20));
三、假設字段有數據,則改成varchar2(40)執行時會彈出:「ORA-01439:要更改數據類型,則要修改的列必須爲空」,這時要用下面方法來解決這個問題:
/*修改原字段名name爲name_tmp*/
alter table tb rename column name to name_tmp;
/*增長一個和原字段名同名的字段name*/
alter table tb add name varchar2(40);
/*將原字段name_tmp數據更新到增長的字段name*/
update tb set name=trim(name_tmp);
/*更新完,刪除原字段name_tmp*/
alter table tb drop column name_tmp;
總結:
一、當字段沒有數據或者要修改的新類型和原類型兼容時,能夠直接modify修改。
二、當字段有數據並用要修改的新類型和原類型不兼容時,要間接新建字段來轉移。
3、導入導出
1)導出:Tools-Export Tables
一、導出dmp格式
二、導出sql格式
三、導出pie格式
2)導入:Tools-Import Tables
3)命令導入導出:
一、導入
imp username/password@ip:port/Oracle標識grants=y fromuser=源數據用戶 touser=備份到哪一個用戶file=D:\shop.dmp(源文件) log=D:\shop.log(源文件日誌)
二、導出
exp username/password@ip:port/Oracle標識 grants=y owner=源數據用戶 file=D:\shop.dmp(源文件) log=D:\shop.log(源文件日誌)
4)藉助Navicat導入導出
一、導入
選中當前用戶-》運行sql文件
注意:導入的時候,須要注意修改用戶名
二、導出
選中當前用戶-》轉儲sql文件-》數據和結構(結構)。(注意:也能夠單表導出)
三、安裝Navicat(萬能輔助數據庫)
分享:https://yunpan.cn/cYFEVtNDu9cxn 訪問密碼 e7e9
工具-》選項(這裏的OCI文件必須配套)
4、Oracle添加一個鏈接標識
一、Oracle在本機的服務。也就是在安裝Oracle服務過程當中的惟一標識
下圖XE就是本機的惟一標識。
OracleServiceXE、OracleXETNSListener是Oracle必須的兩個服務
二、tnsnames.ora文件
若是想要爲本機的服務添加一個鏈接
Holly =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))//ip、端口
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME =XE)//Oracle服務的惟一標識
)
)
三、鏈接數據源
3.一、java
jdbc.url=jdbc\:oracle\:thin\:@172.16.52.1\:1521\:orcl
3.二、pl/sql
172.16.52.1:1521/orcl
3.三、Navicat
鏈接名自定義:Curtain
IP:172.16.52.1
Service Name:orcl