从数据库用户角度看,数据库中的数据是以表、视图等方式储存的。那么用户自己是怎么创建表的呢?用户可以在Oracle提供的SQL*Plus中使用create table语句创建表。
成都创新互联成立于2013年,是专业互联网技术服务公司,拥有项目成都网站制作、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元梅河口做网站,已为上家服务,为梅河口各地企业和个人服务,联系电话:13518219792
工具/材料
电脑
Oracle 10g
CREATE TABLE创建表
01
首先用户必须要有CREATE TABLE系统权限,并且只能在自己的模式中创建表,图中的例子使用CREATE TABLE语句在当前模式中创建了一个共有5列的表:表的名称为employee1,包含 emp, name, job,age,dep 等5列,后面的number、 varchar2、等为数据类型,括号里面为长度
02
如果想要在其他模式中创建表,则必须在表名前加上模式名,并且用户还要有CREATE ANY TABLE系统权限,例如图中语句将在SYSTEM模式中创建employees2表
03
添加主键约束
就是对某一列添加为主键,一个表中只能有一个主键约束,且主键约束不能有空值和重复的值。 alter table employee1 add constraint pk_emp primary key (emp),给employee1表中的emp列添加主键约束。
04
添加非空约束
例如给name列添加非空约束,具体语句:alter table employee1 modify name not null
05
添加唯一性约束
添加唯一性约束之后该字段中不能包含重复的值,主要作用是在保证主键列外,其他列值的唯一性。具体语句如下,给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
添加检查约束
检查约束是通过检查输入到表中的数据值来维护域的完整性的,不符合条件的约束是不能被输入到表中的。例如给employee1中的dep添加检查约束,语句如下:alter table employee1 add constraint ch_dep check(dep10000)
08
删除表
如果你创建表使用完了,或者有错误,删除表的语句如下:drop table employee1 cascade constraint;删除表employee1.
特别提示
注意中英文标点符号的使用
一、oracle 下创建数据库一般有三种方法:
1.手工创建
2.利用DBCA创建
3.利用OUI创建
二.在创建之前,先介绍一下oracle数据库管理文件的方式。oracle数据库创建其实就
是创建数据库的逻辑结构和物理结构,逻辑结构可以通过初始化参数文件控制,而物理结构就通过OFA控制;也就是用OFA来控制在操作系统级别的文件组织,例如在windows系统下,安装数据库的时候会在数据库安装目录下生成这样的结构
D:\ORACLE
\ADMIN
\ORA92
ORADATA
这样的目录组织就是OFA
ADMIN目录:存放所有数据库管理文件,例如参数文件PFILE等
\ORA92目录:oracle的主目录,也就是其home目录
\ORADATE:保存数据文件的目录
在介绍下OMF(ORACLE MANAGE FILE)-Oracle管理文件
OMF管理的文件主要包括:
数据文件,临时文件,联机重做日志文件,控制文件
不能管理的文件:
跟踪文件,审计文件,报警文件
三.在对OMF参数介绍之前,我们在介绍两个文件PFILE和SPFILE
pfile是文本文件,可以直接编辑如vi和记事本程序等,是9i版本以前的数据库用的,而spfile是9i及以后版本用的,是二进制文件,不可直接编辑,只能通过其他办法编辑;第一种是利用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;
文件已创建。
SQL shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL startup pfile=c:\d.ora
ORACLE 例程已经启动。
Total System Global Area 126950220 bytes
Fixed Size 453452 bytes
Variable Size 109051904 bytes
Database Buffers 16777216 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
数据库已经打开。
下面介绍下手工利用参数文件修改控制文件
在进行第一步之前修改C.ora文件。在里面加上'F:\oracle\oradata\ahero\CONTROL04.CTL' 在控制文件选项里
第一步
SQL connect system/system@ahero as sysdba
已连接。
SQL create spfile='c:\u.ora' from pfile='c:\c.ora';
文件已创建。
第二步
把u.ora文件copy到,F:\oracle\ora92\database目录下(这个根据你安装的路径确定),并且改名为spfileahero.ora
第三步
在F:\oracle\oradata\ahero目录下,找到相应的控制文件,默认是三个,复制其中任意一个并且改名CONTROL04.CTL
重起服务
用ORACLE自带的建库工具DATABASE CONFIGURATION ASSISTANT创建数据库
可以通过SQL*PLUS操作数据库,在客户端的话,先用NET8 EASY CONFIG创建一个连接字符串连接到数据库
要创建表空间,创建用户,创建表及其他项.
------------------------------------------------------
详细例子:
手工创建数据库的全部脚本及说明
· 系统环境:
1、操作系统:Windows 2000 Server,机器内存128M
2、数据库: Oracle 8i R2 (8.1.6) for NT 企业版
3、安装路径:D:\ORACLE
· 建库步骤:
· 1、手工创建相关目录
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、手工创建初始化启动参数文件:D:\Oracle\admin\test\pfile\inittest.ora,内容:
· 3、手工创建D:\Oracle\Ora81\DATABASE\inittest.ora文件, 内容:IFILE= 'D:\Oracle\admin\test\pfile\inittest.ora '
· 4、使用orapwd.exe命令,创建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命令,在服务里生成一个新的实例管理服务,启动方式为手工
set ORACLE_SID=test
D:\Oracle\Ora81\bin\oradim -new -sid test -startmode manual -pfile "D:\Oracle\admin\test\pfile\inittest.ora "
· 6、生成各种数据库对象
D:\ svrmgrl
--创建数据库
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;
控制文件、日志文件在上面语句执行时生成
connect INTERNAL/oracle
--修改系统表空间
ALTER TABLESPACE SYSTEM DEFAULT STORAGE ( INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 50);
ALTER TABLESPACE SYSTEM MINIMUM EXTENT 64K;
--创建回滚表空间
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);
--创建用户表空间
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);
--创建临时表空间
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;
--创建工具表空间
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);
--创建索引表空间
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);
--创建回滚段
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用户的临时表空间为TEMP
alter user sys temporary tablespace TEMP;
--创建数据字典表
@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帮助系统
sqlplus SYSTEM/manager
@D:\Oracle\Ora81\sqlplus\admin\help\helpbld.sql helpus.sql
exit
--修改system用户默认表空间和临时表空间
svrmgrl
connect internal/oracle
alter user system default tablespace TOOLS;
alter user system temporary tablespace TEMP;
exit
7、将test实例启动服务设置成自动启动方式
D:\Oracle\Ora81\bin\oradim -edit -sid test -startmode auto
创建表空间的基础语法:
create tablespace 表间名 datafile '数据文件名' size 表空间大小;
创建表并指定表空间
create user news identified by news default tablespace news_tablespace;
授权表空间:
grant dba to news; --表示把 dba权限授予给news用户 授权成功