Oracle卸載
E:\app\meng.li\product\11.2.0\dbhome_1\deinstall\deinstall.bat執行這個批處理文件就可以把Oracle卸載掉。
用戶
Sys 、system (sys的權限高於system)
Sysman 操作企業管理器用戶
Scott (Oracle創始人之一)默認密碼是 tiger
使用system用戶登錄
[username/password] [@server][assysdba|sysoper]
例:system/root @orcl as sysdba
Orcl就是自己設置的服務名。
在system用戶下連接sys用戶
例:Connect sys/root as sysdba
查看登錄用戶
Show user 命令
通過數據字典查看其他的用戶信息
Dba_users數據字典 (查看數據字典的結構 descdba_users)
例:查看系統中所有的系統用戶的名字
Select username from dba_users;
啓用scott用戶(scott用戶在oracle中默認是鎖定的)
啓用用戶的語句
Alter user username account unlock
使用scott來登錄sql plus
表空間概述
表空間是在數據庫中開闢的空間,用來存放數據庫對象,一個數據庫可以有多個表空間。
表空間由一個或多個數據文件構成。
表空間的分類
1. 永久表空間:數據庫中要永久保存的,如表、視圖
2. 臨時表空間:數據庫操作過程中中間存儲的值,操作完成後釋放。
3. UNDO表空間:保存事務所修改的舊值,可以進行回滾。
查看用戶表空間(通過數據字典查看)
Dba_tablespaces(系統管理員級) user_tablespaces(普通用戶) 數據字典
查看錶空間的名字
系統管理員登錄後默認的表空間有六個
SYSTEM : 存放sys用戶的表視圖以及存儲過程等對象,系統表空間。
SYSAUX : 作爲EXAMPLE(安裝oracle數據庫的示例)的輔助表空間。
UNDOTBS1 : 存儲一些撤銷信息。
TEMP : 存儲SQL語句處理和索引的表空間。
USERS : 存儲數據庫用戶創建的數據庫對象。
Dba_users 、 user_users 數據字典
可以查看當前用戶的默認表空間和臨時表空間。
例:查看System用戶的默認表空間和臨時表空間(用戶名字要大寫)
Selectdefault_tablespace,temporary_tablespace
from dba_users
where username=’SYSTEM’
設置用戶的默認或臨時表空間
ALTER USER username
DEFAULT|TEMPORARY
TABLESPACE tablespace_name
例:更改System用戶的默認表空間
創建表空間
CREATE [TEMPORARY] TABLESPACE
Tablespace_name
TEMPFILE|DATAFILE ‘xx.dbf’ SIZE xx
例:創建一個永久表空間和一個臨時表空間
查看永久表空間的數據字典dba_data_files
例:利用dba_data_files 數據字典查詢表空間的名字
SELECT FILE_NAME
FROM dba_data_files
Where tablespace_name=’TEST1_TABLESPACE’
查看臨時表空間的數據字典 dba_temp_files
修改表空間
設置聯機或脫機狀態創建完表空間後,默認的是聯機狀態
ALTER TABLESPACE tablespace_name
ONLINE | OFFLINE;
例:查看錶空間狀態 ONLINE 或 OFFLINE 在dba_tablespaces數據字典內
設置只讀或可讀寫狀態
ALTER TABLESPACE tablespace_name
READ ONLY | READ WRITE
修改表空間數據文件
增加數據文件
ALTER TABLESPACE tablespace_name
ADD DATAFILE ‘xx.dbf’ SIZE xx;
查詢增加的表空間
刪除數據文件
ALTER TABLESPACE tablespace_name
DROP DATAFILE ‘filename.dbf’
刪除表空間
DROP TABLESPACE
Tablespace_name [INCLUDING CONTENTS]
可選部分代表同時刪除數據文件。
表:
表存放在表空間裏。
基本存儲單位
二維結構
行和列
表的約定:
1. 每一列數據必須具有相同數據類型。
2. 列名唯一
3. 每一行唯一
數據類型:
字符型
CHAR(n) n的最大值是2000 NCHAR(n) n的最大值是1000
VARCHAR2(n) n的最大值是4000 NVARCHAR2(n) n的最大值是2000,用於存儲unicode格式的數據,更適合存儲中文數據。
數值型
NUMBER(p,s) p代表有效數字 s代表小數點後的位數
FLOAT(n) 表示二進制數據
日期型
DATE 公元前4712年1月1日到公元9999年12月31日
TIMESTAMP 時間戳類型,精確到小數秒
其他類型
BLOB 能存放4GB的數據,以二進制存儲。
CLOB 能存放4GB的數據,以字符串存儲。
創建表
CREATE TABLE table_name
(
Column_namedatatype,…
)
添加字段
ALTER TABLE table_name
ADD column_name datatype;
更改表的字段數據類型
ALTER TABLE table_name
MODIFY column_name datatype;
刪除字段
ALTER TALBE table_name
DROP COLUMN column_name
修改字段名
ALTER TABLE table_name
RENAME COLUMN column_name TO
New_column_name;
修改表名
RENAME table_name TO new_table_name
刪除表
TRUNCATE TABLE table_name
刪除表數據
DROP TABLE table_name 刪除表和數據
操作表的數據
添加數據
INSERT INTO table_name
(column1,column2,…)
VALUES(value1,value2,…)
設置默認值
Column_name date default sysdate);
複製表數據(兩種方式)
1.在建表時複製
CREATE TABLE table_new
AS
SELECT column1,…| * FROM table_old
2.在添加數據時複製
INSERT INTO table_new
[(column1,…)]
SELECT column1,… | *FROM table_old
修改數據
UPDATE tab_name
SET column1 = value1,…
[WHERE conditions]
刪除數據
DELECT FROM table_name
[WHERE conditions]
約束的作用
定義規則
確保完整性
1.非空約束
在創建表時創建
CREATE TABLE tab_name(
Column_namedatatype NOT NULL,….
);
在修改表時添加非空約束
ALTER TABLE table_name
MODIFY column_name DATATYPE NOT NULL
在修改表的時候去掉非空約束
ALTER TABLE table_name
MODIFY column_name datatype NULL
2.主鍵約束
一張表只能設計一個主鍵約束
主鍵約束可以由多個字段構成(聯合主鍵或複合主鍵)
在創建表時設置主鍵約束
CREATE TABLE table_name(
Column_namedatatype PRIMARY KEY,…
)
創建聯合主鍵
Create table userinfo_p1
(id number(6,0),
Username varchar2(20),
Userpwd varchar2(20),
Constraint pk_id_username primarykey(id,username));
在數據字典 user_constraints 中查看主鍵的名字
在修改表時添加主鍵約束
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
PRIMARY KEY(column_name1,…);
更改主鍵約束的名稱
ALTER TABLE table_name
RENAME CONSTRAINT old_name
TO new_name
刪除主鍵約束
暫時不想用,禁用約束
DISABLE|ENABLE CONSTRAINT constraint_name
DROP CONSTRAINT constraint_name
DROP PRIMARY KEY[CASCADE] CASCADE 表示級聯刪除
3.外鍵約束
在創建表時設置外鍵約束(設置外鍵時主表的字段必須爲主鍵而且相應字段必須是同一個數據類型的) 從表中的字段要麼在主表中出現,要麼爲空值。
列級設置
CREATE TABLE table1
(column_name datatype REFERENCES
Table2(column_name),….);
第二種方式表級設置
CONSTRAINT constraint_name
FOREIGN KEY(column_name) REFERENCES
Table_name(column_name) [ON DELETE CASCADE]
在修改表時添加外鍵約束
ADD CONSTRAINT constraint_name FROEIGN
KEY(column_name) REFERENCES
Table_name(column_name) [ON DELETE CASCADE]
刪除外鍵約束
DISABLE | ENABLE CONSTRAINT constraint_name
DROP CONSTRAINT constraint_name;
4.唯一約束
唯一約束和主鍵約束的區別:
主鍵字段值必須是非空的
唯一約束允許有一個空值
主鍵在一個表中只能有一個,而唯一約束可以有多個。
在創建表時設置唯一約束
CREATE TABLE table_name
(column_name datatype UNIQUE,…)
CONSTRAINT constraint_name
UNIQUE(column_name)
在修改表時添加唯一約束
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
UNIQUE(column_name)
刪除唯一約束
DISABLE | ENABLE CONSTRAINT constraint_name
DROP CONSTRAINT constraint_name
5.檢查約束
在創建表時設置檢查約束
CREATE TABLE table_name
(column_name datatype CHECK(expressions)),
…)
在表級設置檢查約束
CONSTRAINT constraint_name
CHECK(expressions)
在修改表時添加檢查約束
ADD CONSTRAINT constraint_name
CHECK(expressions)
刪除檢查約束
DISABLE | ENABLE CONSTRAINT constraint_name
DROP CONSTRAINT constraint_name
查詢
基本查詢語句
SELECT [DISTINCT] column_name1,…| *
FROM table_name
[WHERE conditions]
在SQL PLUS中設置格式
COLUMN column_name HEADING new_name 設置結果顯示名字
設置結果顯示格式
COLUMN column_name FORMAT dataformat
設置字符型長度
Col username format a10
數值型用一個9代表一個數字
清除字段格式
COLUMN column_name CLEAR
給字段設置別名
SELECT column_name AS new_name,…
FROM table_name
運算符
算術運算符(+-*/)
比較運算符(>,>=,<,<=,=,<>)
邏輯運算符(and,or,not)
邏輯運算符的優先級:按not、and、or的順序依次遞減。
模糊查詢
LIKE
通配符 _ 代表一個字符
% 代表0或多個字符
BETWEEN AND 查詢的結果是個閉合區間,包含兩邊的值。
In(aaa,bbb,ccc,…)表示在IN的集合內的
對查詢結果排序
ORDER BY DESC/ASC
CASE .. WHEN
CASE column_name
WHEN value1 THEN result1,…
[ELSE result] END
CASE
WHEN column_name=value1
THEN result1,…[ELSE result] END
Decode 函數實現上面的功能