總網頁瀏覽量

2013年6月2日 星期日

oracle 建立表格,更改table欄位資料型態,新增刪除table欄位

建立表格跟其他SQL一樣

建立表格emp
create table emp
( empID varchar2(10),
empName varchar2(10),
empAdd varchar2(20),
empPhone varchar2(12),
email varchar2(20));

表格名稱:emp

查看table結構:
describe tableName;

describe emp;

 名稱                                      空值?    類型
 ----------------------------------------- -------- --------------

 EMPID                                              VARCHAR2(10)
 EMPNAME                                            VARCHAR2(10)
 EMPADD                                             VARCHAR2(20)
 EMPPHONE                                           VARCHAR2(12)
 EMAIL                                              VARCHAR2(20)

更改table資料欄位型態
alter table 表格名稱 modify (  欄位  資料型態(10));

將empadd欄位資料型態從varchar2改為char
SQL> alter table emp modify (empadd char(11));

驗證一下:
SQL> describe emp;
 名稱                                      空值?    類型
 ----------------------------------------- -------- ----------------

 EMPID                                              VARCHAR2(10)
 EMPNAME                                            VARCHAR2(10)
 EMPADD                                             CHAR(11)
 EMPPHONE                                           VARCHAR2(12)
 EMAIL                                              VARCHAR2(20)


新增table欄位:
給table emp新增enote欄位

SQL> alter table emp add (enote char(20));

SQL> describe emp;
 名稱                                      空值?    類型
 ----------------------------------------- -------- ---------------

 EMPID                                              VARCHAR2(10)
 EMPNAME                                            VARCHAR2(10)
 EMPADD                                             CHAR(11)
 EMPPHONE                                           VARCHAR2(12)
 EMAIL                                              VARCHAR2(20)
 ENOTE                                              CHAR(20)



刪除欄位:
alter table 表格名稱 drop column 欄位名稱;

SQL> alter table emp drop column enote;

已更改表格.

SQL> describe emp;
 名稱                                      空值?    類型
 ----------------------------------------- -------- -------------

 EMPID                                              VARCHAR2(10)
 EMPNAME                                            VARCHAR2(10)
 EMPADD                                             CHAR(11)
 EMPPHONE                                           VARCHAR2(12)
 EMAIL                                              VARCHAR2(20)





















將table建立在tablespace

建立表格空間

 create tablespace ts1 datafile 'D:\oracle\ts1.dbf' size 100m
 autoextend on next 200m maxsize 1024m
 default storage (initial 10m next 1m)
 permanent
 online
 logging;


 default storage (initial 10m next 1m)
系統自動產生預設
permanent:永久,固定的表格空間
online:連線狀態可以使用


建立表格

create table customer
(custID varchar2(10),
custName varchar2(22),
custAdd varchar2(20),
custPhone varchar2(12),
custFax varchar2(12))
tablespace ts1;

在最後指定tablespace 名稱就可以了
如果不指定tablespace名稱那麼就會將表格塞入預設的tablespace
一般在USERS
否則會出現錯誤

varchar2 相當於MSSQL的varchar
可變長度字元資料型態  最小是1  最大是4000bytes




2013年6月1日 星期六

oracle將指令記錄下來---spool

SQL> spool lab.txt

SQL> select sysdate from dual;

SYSDATE
--------------
02-06月-13

SQL> select 1+1 from dual;

       1+1
----------
         2

SQL> select user from dual;

USER
------------------------------------------------------------
SYSTEM

SQL> spool off


那麼會將以上指令,存成lab.txt
存放在C:\\Users\Administrator
(我登入windows用Administatror帳號)

TableSpace觀念與建立、更改、刪除

Oracle系統可以擁有多個資料庫
一個資料庫可以擁有多個Tablespace
一個Tablespace可以有多個table

Tablespace只能由隸屬的資料庫管理




 create tablespace ts1 datafile 'D:\oracle\test_db01.dbf' size 100m
 autoextend on next 100m maxsize 1024m
 default storage (initial 10m next 1m)
 online
 logging;

1.必須啟動資料庫才可以建立tablespace
2.路徑的資料夾必須存在才可建立檔案

更改表格空間屬性值
alter tablespace tablespace_Name  offline/online/nologging/logging


增加資料檔案到表格空間
 alter tablespace ts1 add datafile 'D:\oracle\test02.dbf' size 100m reuse au
toextend on next 100m maxsize unlimited;
會在目錄下新增檔案



刪除tablespace , 一併刪掉檔案
drop tablespace tablespaceName including contents and datafiles;

不想刪掉檔案則
drop tablespace tablespaceName ;
以圖形介面來說
建立資料庫、設定資料庫必須到"資料庫組態輔助程式"


oracle 啟動資料庫 關閉資料庫 設定資料庫

啟動資料庫真麻煩
換個角度來講oracle操作步驟真嚴謹

啟動資料庫與關閉資料庫指令有許多種類,
要看不同場合使用
本篇是在一般場合下使用


啟動資料庫必須用sys帳戶以sysdba腳色登入
(如何更改帳號以sys登入呢?  conn sys as sysdba)
打上指令
startup open databasename

如果以帳戶system登入
啟動資料庫的話會
出現權限不足的訊息
如果不先打上關閉資料庫指令
shutdown immediate
即使換上sys 帳戶啟動資料庫,則會出現
"無法啟動已執行中的oracle"的訊息


如果想啟動不存在的資料庫,則會出現
Total System Global Area  413372416 bytes
Fixed Size                  2176288 bytes
Variable Size             314575584 bytes
Database Buffers           88080384 bytes
Redo Buffers                8540160 bytes
ORA-01504: ????? 'ORC' ??? db_name 'first' ???

這是必須關閉資料庫
再重新啟動正確的資料庫




oracle忘記密碼、解鎖帳號

先去cmd:
打上
sqlplus / as sysdba

以系統資料庫管理師之姿進入資料庫


alter user system identified by 新密碼;
更改帳號system的密碼,修改為"新密碼"


alter user sys identified by newpassword;


解鎖指令
alter user system account unlock;
alter user scott account unlock;
將system 與scott解鎖


scott是測試oracle的帳號
密碼是tiger