從數(shù)據(jù)庫用戶角度看,數(shù)據(jù)庫中的數(shù)據(jù)是以表、視圖等方式儲存的。那么用戶自己是怎么創(chuàng)建表的呢?用戶可以在Oracle提供的SQL*Plus中使用create table語句創(chuàng)建表。
成都創(chuàng)新互聯(lián)成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站制作、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元梅河口做網(wǎng)站,已為上家服務(wù),為梅河口各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
工具/材料
電腦
Oracle 10g
CREATE TABLE創(chuàng)建表
01
首先用戶必須要有CREATE TABLE系統(tǒng)權(quán)限,并且只能在自己的模式中創(chuàng)建表,圖中的例子使用CREATE TABLE語句在當(dāng)前模式中創(chuàng)建了一個(gè)共有5列的表:表的名稱為employee1,包含 emp, name, job,age,dep 等5列,后面的number、 varchar2、等為數(shù)據(jù)類型,括號里面為長度
02
如果想要在其他模式中創(chuàng)建表,則必須在表名前加上模式名,并且用戶還要有CREATE ANY TABLE系統(tǒng)權(quán)限,例如圖中語句將在SYSTEM模式中創(chuàng)建employees2表
03
添加主鍵約束
就是對某一列添加為主鍵,一個(gè)表中只能有一個(gè)主鍵約束,且主鍵約束不能有空值和重復(fù)的值。 alter table employee1 add constraint pk_emp primary key (emp),給employee1表中的emp列添加主鍵約束。
04
添加非空約束
例如給name列添加非空約束,具體語句:alter table employee1 modify name not null
05
添加唯一性約束
添加唯一性約束之后該字段中不能包含重復(fù)的值,主要作用是在保證主鍵列外,其他列值的唯一性。具體語句如下,給job添加唯一性約束:alter table employee1 add constraint un_job unique(job)。
06
添加外連接
外連接就是在父表中的一列被子表引用,而且父表中的這一列一般是其主鍵列,例如將employee2中的emp列添加employee2中的emp的外鍵約束。alter table employee2 add constraint fk_empforeign key(emp) references employee1(emp)
07
添加檢查約束
檢查約束是通過檢查輸入到表中的數(shù)據(jù)值來維護(hù)域的完整性的,不符合條件的約束是不能被輸入到表中的。例如給employee1中的dep添加檢查約束,語句如下:alter table employee1 add constraint ch_dep check(dep10000)
08
刪除表
如果你創(chuàng)建表使用完了,或者有錯誤,刪除表的語句如下:drop table employee1 cascade constraint;刪除表employee1.
特別提示
注意中英文標(biāo)點(diǎn)符號的使用
一、oracle 下創(chuàng)建數(shù)據(jù)庫一般有三種方法:
1.手工創(chuàng)建
2.利用DBCA創(chuàng)建
3.利用OUI創(chuàng)建
二.在創(chuàng)建之前,先介紹一下oracle數(shù)據(jù)庫管理文件的方式。oracle數(shù)據(jù)庫創(chuàng)建其實(shí)就
是創(chuàng)建數(shù)據(jù)庫的邏輯結(jié)構(gòu)和物理結(jié)構(gòu),邏輯結(jié)構(gòu)可以通過初始化參數(shù)文件控制,而物理結(jié)構(gòu)就通過OFA控制;也就是用OFA來控制在操作系統(tǒng)級別的文件組織,例如在windows系統(tǒng)下,安裝數(shù)據(jù)庫的時(shí)候會在數(shù)據(jù)庫安裝目錄下生成這樣的結(jié)構(gòu)
D:\ORACLE
\ADMIN
\ORA92
ORADATA
這樣的目錄組織就是OFA
ADMIN目錄:存放所有數(shù)據(jù)庫管理文件,例如參數(shù)文件PFILE等
\ORA92目錄:oracle的主目錄,也就是其home目錄
\ORADATE:保存數(shù)據(jù)文件的目錄
在介紹下OMF(ORACLE MANAGE FILE)-Oracle管理文件
OMF管理的文件主要包括:
數(shù)據(jù)文件,臨時(shí)文件,聯(lián)機(jī)重做日志文件,控制文件
不能管理的文件:
跟蹤文件,審計(jì)文件,報(bào)警文件
三.在對OMF參數(shù)介紹之前,我們在介紹兩個(gè)文件PFILE和SPFILE
pfile是文本文件,可以直接編輯如vi和記事本程序等,是9i版本以前的數(shù)據(jù)庫用的,而spfile是9i及以后版本用的,是二進(jìn)制文件,不可直接編輯,只能通過其他辦法編輯;第一種是利用PFILE,我們可以先編輯pfile然后在利用其生成spfile,使用的語句如:SQL CREATE SPFILE FROM PFILE;
或者利用命令直接操作spfile
如:SQL ALTER SYSTEM SET PARAMETER = 'VALUES';
下面是一些操作
C:\Documents and Settings\Administratorsqlplus /nolog
SQL connect system/system@ahero as sysdba
已連接。
SQL create pfile='c:\d.ora' from spfile;
文件已創(chuàng)建。
SQL shutdown immediate
數(shù)據(jù)庫已經(jīng)關(guān)閉。
已經(jīng)卸載數(shù)據(jù)庫。
ORACLE 例程已經(jīng)關(guān)閉。
SQL startup pfile=c:\d.ora
ORACLE 例程已經(jīng)啟動。
Total System Global Area 126950220 bytes
Fixed Size 453452 bytes
Variable Size 109051904 bytes
Database Buffers 16777216 bytes
Redo Buffers 667648 bytes
數(shù)據(jù)庫裝載完畢。
數(shù)據(jù)庫已經(jīng)打開。
下面介紹下手工利用參數(shù)文件修改控制文件
在進(jìn)行第一步之前修改C.ora文件。在里面加上'F:\oracle\oradata\ahero\CONTROL04.CTL' 在控制文件選項(xiàng)里
第一步
SQL connect system/system@ahero as sysdba
已連接。
SQL create spfile='c:\u.ora' from pfile='c:\c.ora';
文件已創(chuàng)建。
第二步
把u.ora文件copy到,F(xiàn):\oracle\ora92\database目錄下(這個(gè)根據(jù)你安裝的路徑確定),并且改名為spfileahero.ora
第三步
在F:\oracle\oradata\ahero目錄下,找到相應(yīng)的控制文件,默認(rèn)是三個(gè),復(fù)制其中任意一個(gè)并且改名CONTROL04.CTL
重起服務(wù)
用ORACLE自帶的建庫工具DATABASE CONFIGURATION ASSISTANT創(chuàng)建數(shù)據(jù)庫
可以通過SQL*PLUS操作數(shù)據(jù)庫,在客戶端的話,先用NET8 EASY CONFIG創(chuàng)建一個(gè)連接字符串連接到數(shù)據(jù)庫
要創(chuàng)建表空間,創(chuàng)建用戶,創(chuàng)建表及其他項(xiàng).
------------------------------------------------------
詳細(xì)例子:
手工創(chuàng)建數(shù)據(jù)庫的全部腳本及說明
· 系統(tǒng)環(huán)境:
1、操作系統(tǒng):Windows 2000 Server,機(jī)器內(nèi)存128M
2、數(shù)據(jù)庫: Oracle 8i R2 (8.1.6) for NT 企業(yè)版
3、安裝路徑:D:\ORACLE
· 建庫步驟:
· 1、手工創(chuàng)建相關(guān)目錄
D:\Oracle\admin\test
D:\Oracle\admin\test\adhoc
D:\Oracle\admin\test\bdump
D:\Oracle\admin\test\cdump
D:\Oracle\admin\test\create
D:\Oracle\admin\test\exp
D:\Oracle\admin\test\pfile
D:\Oracle\admin\test\udump
D:\Oracle\oradata\test
D:\Oracle\oradata\test\archive
· 2、手工創(chuàng)建初始化啟動參數(shù)文件:D:\Oracle\admin\test\pfile\inittest.ora,內(nèi)容:
· 3、手工創(chuàng)建D:\Oracle\Ora81\DATABASE\inittest.ora文件, 內(nèi)容:IFILE= 'D:\Oracle\admin\test\pfile\inittest.ora '
· 4、使用orapwd.exe命令,創(chuàng)建D:\Oracle\Ora81\DATABASE\PWDtest.ora
命令:D:\Oracle\Ora81\bin\orapwd file=D:\Oracle\Ora81\DATABASE\PWDtest.ora password=ORACLE entries=5
· 5、通過oradim.exe命令,在服務(wù)里生成一個(gè)新的實(shí)例管理服務(wù),啟動方式為手工
set ORACLE_SID=test
D:\Oracle\Ora81\bin\oradim -new -sid test -startmode manual -pfile "D:\Oracle\admin\test\pfile\inittest.ora "
· 6、生成各種數(shù)據(jù)庫對象
D:\ svrmgrl
--創(chuàng)建數(shù)據(jù)庫
connect INTERNAL/oracle
startup nomount pfile= "D:\Oracle\admin\test\pfile\inittest.ora "
CREATE DATABASE test
LOGFILE 'D:\Oracle\oradata\test\redo01.log ' SIZE 2048K,
'D:\Oracle\oradata\test\redo02.log ' SIZE 2048K,
'D:\Oracle\oradata\test\redo03.log ' SIZE 2048K
MAXLOGFILES 32
MAXLOGMEMBERS 2
MAXLOGHISTORY 1
DATAFILE 'D:\Oracle\oradata\test\system01.dbf ' SIZE 58M REUSE AUTOEXTEND ON NEXT 640K
MAXDATAFILES 254
MAXINSTANCES 1
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET ZHS16GBK;
控制文件、日志文件在上面語句執(zhí)行時(shí)生成
connect INTERNAL/oracle
--修改系統(tǒng)表空間
ALTER TABLESPACE SYSTEM DEFAULT STORAGE ( INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 50);
ALTER TABLESPACE SYSTEM MINIMUM EXTENT 64K;
--創(chuàng)建回滾表空間
CREATE TABLESPACE RBS DATAFILE 'D:\Oracle\oradata\test\rbs01.dbf ' SIZE 256M REUSE AUTOEXTEND ON NEXT 5120K
MINIMUM EXTENT 512K
DEFAULT STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 8 MAXEXTENTS 4096);
--創(chuàng)建用戶表空間
CREATE TABLESPACE USERS DATAFILE 'D:\Oracle\oradata\test\users01.dbf ' SIZE 128M REUSE
AUTOEXTEND ON NEXT 1280K
MINIMUM EXTENT 128K
DEFAULT STORAGE ( INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0);
--創(chuàng)建臨時(shí)表空間
CREATE TABLESPACE TEMP DATAFILE 'D:\Oracle\oradata\test\temp01.dbf ' SIZE 32M REUSE
AUTOEXTEND ON NEXT 640K
MINIMUM EXTENT 64K
DEFAULT STORAGE ( INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0) TEMPORARY;
--創(chuàng)建工具表空間
CREATE TABLESPACE TOOLS DATAFILE 'D:\Oracle\oradata\test\tools01.dbf ' SIZE 64M REUSE
AUTOEXTEND ON NEXT 320K
MINIMUM EXTENT 32K
DEFAULT STORAGE ( INITIAL 32K NEXT 32K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0);
--創(chuàng)建索引表空間
CREATE TABLESPACE INDX DATAFILE 'D:\Oracle\oradata\test\indx01.dbf ' SIZE 32M REUSE
AUTOEXTEND ON NEXT 1280K
MINIMUM EXTENT 128K
DEFAULT STORAGE ( INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0);
--創(chuàng)建回滾段
CREATE PUBLIC ROLLBACK SEGMENT RBS0 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS1 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS2 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS3 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS4 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS5 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS6 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS7 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS8 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS9 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS10 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS11 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS12 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS13 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS14 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS15 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS16 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS17 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS18 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS19 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS20 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS21 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS22 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS23 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS24 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
--使回滾段在線
ALTER ROLLBACK SEGMENT "RBS0 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS1 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS2 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS3 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS4 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS5 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS6 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS7 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS8 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS9 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS10 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS11 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS12 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS13 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS14 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS15 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS16 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS17 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS18 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS19 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS20 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS21 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS22 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS23 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS24 " ONLINE;
--修改sys用戶的臨時(shí)表空間為TEMP
alter user sys temporary tablespace TEMP;
--創(chuàng)建數(shù)據(jù)字典表
@D:\Oracle\Ora81\Rdbms\admin\catalog.sql;
@D:\Oracle\Ora81\Rdbms\admin\catexp7.sql
@D:\Oracle\Ora81\Rdbms\admin\catproc.sql
@D:\Oracle\Ora81\Rdbms\admin\caths.sql
connect system/manager
@D:\Oracle\Ora81\sqlplus\admin\pupbld.sql
connect internal/oracle
@D:\Oracle\Ora81\Rdbms\admin\catrep.sql
exit
--生成SQL*Plus幫助系統(tǒng)
sqlplus SYSTEM/manager
@D:\Oracle\Ora81\sqlplus\admin\help\helpbld.sql helpus.sql
exit
--修改system用戶默認(rèn)表空間和臨時(shí)表空間
svrmgrl
connect internal/oracle
alter user system default tablespace TOOLS;
alter user system temporary tablespace TEMP;
exit
7、將test實(shí)例啟動服務(wù)設(shè)置成自動啟動方式
D:\Oracle\Ora81\bin\oradim -edit -sid test -startmode auto
創(chuàng)建表空間的基礎(chǔ)語法:
create tablespace 表間名 datafile '數(shù)據(jù)文件名' size 表空間大小;
創(chuàng)建表并指定表空間
create user news identified by news default tablespace news_tablespace;
授權(quán)表空間:
grant dba to news; --表示把 dba權(quán)限授予給news用戶 授權(quán)成功