一
su
a
oracle>svrmgrl
SVRMGR>connect internal
SVRMGR>startup
SVRMGR>quit
b
oracle>svrmgrl
SVRMGR>connect internal
SVRMGR>shutdown
SVRMGR>quit
啟動oracle
$ sqlplus /nolog
SQL*Plus: Release
Copyright (c)
SQL> connect / as sysdba
Connected to an idle instance
SQL> startup^C
SQL> startup
ORACLE instance started
su - root
a
hareg -y oracle
b
hareg -n oracle
Oracle <;數據庫有哪幾種啟動方式
說明
有以下幾種啟動方式
非安裝啟動
讀取init
安裝啟動
數據庫日志歸檔
數據庫介質恢復
使數據文件聯機或脫機
重新定位數據文件
執行
但此時不對數據文件和日志文件進行校驗檢查
先執行
這種方式下可訪問數據庫中的數據
startup nomount
alter database mount
alter database open
約束方式啟動
這種方式能夠啟動數據庫
非特權用戶訪問時
ERROR
ORA
強制啟動方式
當不能關閉數據庫時
先關閉數據庫
帶初始化參數文件的啟動方式
先讀取參數文件
例
二
ORACLE的數據字典是數據庫的重要組成部分之一
體現為sys用戶下的一些表和視圖
數據字典裡存有用戶信息
我們不能手工修改數據字典裡的信息
很多時候
dictionary 全部數據字典表的名稱和解釋
dict_column 全部數據字典表裡字段名稱和解釋
如果我們想查詢跟索引有關的數據字典時
SQL>select * from dictionary where instr(comments
如果我們想知道user_indexes表各字段名稱的詳細含義
SQL>select column_name
依此類推
下面按類別列出一些ORACLE用戶常用數據字典的查詢使用方法
查看當前用戶的缺省表空間
SQL>select username
查看當前用戶的角色
SQL>select * from user_role_privs;
查看當前用戶的系統權限和表級權限
SQL>select * from user_sys_privs;
SQL>select * from user_tab_privs;
查看用戶下所有的表
SQL>select * from user_tables;
如果是按升序降序排列
查看名稱包含log字符的表
SQL>select object_name
where instr(object_name
查看某表的創建時間
SQL>select object_name
查看某表的大小
SQL>select sum(bytes)/(
where segment_name=upper(
查看放在ORACLE的內存區裡的表
SQL>select table_name
查看索引個數和類別
SQL>select index_name
查看索引被索引的字段
SQL>select * from user_ind_columns where index_name=upper(
查看索引的大小
SQL>select sum(bytes)/(
where segment_name=upper(
查看序列號
SQL>select * from user_sequences;
查看視圖的名稱
SQL>select view_name from user_views;
查看創建視圖的select語句
SQL>set view_name
SQL>set long
SQL>select text from user_views where view_name=upper(
查看同義詞的名稱
SQL>select * from user_synonyms;
查看某表的約束條件
SQL>select constraint_name
from user_constraints where table_name = upper(
SQL>select nstraint_name
from user_constraints c
where c
and c
order by cc
查看函數和過程的狀態
SQL>select object_name
SQL>select object_name
查看函數和過程的源代碼
SQL>select text from all_source where owner=user and name=upper(
三
select t
from dba_tablespaces t
where t
group by t
select tablespace_name
round(bytes/(
from dba_data_files
order by tablespace_name;
select segment_name
(initial_extent/
max_extents
From dba_rollback_segs r
Where r
order by segment_name ;
select name from v$controlfile;
select member from v$logfile;
select sum(bytes)/(
from dba_free_space
group by tablespace_name;
SELECT A
(B
FROM SYS
WHERE A
select owner
Select version FROM Product_component_version
Where SUBSTR(PRODUCT
Select Created
四
用系統管理員
SQL> select username
如果要停某個連接用
SQL> alter system kill session
如果這命令不行
SQL> select pro
說明
然後用 kill 命令殺此進程號
五
a
$sqlplus 用戶名/密碼
退出SQL*Plus
SQL>exit
b
列出全部SQL命令和SQL*Plus命令
SQL>help
列出某個特定的命令的信息
SQL>help 命令名
c
SQL>DESC 表名
d
顯示SQL緩沖區命令
SQL>L
修改SQL命令
首先要將待改正行變為當前行
SQL>n
用CHANGE命令修改內容
SQL>c/舊/新
重新確認是否已正確
SQL>L
使用INPUT命令可以在SQL緩沖區中增加一行或多行
SQL>i
SQL>輸入內容
e
SQL>edit 文件名
可以使用DEFINE命令設置系統變量EDITOR來改變文本編輯器的類型
DEFINE_EDITOR=vi
f
SQL>START test
SQL>@test
常用SQL*Plus語句
a
創建表的命令格式如下
create table 表名 (列說明列表)
為基表增加新列命令如下
ALTER TABLE 表名 ADD (列說明列表)
例
sql>alter table test
add (Age number(
修改基表列定義命令如下
ALTER TABLE 表名
MODIFY (列名 數據類型)
例
sql>alter atble test
modify (County char(
b
DORP TABLE 表名
例
sql>drop table test
c
六
完全備份的SH文件
rq=` date +
su
累計備份的SH文件
rq=` date +
su
增量備份的SH文件: exp_incr
rq=` date +
su
root用戶crontab文件
/var/spool/cron/crontabs/root增加以下內容
當然這個時間表可以根據不同的需求來改變的
七
一
INSERT INTO 表名(字段名
INSERT INTO 表名(字段名
字符串類型的字段值必須用單引號括起來
如果字段值裡包含單引號
字符串類型的字段值超過定義的長度會出錯
日期字段的字段值可以用當前數據庫的系統時間SYSDATE
或者用字符串轉換成日期型函數TO_DATE(
TO_DATE()還有很多種日期格式
年
INSERT時最大可操作的字符串長度小於等於
方法借用ORACLE裡自帶的DBMS_LOB程序包
INSERT時如果要用到從
CREATE SEQUENCE 序列號的名稱 (最好是表名+序列號標記) INCREMENT BY
MAXVALUE
其中最大的值按字段的長度來定
INSERT 語句插入這個字段值為: 序列號的名稱
DELETE FROM表名 WHERE 條件;
注意
如果確實要刪除一個大表裡的全部記錄
TRUNCATE TABLE 表名;
此操作不可回退
UPDATE表名 SET 字段名
如果修改的值N沒有賦值或定義時
值N超過定義的長度會出錯
注意事項:
A
確認完成後
否則改變不一定寫入數據庫裡
如果想撤回這些操作
B
應該把它限定在較小 (一萬條記錄) 范圍內
程序響應慢甚至失去響應
其間加上COMMIT 確認事物處理
二
ORACLE常用的字段類型有
CHAR 固定長度的字符串
VARCHAR
NUMBER(M
DATE 日期類型
創建表時要把較小的不為空的字段放在前面
創建表時可以用中文的字段名
創建表時可以給字段加上默認值
這樣每次插入和修改時
創建表時可以給字段加上約束條件
例如 不允許重復 UNIQUE
改變表的名稱
ALTER TABLE 表名
在表的後面增加一個字段
ALTER TABLE表名 ADD 字段名 字段名描述;
修改表裡字段的定義描述
ALTER TABLE表名 MODIFY字段名 字段名描述;
給表裡的字段加上約束條件
ALTER TABLE 表名 ADD CONSTRAINT 約束名 PRIMARY KEY (字段名);
ALTER TABLE 表名 ADD CONSTRAINT 約束名 UNIQUE (字段名);
把表放在或取出數據庫的內存區
ALTER TABLE 表名 CACHE;
ALTER TABLE 表名 NOCACHE;
刪除表和它所有的約束條件
DROP TABLE 表名 CASCADE CONSTRAINTS;
TRUNCATE 表名;
三
SELECT字段名
字段名可以帶入函數
例如: COUNT(*)
TO_CHAR(DATE字段名
NVL(EXPR
解釋:
IF EXPR
RETURN EXPR
ELSE
RETURN EXPR
DECODE(AA﹐V
解釋:
IF AA=V
IF AA=V
ELSE
RETURN NULL
LPAD(char
解釋:
字符char
字段名之間可以進行算術運算
例如: (字段名
查詢語句可以嵌套
例如: SELECT …… FROM
(SELECT …… FROM表名
兩個查詢語句的結果可以做集合操作
例如: 並集UNION(去掉重復記錄)
分組查詢
SELECT字段名
[HAVING 條件] ;
兩個以上表之間的連接查詢
SELECT字段名
表名
SELECT字段名
表名
有(+)號的字段位置自動補空值
查詢結果集的排序操作
SELECT字段名
ORDER BY字段名
字符串模糊比較的方法
INSTR(字段名
字段名 LIKE
每個表都有一個隱含的字段ROWID
四
CREATE INDEX 索引名ON 表名 ( 字段
ALTER INDEX 索引名 REBUILD;
一個表的索引最好不要超過三個 (特殊的大表除外)
也可以建立多字段的組合索引和基於函數的索引
ORACLE
ORACLE
CREATE VIEW 視圖名AS SELECT …
ALTER VIEW視圖名 COMPILE;
視圖僅是一個SQL查詢語句
CREATE SYNONYM同義詞名FOR 表名;
CREATE SYNONYM同義詞名FOR 表名@數據庫鏈接名;
CREATE DATABASE LINK數據庫鏈接名CONNECT TO 用戶名 IDENTIFIED BY 密碼 USING
數據庫連接字符串可以用NET
數據庫參數global_name=true時要求數據庫鏈接名稱跟遠端數據庫名稱一樣
數據庫全局名稱可以用以下命令查出
SELECT * FROM GLOBAL_NAME;
查詢遠端數據庫裡的表
SELECT …… FROM 表名@數據庫鏈接名;
五
常用的系統權限集合有以下三個:
CONNECT(基本的連接)
常用的數據對象權限有以下五個:
ALL ON 數據對象名
DELETE ON 數據對象名
GRANT CONNECT
GRANT SELECT ON 表名 TO 用戶名;
GRANT SELECT
REVOKE CONNECT
REVOKE SELECT ON 表名 FROM 用戶名;
REVOKE SELECT
查詢數據庫中第
select orgaddr
查詢數據庫中開戶用戶最大提交和最大下發數
查詢數據庫中各種錯誤代碼的總和
select error_code
by error_code;
查詢報表數據庫中話單統計種類查詢
select sum(Successcount) from tbl_MiddleMt
select sum(successcount)
另外
刪除重復行有兩種方法
數據准備
建表語句
create table a(a varchar
插入數據
insert into a values(
insert into a values(
insert into a values(
insert into a values(
insert into a values(
insert into a values(
commit;
克隆一張表
create table test as (select * from a);
查詢(
(
select distinct * from test;
然後刪除原表 drop table test;
create table test as (select * from test_copy);
然後就完成了
sql語句如下:
delete from test t where rowid not in(
select max(rowid) from test p where t
commit;
From:http://tw.wingwit.com/Article/program/Oracle/201311/16708.html