【Oracle】Oracle基礎知識

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 函數實現上面的功能


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章