------------------sql語句的操作和幫助--------------------------
--查看某個命令的幫助信息
help?show;
--查看所有系統(tǒng)變量值信息
show?all;
--查看當(dāng)前用戶
show?user;
--查看SGA大小
show?sga;
--查看錯誤信息
show?errors;
--查看數(shù)據(jù)庫版本信息
show?rel;
--查看系統(tǒng)初始化參數(shù)信息
show?parameters;
/*使用save命令將緩沖區(qū)的sql語句保存到單獨(dú)的文件中
??可選參數(shù):cre?默認(rèn),創(chuàng)建文件
?????rep?如果文件存在,則覆蓋,不存在則創(chuàng)建文件
?????app?如果文件存在,則在結(jié)尾追加,不存在則創(chuàng)建文件?
*/
save?'路徑文件名'?cre/rep/app;
/*使用get命令將指定的文件中的sql語句讀取到sqlplus緩沖區(qū)
??可選參數(shù):?list?默認(rèn),列出緩沖區(qū)的語句
??????nolist?不列出緩沖區(qū)的語句??
*/
get?'路徑文件名'?list/nolist;
/*使用start命令讀取并運(yùn)行文件的內(nèi)容?*/
start?'路徑和文件名';
sta?'路徑和文件名';
@?'路徑和文件名';?--三種方法效果一樣,單引號也可以省略
/*使用edit命令可以將sqlplus緩沖區(qū)的內(nèi)容復(fù)制到afiedt.buf的文件中
??并啟動操作系統(tǒng)默認(rèn)的編輯工具打開?
*/
edit/ed?'文件名'?--文件名可省略,默認(rèn)為afiedt.buf
/*使用spool命令將sqlplus中的輸出結(jié)果復(fù)制到指定的文件中
??或者把查詢結(jié)果發(fā)送到打印機(jī)中,直到使用spool?off命令為止
??可選參數(shù):cre?默認(rèn),創(chuàng)建文件
?????rep?如果文件存在,則覆蓋,不存在則創(chuàng)建文件
?????app?如果文件存在,則在結(jié)尾追加,不存在則創(chuàng)建文件
?????off?停止將sqlplus中的輸出結(jié)果復(fù)制到指定文件,并關(guān)閉該文件
?????out?啟動該功能,經(jīng)sqlplus的輸出結(jié)果復(fù)制到指定文件
*/
spool/spo?'路徑文件名'?cre/rep/app/;
start/@?'路徑文件名';
spool/spo?off;
------------------------------變量的聲明------------------------------------
--用&聲明臨時變量,用&&聲明表示使用同一個臨時變量(以emp表為例)
select?&temp?from?emp?where?&temp>2000;?--表示兩個變量,需要輸入兩次
select?&&temp?from?emp?where?&&temp>2000?--表示一個變量,輸入一次
--使用臨時變量時,是否顯示“原值新值”信息
set?verify?off;?--不顯示
set?verify?on;??--顯示
--已定義變量的兩種聲明方法
--用define聲明變量
define?temp=100;
--用accept聲明
acc[ept]?變量名?變量類型?[format/for?指定格式]?[default/def?default]?[prompt?'提示內(nèi)容']?ompt/hide
例句:accept?test?number?format?9999?prompt?'請為test輸入一個值:'?hide;?--hide表示隱藏輸入的值
--刪除已定義變量
undefine?變量名;
------------------------------表空間的操作--------------------------------------
--查詢表空間使用情況
SELECT?UPPER(F.TABLESPACE_NAME)?"表空間名",
D.TOT_GROOTTE_MB?"表空間大小(M)",
D.TOT_GROOTTE_MB?-?F.TOTAL_BYTES?"已使用空間(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB?-?F.TOTAL_BYTES)?/?D.TOT_GROOTTE_MB?*?100,2),'990.99')?||?'%'?"使用比",
F.TOTAL_BYTES?"空閑空間(M)",
F.MAX_BYTES?"最大塊(M)"
FROM?(SELECT?TABLESPACE_NAME,
ROUND(SUM(BYTES)?/?(1024?*?1024),?2)?TOTAL_BYTES,
ROUND(MAX(BYTES)?/?(1024?*?1024),?2)?MAX_BYTES
FROM?SYS.DBA_FREE_SPACE
GROUP?BY?TABLESPACE_NAME)?F,
(SELECT?DD.TABLESPACE_NAME,
?ROUND(SUM(DD.BYTES)?/?(1024?*?1024),?2)?TOT_GROOTTE_MB
FROM?SYS.DBA_DATA_FILES?DD
GROUP?BY?DD.TABLESPACE_NAME)?D
WHERE?D.TABLESPACE_NAME?=?F.TABLESPACE_NAME
ORDER?BY?1
--查詢數(shù)據(jù)庫現(xiàn)在的表空間
select?tablespace_name?表空間名稱,?file_name?文件路徑,?sum(bytes)/1024/1024?文件大小?
from?dba_data_files?group?by?tablespace_name,file_name;
--查看當(dāng)前實(shí)例
select?name?from?v$database;
--查看當(dāng)前數(shù)據(jù)庫實(shí)例名和主機(jī)名
select?instance_name,host_name?from?v$instance;
column?host_name?format?a20;?--對齊顯示,可有可無
--查看所有表空間
select?tablespace_name?from?dba_tablespaces;
--查看用戶下的表
select?*?from?user_tables;
--查看系統(tǒng)所有用戶
select?username,account_status?from?dba_users;
--查看具體的用戶權(quán)限,sys管理員登錄時:
select?*?from?dba_tab_privs?where?grantee=?'SH';??
select?*?from?TABLE_PRIVILEGES?where?GRANTEE='HLL1';
--查看當(dāng)前用戶的權(quán)限,當(dāng)前用戶登錄時:
select?*?from?user_sys_privs;
--創(chuàng)建表空間
create?tablespace?表空間名
datafile?'路徑表空間名.dbf'??/*表空間存放路徑*/
size?10m?/*初始容量*/
autoextend?on?next?2m?maxsize?100m??/*表空間自動擴(kuò)展,每次擴(kuò)展2m,最大限制100m,無最大限制可以設(shè)置為unlimited*/
logging
extent?management?local?/*表空間中的盤區(qū)管理采用本地化管理方式*/
segment?space?management?auto;?/*表空間中段的管理方式為自動管理方式*/
--刪除表空間
drop?tablespace?表空間名?including?contents?and?datafiles;
--建立臨時表空間
create?temporary?tablespace?臨時表空間名?
tempfile?'/oracle/oradata/db/臨時表空間名.dbf'?SIZE?50M?
--1.使表空間脫機(jī)
alter?tablespace?表空間名?offline;
--如果是意外刪除了數(shù)據(jù)文件,則必須帶有RECOVER選項(xiàng)
alter?tablespace?表空間名?offline?for?recover;
--2.使表空間聯(lián)機(jī)
alter?tablespace?表空間名?online;
--3.使數(shù)據(jù)文件脫機(jī)
alter?database?datafile?3?offline;
--4.使數(shù)據(jù)文件聯(lián)機(jī)
alter?database?datafile?3?online;
--5.使表空間只讀
alter?tablespace?表空間名?read?only;
--6.使表空間可讀寫
alter?tablespace?表空間名?read?write;?
/*擴(kuò)展表空間
修改文件大小:*/
alter?database?datafile?'d:fatafile.dbf'?resize?300M;
--添加數(shù)據(jù)文件:
alter?dataspace?userdb?add?datafile?'d:datafile2.dbf'?size?...;
--將表空間的數(shù)據(jù)文件設(shè)成自動擴(kuò)展:
alter?database?datafile?'d:datafile2.dbf'?autoextend?on?next?5M?maxsize?unlimited;
--表空間重命名
alter?tablespace?原表空間名?rename?to?新表空間名;
--------------------------用戶及權(quán)限------------------------------------
--創(chuàng)建用戶
create?user?用戶名
identified?by?密碼
default?tablespace?默認(rèn)的表空間名;
/*給用戶分配權(quán)限或角色
connect:臨時用戶
resource:正式數(shù)據(jù)庫用戶,可以創(chuàng)建表、觸發(fā)器、過程等
dba:數(shù)據(jù)庫管理員角色,最高權(quán)限
*/
grant?connect,resource,dba?to?用戶名;
--撤銷用戶的權(quán)限或角色
revoke?connect?from?qy;
--鎖定用戶帳戶
alter?user?用戶名?account?lock;
--解除用戶帳戶鎖定
alter?user?用戶名?account?unlock;
/*
忘記密碼(僅限在本機(jī)使用)
可以使用?conn?/@實(shí)例名?as?sysdba先登錄
再修改密碼:
?alter?user?用戶名?identified?by?密碼;??
*/
---------------------------數(shù)據(jù)表的操作----------------------------------
--允許用戶查看某個表中的記錄
grant?select?on?表名?to?用戶名;
--允許用戶更新某個表中的記錄
grant?update?on?表名?to?用戶名;
desc?表名;??--查看表結(jié)構(gòu)
select?table_name?from?user_tables;?--查詢當(dāng)前用戶下的數(shù)據(jù)表的名稱
create?index?索引名?on?表名(列名);??--創(chuàng)建索引
drop?index?索引名;?--刪除索引
select?index_name?from?user_indexes;?--查詢所有索引名
create?view?視圖名?as?sql查詢語句;??--創(chuàng)建視圖
create?sequence?序列名;?--創(chuàng)建序列
序列名.nextval???--使用序列
--創(chuàng)建數(shù)據(jù)表
create?table?master(
???????id?number(6,0)?primary?key,
???????loginid?nvarchar2(50)?not?null,
???????password?nvarchar2(20)?not?null,
???????status?char(1)?default?1?not?null
);
--刪除數(shù)據(jù)表
drop?table?表名;
-------------------------約束--------------------------------
--添加帶主鍵及約束的語法:
--alter?table??表名
--add?constraint??約束名??約束類型??具體的約束說明
--添加主鍵約束(將StudentNo作為主鍵)
alter?table?Student
add?constraint?PK_stuNo?primary?key?(StudentNo)
--添加唯一約束(身份證號唯一)
alter?table?Student
add?constraint?UQ_stuID?unique?(身份證號列名)
--添加默認(rèn)約束(如果地址不填,默認(rèn)為“地址不詳”)
alter?table?Student
add?constraint?DF_stuAddress?default?('地址不詳')?for?Address
--添加檢查約束(要求出生日期在1980年1月1日之后)
alter?table?Student
add?constraint?CK_stuBornDate?check?(BornDate?>=?'1980-01-01')
--添加外鍵約束(主表Student和從表Result建立關(guān)系,關(guān)聯(lián)列為StudentNo)
alter?table?Result
add?constraint?FK_stuNo?
foreign?key?(stuNo)?references?Student(stuNo)
--刪除約束:
alter?table?表名
drop?constraint?約束名
-----------------------序列------------------------------------
/*創(chuàng)建序列,序列用來為表的主鍵生成唯一的序列值.
可選參數(shù):
Increment?by?指定序列值每次增長的值
Start?with?指定序列的第一個值
Maxvalue?指定產(chǎn)生的序列的最大值
Minvalue?指定產(chǎn)生的序列的最小值
Cycle?指定當(dāng)序列值逵到最大或最小值時,該序列是否循環(huán).
Cache?指定序列生成器一次緩存的值的個數(shù)
Order?指定序列中的數(shù)值是否按訪問順序排序.?
*/
?create?sequence?序列名
?????????increment?by?4
?????????start?with?50
?????????maxvalue?60
?????????minvalue?50
?????????cycle?
?????????cache?3;
--查看序列,dual為虛擬表
select?序列名.nextval?from?dual;
select?序列名.currval?from?dual;
-----------------------column命令簡單使用--------------------------------------
--使用column命令格式化指定的列(以emp表為例)
column?empon?heading?'員工編號'?format?9999;
column?ename?heading?'員工姓名'?format?a10;
column?mgr?heading?'上級編號'?format?9999;
column?hiredate?heading?'受雇日期'?justify?center;
column?sal?heading?'員工工資'?format?$999,999,99;
select?*?from?emp;
---------待更新。。。