Oracle創(chuàng)建表空間和表


title: "Oracle創(chuàng)建表空間和表"
date: 2021-02-01T20:17:20+08:00
draft: true
tags: ['oracle']
author: "dadigang"
author_cn: "大地缸"
personal: "http://www.real007.cn"


關(guān)于作者

http://www.real007.cn/about

Oracle創(chuàng)建表空間和表

創(chuàng)建表空間和表ORACLE物理上是由磁盤(pán)上的以下幾種文件:數(shù)據(jù)文件和控制文件和LOGFILE構(gòu)成的oracle中的表就是一張存儲(chǔ)數(shù)據(jù)的表娃承。表空間是邏輯上的劃分雪侥。方便管理的。數(shù)據(jù)表空間 (Tablespace)         存放數(shù)據(jù)總是需要空間, Oracle把一個(gè)數(shù)據(jù)庫(kù)按功能劃分若干空間來(lái)保存數(shù)據(jù)。當(dāng)然數(shù)據(jù)存放在磁盤(pán)最終是以文件形式,所以一盤(pán)一個(gè)數(shù)據(jù)表空間包含一個(gè)以上的物理文件數(shù)據(jù)表         在倉(cāng)庫(kù)暖璧,我們可能有多間房子,每個(gè)房子又有多個(gè)貨架君旦,每架又有多層澎办。 我們?cè)跀?shù)據(jù)庫(kù)中存放數(shù)據(jù)嘲碱,最終是數(shù)據(jù)表的單元來(lái)存儲(chǔ)與管理的。數(shù)據(jù)文件         以上幾個(gè)概念都是邏輯上的局蚀, 而數(shù)據(jù)文件則是物理上的麦锯。就是說(shuō),數(shù)據(jù)文件是真正“看得著的東西”琅绅,它在磁盤(pán)上以一個(gè)真實(shí)的文件體現(xiàn)
1扶欣、創(chuàng)建表空間:格式: create tablespace 表間名 datafile '數(shù)據(jù)文件名' size 表空間大小                create tablespace data_test datafile 'e:\oracle\oradata\test\data_1.dbf' size 2000M;                create tablespace idx_test datafile 'e:\oracle\oradata\test\idx_1.dbf' size 2000M;                (*數(shù)據(jù)文件名 包含全路徑, 表空間大小 2000M 表是 2000兆) 2、建好tablespace, 就可以建用戶(hù)了          格式: create user 用戶(hù)名 identified by 密碼 default tablespace 表空間表;                create user study identified by study default tablespace data_test;                (*我們創(chuàng)建一個(gè)用戶(hù)名為 study,密碼為 study, 缺少表空間為 data_test -這是在第二步建好的.)                (*缺省表空間表示 用戶(hù)study今后的數(shù)據(jù)如果沒(méi)有專(zhuān)門(mén)指出千扶,其數(shù)據(jù)就保存在 data_test中, 也就是保存在對(duì)應(yīng)的物理文件 e:\oracle\oradata\test\data_1.dbf中)創(chuàng)建用戶(hù)并指定表空間CREATE USER cici IDENTIFIED BY cici PROFILE DEFAULT DEFAULT TABLESPACE CICI ACCOUNT UNLOCK;create user jykl identified by jykl default tablespace jykl_data temporary tablespace jykl_temp;授權(quán)給新用戶(hù)GRANT connect, resource TO cici;grant create session to cici;4. 授權(quán)給新用戶(hù)          grant connect,resource to study;           --表示把 connect,resource權(quán)限授予study用戶(hù)          grant dba to study;          --表示把 dba權(quán)限授予給 study5. 創(chuàng)建數(shù)據(jù)表                 在上面料祠,我們已建好了用戶(hù) study 我們現(xiàn)在進(jìn)入該用戶(hù)                 sqlplusw study/study@test   然后就可以在用戶(hù)study中創(chuàng)建數(shù)據(jù)表了                 格式: create table 數(shù)據(jù)表名 oracle命令建立主鍵外鍵 1、創(chuàng)建一張學(xué)生表create table t_stu(    stuid      number(10)   primary key,    stuname    varchar2(20) not null,    stusex     varchar2(2)  default '男' check(stusex in('男','女')));      2澎羞、創(chuàng)建一張課程表create table t_couse(    couseid     number(10)   primary key,    cousename   varchar2(20) not null,    cousetype   varchar2(4));   3髓绽、創(chuàng)建一張學(xué)生課程成績(jī)表(包括主外鍵)create table t_score(    scoreid    number(10) primary key,    stuid      number(10) references t_stu(stuid),    couseid    number(10),    constraint fk_couseid foreign key(couseid)    references t_couse(couseid)    on delete cascade); CREATE TABLE log(log_id int(10)   unsigned NOT NULL auto_increment,log_time         datetime NOT NULL,log_user         varchar(30) NOT NULL,log_title        varchar(30) default NULL,log_content      text default NULL,PRIMARY KEY(log_id));

orale表管理:

Oracle創(chuàng)建表同SQL Server一樣,使用CREATE TABLE命令來(lái)完成妆绞。創(chuàng)建約束則使用如下命令:

語(yǔ)法格式:alter table 命令

alter table 表名 add constraint 約束名 約束內(nèi)容顺呕。

不論創(chuàng)建表還是約束,與SQL Server基本相同括饶,注:在Oracle中default是一個(gè)值株茶,而SQL Server中default是一個(gè)約束,因此Oracle的default設(shè)置可以在建表的時(shí)候創(chuàng)建图焰。

案例1: 創(chuàng)建一個(gè)學(xué)生信息(INFOS)表和約束

Oracle創(chuàng)建表和約束

create table INFOS(

STUID varchar2(7) not null, --學(xué)號(hào) 學(xué)號(hào)=‘S’+班號(hào)+2位序號(hào)

STUNAME varchar2(10) not null, --姓名

GENDER varchar2(2) not null, --性別

AGE number(2) not null, --年齡

SEAT number(2) not null, --座號(hào)

ENROLLDATE date, --入學(xué)時(shí)間

STUADDRESS varchar2(50) default '地址不詳', --住址

CLASSNO varchar2(4) not null, --班號(hào) 班號(hào)=學(xué)期序號(hào)+班級(jí)序號(hào)

);

/ ①

alter table INFOS add constraint pk_INFOS primary key(STUID) ②

/

alter table INFOS add constraint ck_INFOS_gender check(GENDER = '男' or GENDER = '女') ③

/

alter table INFOS add constraint ck_INFOS_SEAT check(SEAT >=0 and SEAT <=50) ④

/

alter table INFOS add constraint ck_INFOS_AGE check(AGE >=0 and AGE<=100) ⑤

/

alter table INFOS add constraint ck_INFOS_CLASSNO check((CLASSNO >='1001' and CLASSNO<='1999') or

(CLASSNO >='2001' and CLASSNO<='2999')) ⑥

/

alter table INFOS add constraint un_STUNAME unique(STUNAME) ⑦

/

代碼解析:

① 在Oracle代碼中启盛,“/”執(zhí)行緩存區(qū)中的語(yǔ)句,由于緩沖區(qū)中只存儲(chǔ)一條剛剛保存過(guò)語(yǔ)句楞泼,由于每條語(yǔ)句沒(méi)有用分號(hào)結(jié)尾驰徊,只是保存在緩沖區(qū),因此每條語(yǔ)句后面都有單獨(dú)一行“/”堕阔。

② 創(chuàng)建一個(gè)主鍵約束棍厂。

③ 與 ④ ⑤ ⑥ ⑦一起創(chuàng)建各種check約束。其中⑦是唯一約束超陆,表示該列值是唯一的牺弹,列中的值不能重復(fù)。

Oracle中創(chuàng)建外鍵約束與SQL Server相同时呀。比如:現(xiàn)有成績(jī)表定義如下:

案例2: 創(chuàng)建一個(gè)成績(jī)表(SCORES)表和約束

Oracle創(chuàng)建表和約束

create table scores(

ID number, --ID ①

TERM varchar2(2), --學(xué)期 S1或S2

STUID varchar2(7) not null, --學(xué)號(hào)

EXAMNO varchar2(7) not null, --考號(hào) E+班號(hào)+序號(hào)

WRITTENSCORE number(4,1) not null, --筆試成績(jī)

LABSCORE number(4,1) not null, --機(jī)試成績(jī)

);

ALTER TABLE SCORES ADD CONSTRAINT CK_SCORES_TERM CHECK(TERM = 'S1' OR TERM ='S2')

/

ALTER TABLE SCORES ADD CONSTRAINT FK_SCORES_INFOS_STUID FOREIGN KEY(STUID) REFERENCES INFOS(STUID) ②

/

代碼解析:

① SQL Server中可以使用identify創(chuàng)建自動(dòng)增長(zhǎng)列张漂,但是Oracle中的自動(dòng)增長(zhǎng)需要借助序列(Sequence)完成,在后面章節(jié)中講解谨娜。

② Oracle中的外鍵約束定義航攒。

注意:表名,字段名要大寫(xiě)趴梢!

oracle建表漠畜、建主鍵币他、外鍵基本語(yǔ)法

-創(chuàng)建表格語(yǔ)法:

create table 表名(

字段名1 字段類(lèi)型(長(zhǎng)度) 是否為空,

字段名2 字段類(lèi)型 是否為空 );

-增加主鍵

alter table 表名 add constraint 主鍵名 primary key (字段名1);

-增加外鍵:

alter table 表名 add constraint 外鍵名 foreign key(字段名1) references 關(guān)聯(lián)表 (字段名2);

在建立表格時(shí)就指定主鍵和外鍵

create table T_STU(

STU_ID char(5) not null,

STU_NAME VARCHAR2(8) not null,

constraint PK_T_STU primary key (STU_ID));

主鍵和外鍵一起建立:

create table T_SCORE(

EXAM_SCORE number(5,2),

EXAM_DATE date,

AUTOID number(10) not null,

STU_ID char(5),

SUB_ID char(3),

constraint PK_T_SCORE primary key (AUTOID),

constraint FK_T_SCORE_REFE foreign key (STU_ID) references T_STU (STU_ID));

orale數(shù)據(jù)類(lèi)型:

類(lèi)型

含義

CHAR(length)

存儲(chǔ)固定長(zhǎng)度的字符串。參數(shù)length指定了長(zhǎng)度憔狞,如果存儲(chǔ)的字符串長(zhǎng)度小于length蝴悉,用空格填充。默認(rèn)長(zhǎng)度是1瘾敢,最長(zhǎng)不超過(guò)2000字節(jié)拍冠。

VARCHAR2(length)

存儲(chǔ)可變長(zhǎng)度的字符串。length指定了該字符串的最大長(zhǎng)度簇抵。默認(rèn)長(zhǎng)度是1庆杜,最長(zhǎng)不超過(guò)4000字符。

NUMBER(p正压,s)

既可以存儲(chǔ)浮點(diǎn)數(shù)欣福,也可以存儲(chǔ)整數(shù),p表示數(shù)字的最大位數(shù)(如果是小數(shù)包括整數(shù)部分和小數(shù)部分和小數(shù)點(diǎn)焦履,p默認(rèn)是38為),s是指小數(shù)位數(shù)雏逾〖慰悖可存負(fù)數(shù)

DATE

存儲(chǔ)日期和時(shí)間,存儲(chǔ)紀(jì)元栖博、4位年屑宠、月、日仇让、時(shí)典奉、分、秒丧叽,存儲(chǔ)時(shí)間從公元前4712年1月1日到公元后4712年12月31日卫玖。

TIMESTAMP

不但存儲(chǔ)日期的年月日,時(shí)分秒踊淳,以及秒后6位假瞬,同時(shí)包含時(shí)區(qū)。

CLOB

存儲(chǔ)大的文本迂尝,比如存儲(chǔ)非結(jié)構(gòu)化的XML文檔

BLOB

存儲(chǔ)二進(jìn)制對(duì)象脱茉,如圖形、視頻垄开、聲音等琴许。

2. 創(chuàng)建表時(shí)給字段加默認(rèn)值 和約束條件

創(chuàng)建表時(shí)可以給字段加上默認(rèn)值 例如 : 日期字段 DEFAULT SYSDATE 這樣每次插入和修改時(shí), 不用程序操作這個(gè)字段都能得到動(dòng)作的時(shí)間

例如:IS_SEND NUMBER(1) default 1 --是否已發(fā)

創(chuàng)建表時(shí)可以給字段加上約束條件 例如: 非空 NOT NULL ,不允許重復(fù) UNIQUE 溉躲,關(guān)鍵字 PRIMARY KEY 榜田,按條件檢查 CHECK (條件)寸认, 外鍵 REFERENCES 表名(字段名)

3. 創(chuàng)建表的例子

create table DEPT(

DNAME varchar2(14),

LOC varchar2(6),

EPTNO number(2) constraint PK_DEPT primary KEY,

);

create table region(

ID number(2) not null primary KEY,

postcode number(6) default '0' not null,

areaname varchar2(30) default '' not null,

);

4. 創(chuàng)建表時(shí)的命名規(guī)則和注意事項(xiàng)

1)表名和字段名的命名規(guī)則:必須以字母開(kāi)頭,可以含符號(hào)A-Z,a-z,0-9,_,$,#

2)大小寫(xiě)不區(qū)分

3)不用SQL里的保留字, 一定要用時(shí)可用雙引號(hào)把字符串括起來(lái)

4)用和實(shí)體或?qū)傩韵嚓P(guān)的英文符號(hào)長(zhǎng)度有一定的限制

5)約束名的命名規(guī)則和語(yǔ)法 約束名的命名規(guī)則約束名如果在建表的時(shí)候沒(méi)有指明串慰,系統(tǒng)命名規(guī)則是SYS_Cn(n是數(shù)字) 約束名字符串的命名規(guī)則同于表和字段名的命名規(guī)則

6)使用約束時(shí)的注意事項(xiàng) 約束里不能用系統(tǒng)函數(shù),如SYSDATE和別的表的字段比較 可以用本表內(nèi)字段的比較

注意事項(xiàng):

1)建表時(shí)可以用中文的字段名, 但最好還是用英文的字段名

2)創(chuàng)建表時(shí)要把較小的不為空的字段放在前面, 可能為空的字段放在后面

3)建表時(shí)如果有唯一關(guān)鍵字或者唯一的約束條件偏塞,建表時(shí)自動(dòng)建了索引

4)一個(gè)表的最多字段個(gè)數(shù)也是有限制的,254個(gè).

想在事務(wù)處理后, 做約束的

檢查 SQL> alter session set constraints deferred.

7. 由實(shí)體關(guān)系圖到創(chuàng)建表的例子 s_dept 前提條件:已有region表且含唯一關(guān)鍵字的字段id SQL> CREATE TABLE s_dept (id NUMBER(7) CONSTRAINT s_dept_id_pk PRIMARY KEY, name VARCHAR2(25) CONSTRAINT s_dept_name_nn NOT NULL, region_id NUMBER(7) CONSTRAINT s_dept_region_id_fk REFERENCES region (id), CONSTRAINT s_dept_name_region_id_uk UNIQUE(name, region_id));

8. 較復(fù)雜的創(chuàng)建表例子 SQL> CREATE TABLE s_emp (id NUMBER(7) CONSTRAINT s_emp_id_pk PRIMARY KEY, last_name VARCHAR2(25) CONSTRAINT s_emp_last_name_nn NOT NULL, first_name VARCHAR2(25), userid VARCHAR2(8) CONSTRAINT s_emp_userid_nn NOT NULL CONSTRAINT s_emp_userid_uk UNIQUE, start_date DATE DEFAULT SYSDATE, comments VARCHAR2(25), manager_id NUMBER(7), title VARCHAR2(25), dept_id NUMBER(7) CONSTRAINT s_emp_dept_id_fk REFERENCES s_dept(id), salary NUMBER(11,2), commission_pct NUMBER(4,2) CONSTRAINT s_emp_commission_pct_ck CHECK (commission_pct IN(10,12.5,15,17.5,20)));

8. 通過(guò)子查詢(xún)建表 通過(guò)子查詢(xún)建表的例子 SQL>CREATE TABLE emp_41 AS SELECT id, last_name, userid, start_date FROM s_emp WHERE dept_id = 41;

SQL> CREATE TABLE A as select * from B where 1=2; 只要表的結(jié)構(gòu).

10. 用子查詢(xún)建表的注意事項(xiàng) 1)可以關(guān)連多個(gè)表及用集合函數(shù)生成新表,注意選擇出來(lái)的字段必須有合法的字段名稱(chēng),且不能重復(fù)邦鲫。 2)用子查詢(xún)方式建立的表灸叼,只有非空NOT NULL的約束條件能繼承過(guò)來(lái), 其它的約束條件和默認(rèn)值都沒(méi)有繼承過(guò)來(lái). 3)根據(jù)需要,可以用alter table add constraint ……再建立其它的約束條件庆捺,如primary key等.

11. Foreign Key的可選參數(shù)ON DELETE CASCADE 在創(chuàng)建Foreign Key時(shí)可以加可選參數(shù): ON DELETE CASCADE它的含義是如果刪除外鍵主表里的內(nèi)容古今,子表里相關(guān)的內(nèi)容將一起被刪除. 如果沒(méi)有ON DELETE CASCADE參數(shù),子表里有內(nèi)容滔以,父表里的主關(guān)鍵字記錄不能被刪除掉.

12. 如果 數(shù)據(jù)庫(kù) 表里有不滿(mǎn)足的記錄存在捉腥,建立約束條件將不會(huì)成功.

13. 給表創(chuàng)建和刪除同義詞的例子 SQL> CREATE SYNONYM d_sum 2 FOR dept_sum_vu;

SQL> CREATE PUBLIC SYNONYM s_dept 2 FOR alice.s_dept;

SQL> DROP SYNONYM s_dept;

ORACLE之新建

創(chuàng)建一個(gè)名為INSURES的表

create table INSURES

(

INSURE_NO CHAR(18) not null, --醫(yī)保號(hào)

GETSURE_UNIT_NO CHAR(9) not null, --經(jīng)辦機(jī)構(gòu)號(hào)

INSURE_NAME VARCHAR2(10) not null, --姓名

INSURE_SEX CHAR(1) not null, --性別

ID_CARD_NO CHAR(18) not null, --身份證號(hào)

);

創(chuàng)建/修改主鍵,唯一性約束和外鍵 這里INSURE_NO, GETSURE_UNIT_NO唯一性約束

alter table INSURES

add constraint UNQ_INSURES unique (INSURE_NO, GETSURE_UNIT_NO)

alter table TWN_SEED

add constraint UNQ_INSURES primary key (你画。抵碟。。坏匪。)

創(chuàng)建索引

create index IDX_INSURES on INSURES (GETSURE_UNIT_NO, SONSURE_UNIT_NO, UNIT_NO, FAMILY_NO, HOSPS_NO)

創(chuàng)建一個(gè)PK的時(shí)候拟逮,是自動(dòng)創(chuàng)建一個(gè)與之對(duì)應(yīng)的唯一索引的。 如果不特別指定适滓,那么這個(gè)索引的表空間和表格的空間是一樣的敦迄,但是我們不建議放在一起。

create table testone(

name varchar2(10 char))

TABLESPACE1;

ALTER TABLE TESTONE ADD CONSTRAINT PK_TESTONE1 PRIMARY KEY(NAME) USING INDEX TABLESPACE TABLESPACE2;

作為一種好習(xí)慣凭迹,不要把索引和表格的數(shù)據(jù)存在在同一個(gè)表空間中

Oracle創(chuàng)建表語(yǔ)法 - create

--創(chuàng)建Oracle表(使用create關(guān)鍵字)

-- \\\\\\

(1)創(chuàng)建新表 use 數(shù)據(jù)庫(kù)(在那個(gè)數(shù)據(jù)庫(kù)中建表) create table 表名

( 字段名1(列名) 數(shù)據(jù)類(lèi)型 列的特征,

字段名2(列名) 數(shù)據(jù)類(lèi)型 列的特征(NOT NULL),

...... )

(2)創(chuàng)建帶有主鍵約束的表語(yǔ)法 create table 表名 (

字段名1(列名) 數(shù)據(jù)類(lèi)型 列的特征,

字段名2 數(shù)據(jù)類(lèi)型 列的特征(NOT NULL),

...... primary key(主鍵列字段))

(3)利用現(xiàn)有的表創(chuàng)建表 -- 注意:僅復(fù)制Oracle數(shù)據(jù)表結(jié)構(gòu):采用的是子查詢(xún)方式 create table 新表 as select * from 舊的表 where 1=2

(4)利用現(xiàn)有的表的結(jié)構(gòu)創(chuàng)建新表 -- 注意:僅復(fù)制Oracle數(shù)據(jù)表結(jié)構(gòu):采用的是子查詢(xún)方式 create table 新表 select 字段1,字段2... from 舊的表 where 條件(舊的表字段滿(mǎn)足的條件)

(5)利用現(xiàn)有的表的結(jié)構(gòu)創(chuàng)建新表 -- 注意:復(fù)制Oracle數(shù)據(jù)表數(shù)據(jù) create table 新表 as select * from 舊的表 where 1=1

(6)利用現(xiàn)有的表的結(jié)構(gòu)創(chuàng)建新表 -- 注意:復(fù)制Oracle數(shù)據(jù)表數(shù)據(jù) create table 新表 as select 字段1,字段2... from 舊的表 where 條件(舊的表字段滿(mǎn)足的條件)(7)將查詢(xún)結(jié)果插入另一張表 insert into 另一張表 select * from 要查詢(xún)的表 where 條件(要查詢(xún)的表的列符合什么條件)

oracle create table(轉(zhuǎn))

  • //建測(cè)試表
  • create table dept(
  •    deptno number(3) primary key,
    
  •    dname varchar2(10),
    
  •    loc varchar2(13)
    
  •    );
    
  • create table employee_info(
  •    empno number(3),
    
  •    deptno number(3),
    
  •    ename varchar2(10),
    
  •    sex char(1),
    
  •    phone number(11),
    
  •    address varchar2(50),
    
  •    introduce varchar2(100)
    
  •    );
    
  • --
  • 重命名
  • 重命名表:rename dept to dt;
  •          rename dt to dept;
    
  • 重命名列:alter table dept rename column loc to location;
  • alter table dept rename column location to loc;
  • 添加約束
    1. primary key
  • alter table employee_info add constraint pk_emp_info primary key(empno);
    1. foreign key
  • alter table employee_info add constraint fk_emp_info foreign key(deptno)
  • references dept(deptno);
    1. check
  • alter table employee_info add constraint ck_emp_info check
  •   (sex in ('F','M'));
    
    1. not null
  • alter table employee_info modify phone constraint not_null_emp_info not null;
    1. unique
  • alter table employee_info add constraint uq_emp_info unique(phone);
    1. default
  • alter table employee_info modify sex char(2) default 'M';
  • 添加列
  • alter table employee_info add id varchar2(18);
  • alter table employee_info add hiredate date default sysdate not null;
  • 刪除列
  • alter table employee_info drop column introduce;
  • 修改列
  • 1.修改列的長(zhǎng)度
  • alter table dept modify loc varchar2(50);
    1. 修改列的精度
  • alter table employee_info modify empno number(2);
    1. 修改列的數(shù)據(jù)類(lèi)型
  • alter table employee_info modify sex char(2);
    1. 修改默認(rèn)值
  • alter table employee_info modify hiredate default sysdate+1;
  • 5.禁用約束
  • alter table employee_info disable constraint uq_emp_info;
  • 6.啟用約束
  • alter table employee_info enable constraint uq_emp_info;
  • 7.延遲約束
  • alter table employee_info drop constraint fk_emp_info;
  • alter table employee_info add constraint fk_emp_info foreign key(deptno)
  • references dept(deptno)
  • deferrable initially deferred;
  • 8.向表中添加注釋
  • comment on table employee_info is 'information of employees';
  • 9.向列添加注釋
  • comment on column employee_info.ename is 'the name of employees';
  • comment on column dept.dname is 'the name of department';
  • 10.清除表中所有數(shù)據(jù)
  • truncate table employee_info; (DELETE FROM table_name或DELETE * FROM table_name)
  • 11.刪除表
  • drop table employee_info;
  • --
  • //下面來(lái)看看剛剛才我們對(duì)表dept和表employee_info所做的更改
  • //user_constraints視圖里面包含了剛剛才我們創(chuàng)建的所有約束罚屋,以及其他信息,
  • //你可以用desc user_constraints命令查看其詳細(xì)說(shuō)明
  • select constraint_name,constraint_type,status,deferrable,deferred
  • from user_constraints
  • where table_name='EMPLOYEE_INFO';
  • --
  • CONSTRAINT_NAME CONSTRAINT_TYPE STATUS DEFERRABLE DEFERRED
  • ------------------------------ --------------- -------- -------------- ---------
  • PK_EMP_INFO P ENABLED NOT DEFERRABLE IMMEDIATE
  • FK_EMP_INFO R ENABLED DEFERRABLE DEFERRED
  • NOT_NULL_EMP_INFO C ENABLED NOT DEFERRABLE IMMEDIATE
  • SYS_C005373 C ENABLED NOT DEFERRABLE IMMEDIATE
  • UQ_EMP_INFO U ENABLED NOT DEFERRABLE IMMEDIATE
  • CK_EMP_INFO C ENABLED NOT DEFERRABLE IMMEDIATE
  • //我們可以通過(guò)user_cons_columns視圖查看有關(guān)列的約束信息嗅绸;
  • select owner,constraint_name,table_name,column_name
  • from user_cons_columns
  • where table_name='EMPLOYEE_INFO';
  • --
  • OWNER CONSTRAINT_NAME TABLE_NAME COLUMN_NAME
  • ------------------------------ ------------------------------ ------------------------------ ---------------
  • YEEXUN PK_EMP_INFO EMPLOYEE_INFO EMPNO
  • YEEXUN CK_EMP_INFO EMPLOYEE_INFO SEX
  • YEEXUN NOT_NULL_EMP_INFO EMPLOYEE_INFO PHONE
  • YEEXUN SYS_C005373 EMPLOYEE_INFO HIREDATE
  • YEEXUN UQ_EMP_INFO EMPLOYEE_INFO PHONE
  • YEEXUN FK_EMP_INFO EMPLOYEE_INFO DEPTNO
  • //我們將user_constraints視圖與user_cons_columns視圖連接起來(lái)
  • //查看約束都指向哪些列
  • column column_name format a15;
  • select ucc.column_name,ucc.constraint_name,uc.constraint_type,uc.status
  • from user_constraints uc,user_cons_columns ucc
  • where uc.table_name=ucc.table_name and
  •   uc.constraint\_name=ucc.constraint\_name and
    
  •   ucc.table\_name='EMPLOYEE\_INFO';
    
  • --
  • COLUMN_NAME CONSTRAINT_NAME CONSTRAINT_TYPE STATUS
  • --------------- ------------------------------ --------------- --------
  • EMPNO PK_EMP_INFO P ENABLED
  • DEPTNO FK_EMP_INFO R ENABLED
  • PHONE NOT_NULL_EMP_INFO C ENABLED
  • HIREDATE SYS_C005373 C ENABLED
  • PHONE UQ_EMP_INFO U ENABLED
  • SEX CK_EMP_INFO C ENABLED
  • --
  • //這里有個(gè)constraint_type脾猛,他具體指下面幾種類(lèi)型:
  • //C:check,not null
  • //P:primary key
  • //R:foreign key
  • //U:unique
  • //V:check option
  • //O:read only
  • --
  • //我們可以通過(guò)user_tab_comments視圖獲得對(duì)表的注釋
  • select * from user_tab_comments
  • where table_name='EMPLOYEE_INFO';
  • TABLE_NAME TABLE_TYPE COMMENTS
  • ------------------------------ ----------- --------------------------
  • EMPLOYEE_INFO TABLE information of employees
  • --
  • //我們還可以通過(guò)user_col_comments視圖獲得對(duì)表列的注釋?zhuān)?/li>
  • select * from user_col_comments
  • where table_name='EMPLOYEE_INFO';
  • --
  • TABLE_NAME COLUMN_NAME COMMENTS
  • ------------------------------ ------------------------------ ---------------------------
  • EMPLOYEE_INFO EMPNO
  • EMPLOYEE_INFO DEPTNO
  • EMPLOYEE_INFO ENAME the name of employees
  • EMPLOYEE_INFO SEX
  • EMPLOYEE_INFO PHONE
  • EMPLOYEE_INFO ADDRESS
  • EMPLOYEE_INFO ID
  • EMPLOYEE_INFO HIREDATE
  • --
  • select * from user_col_comments
  • where table_name='EMPLOYEE_INFO' and
  •   comments is not null;
    
  • --
  • TABLE_NAME COLUMN_NAME COMMENTS
  • ------------------------------ ------------------------------ ------------------------
  • EMPLOYEE_INFO ENAME the name of employees
  • --
  • //最后我們來(lái)查看一下修改后的表:
  • desc employee_info;
  • Name Type Nullable Default Comments

  • EMPNO NUMBER(2)
  • DEPTNO NUMBER(3) Y
  • ENAME VARCHAR2(10) Y the name of employees
  • SEX CHAR(2) Y 'M'
  • PHONE NUMBER(11)
  • ADDRESS VARCHAR2(50) Y
  • ID VARCHAR2(18) Y
  • HIREDATE DATE sysdate+1
  • --
  • desc dept;
  • Name Type Nullable Default Comments

  • DEPTNO NUMBER(3)
  • DNAME VARCHAR2(10) Y the name of department
  • LOC VARCHAR2(50) Y
                create table test_user (               no          number(5)      not null , --pk               username    varchar2(30)    not null , --用戶(hù)名               passpord    varchar2(30)    not null , --密碼               constraint pk_connectdb primary key(no)           )storage (initial 10k next 10k pctincrease 0);
      \*下面講解上面命令的各方面的含義           create table test\_user --創(chuàng)建數(shù)據(jù)表               no              number(5)            not null ,        --pk               (列名或字段名) 數(shù)據(jù)類(lèi)型(數(shù)據(jù)長(zhǎng)度) 該數(shù)據(jù)列不能為空 ,是列之間的分隔符 --后的內(nèi)容是注釋                   constraint pk\_connectdb primary key(no)           (約束)    約束名      (主鍵)    (列名)    意思就是 在數(shù)據(jù)表 test\_user中所有行數(shù)據(jù) no的值不能相同(這就是主鍵的含義)

      storage (initial 10k next 10k pctincrease 0); 這個(gè)說(shuō)起來(lái)比較復(fù)雜, 反正如果某個(gè)數(shù)據(jù)表要存放大量數(shù)據(jù),就把initial和next后的值設(shè)置大一點(diǎn), 否則設(shè)置小一點(diǎn).

      既然上面在創(chuàng)建數(shù)據(jù)表中沒(méi)有特別指定 表空間朽砰,當(dāng)然該表就存放在study缺省表空間data\_test了.

create tablespace data_phonepos datefile 'd:\install\OracleXpdb\datafilephonepos.dbf' size 8000M; create user phonepos identified by phonepos default tablespace data_phonepos;

grant connect, resource to phonepos; grant dba to phonepos;

權(quán)限的查詢(xún)

5.1 查詢(xún)某個(gè)用戶(hù)授予其他用戶(hù)在當(dāng)前用戶(hù)模式下的對(duì)象權(quán)限 select * from user_tab_privs_made --假如當(dāng)前用戶(hù)為WENZI尖滚,那么查詢(xún)結(jié)果就是由WENZI授權(quán),在WENZI模式下的權(quán)限記錄

5.2 查詢(xún)某個(gè)用戶(hù)授予其他用戶(hù)在該用戶(hù)模式對(duì)象及其他模式對(duì)象上的對(duì)象權(quán)限 select * from all_tab_privs_made -- 假如當(dāng)前登錄用戶(hù)為WENZI瞧柔,那么查詢(xún)結(jié)果就是所有由WENZI授予的權(quán)限的記錄

修改用戶(hù)

ALTER USER avyrros IDENTIFIED EXTERNALLY DEFAULT TABLESPACE data_ts TEMPORARY TABLESPACE temp_ts QUOTA 100M ON data_ts QUOTA 0 ON test_ts PROFILE clerk;

刪除用戶(hù) DROP USER username [CASCADE] --CASECADE 選項(xiàng)會(huì)刪除該用戶(hù)模式下的所有對(duì)象漆弄,建議在刪除前,先確認(rèn)是否有其他的依賴(lài)關(guān)系存在造锅。

查詢(xún)屬于用戶(hù)的對(duì)象 select owner,object_name,object_type,status from dba_objects where owner='WENZI'

5.3 查詢(xún)?yōu)槟硞€(gè)用戶(hù)授予的撼唾,在其他模式對(duì)象上的權(quán)限 select * from user_tab_privs_recd --假如當(dāng)前登錄用戶(hù)為WENZI,那么查詢(xún)結(jié)果就是WENZI在其他模式對(duì)象上的權(quán)限

5.4 查詢(xún)?yōu)槟硞€(gè)用戶(hù)授予的哥蔚,在該用戶(hù)模式對(duì)象與其他模式對(duì)象上的權(quán)限 select * from all_tab_privs_recd --假如當(dāng)前用戶(hù)為wenzi倒谷,則查詢(xún)結(jié)果為wenzi在整個(gè)數(shù)據(jù)庫(kù)中擁有權(quán)限的對(duì)象

角色管理

創(chuàng)建口令文件 orapwd file='..........\pwd{SID}.ora' password='***(sys的密碼)' tntries=10(口令文件最大的用戶(hù)數(shù)量)

要使某個(gè)用戶(hù)可以使用口令文件蛛蒙,必須為其授予SYSDBA權(quán)限,系統(tǒng)會(huì)自動(dòng)將其加入到口令文件中渤愁。 grant sysdba to wenzi 當(dāng)收回SYSDBA權(quán)限時(shí)牵祟,系統(tǒng)將對(duì)應(yīng)的用戶(hù)從口令文件中刪除。 revoke sysdba from wenzi

查看口令文件管理的用戶(hù) select * from v$pwfile_users

創(chuàng)建步驟: SYS用戶(hù)在CMD下以DBA身份登陸:[user@root ~]$ sqlplus /nolog

SQL> conn sys/h1w2D3B4 as sysdba

SQL> startup

[user@root ~]$ lsnrctl start

// 分為四步

//第1步:創(chuàng)建臨時(shí)表空間

create temporary tablespace user_temp

tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf'

size 50m

autoextend on

next 50m maxsize 20480m

extent management local;

//第2步:創(chuàng)建數(shù)據(jù)表空間

create tablespace user_da ta

logging

datafile 'D:\oracle\oradata\Oracle9i\user_da ta.dbf'

size 50m

autoextend on

next 50m maxsize 20480m

extent management local;

//第3步:創(chuàng)建用戶(hù)并指定表空間

create user username identified by password

default tablespace user_da ta

temporary tablespace user_temp;

//第4步:給用戶(hù)授予權(quán)限

grant connect,resource to username;

---------------------------------------------------------------------------------

//以后以該用戶(hù)登錄抖格,創(chuàng)建的任何數(shù)據(jù)庫(kù)對(duì)象都屬于user_temp 和user_data表空間诺苹,

這就不用在每創(chuàng)建一個(gè)對(duì)象給其指定表空間了

撤權(quán):

revoke 權(quán)限... from 用戶(hù)名;

刪除用戶(hù)命令

drop user user_name cascade;

建立表空間

CREATE TABLESPACE data01

DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M

UNIFORM SIZE 128k; #指定區(qū)尺寸為128k,如不指定,區(qū)尺寸默認(rèn)為64k

刪除表空間

DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;

一雹拄、建立表空間

CREATE TABLESPACE data01

DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M

UNIFORM SIZE 128k; #指定區(qū)尺寸為128k,如不指定收奔,區(qū)尺寸默認(rèn)為64k

二、建立UNDO表空間

CREATE UNDO TABLESPACE UNDOTBS02

DATAFILE '/oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M

注意:在OPEN狀態(tài)下某些時(shí)刻只能用一個(gè)UNDO表空間滓玖,如果要用新建的表空間坪哄,必須切換到該表空間:

ALTER SYSTEM SET undo_tablespace=UNDOTBS02;

三、建立臨時(shí)表空間

CREATE TEMPORARY TABLESPACE temp_data

TEMPFILE '/oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M

四势篡、改變表空間狀態(tài)

1.使表空間脫機(jī)

ALTER TABLESPACE game OFFLINE;

如果是意外刪除了數(shù)據(jù)文件翩肌,則必須帶有RECOVER選項(xiàng)

ALTER TABLESPACE game OFFLINE FOR RECOVER;

2.使表空間聯(lián)機(jī)

ALTER TABLESPACE game ONLINE;

3.使數(shù)據(jù)文件脫機(jī)

ALTER DATABASE DATAFILE 3 OFFLINE;

4.使數(shù)據(jù)文件聯(lián)機(jī)

ALTER DATABASE DATAFILE 3 ONLINE;

5.使表空間只讀

ALTER TABLESPACE game READ ONLY;

6.使表空間可讀寫(xiě)

ALTER TABLESPACE game READ WRITE;

五、刪除表空間

DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;

六殊霞、擴(kuò)展表空間

首先查看表空間的名字和所屬文件

select tablespace_name, file_id, file_name,

round(bytes/(1024*1024),0) total_space

from dba_data_files

order by tablespace_name;

1.增加數(shù)據(jù)文件

ALTER TABLESPACE game

ADD DATAFILE '/oracle/oradata/db/GAME02.dbf' SIZE 1000M;

2.手動(dòng)增加數(shù)據(jù)文件尺寸

ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf'

RESIZE 4000M;

3.設(shè)定數(shù)據(jù)文件自動(dòng)擴(kuò)展

ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf

AUTOEXTEND ON NEXT 100M

MAXSIZE 10000M;

設(shè)定后查看表空間信息

SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,

(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"

FROM SYS.SMTS\_AVAIL A,SYS.SMTS_USED B,SYS.SM$TS_FREE C

WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE

創(chuàng)建數(shù)據(jù)表:

Oracle中建表和指定表空間

--建一個(gè)表 create table HH2(

tid number primary key ,--主鍵設(shè)定

tname varchar2(20)

);

--刪除表 drop table HH;

--表空間(相當(dāng)于一個(gè)數(shù)據(jù)庫(kù))(DBA權(quán)限) create tablespace test datafile 'D:test.dbf' size 10M autoextend on next 10M maxsize 100M

--指定表在那個(gè)表空間里面(默認(rèn)在USERS表空間里) create table HH(tid number primary key) tablespace test; select * from tabs;

--刪除 表空間 drop tablespace test including contents and datafiles --連帶物理文件和表空間中的數(shù)據(jù)也一起刪除

--建表建約束 create table student1(

sid number primary key,

sname varchar2(20) not null,

sage number,

ssex char(2),

saddress varchar2(100),

cid number references tclass(cid)--建立外鍵關(guān)系 );

create table tclass (

cid number primary key,

cname varchar2(20) );

--唯一unique 檢查 check 默認(rèn)值 modify 添加外鍵關(guān)系 添加列

alter table student1 add constraint UQ_student1_sname unique(sname);

alter table student1 add constraint CK_student1_agae check(sage between 19 and 70);

alter table student1 modify ssex default '男';

alter table student1 add constraint FK_student1_cid foreign key(cid) references tclass(cid);

alter table student1 add dt date;

--刪除約束 alter table student1 drop constraint UQ_student1_sname ;

1.創(chuàng)建oracle數(shù)據(jù)表

創(chuàng)建oracle數(shù)據(jù)表的語(yǔ)法如下:

[圖片上傳失敗...(image-6a04e6-1612973157705)]

create table命令用于創(chuàng)建一個(gè)oracle數(shù)據(jù)表摧阅;括號(hào)內(nèi)列出了數(shù)據(jù)表應(yīng)當(dāng)包含的列及列的數(shù)據(jù)類(lèi)型;tablespace則指定該表的表空間绷蹲。

創(chuàng)建數(shù)據(jù)表students。

[圖片上傳失敗...(image-b52597-1612973157705)]

在該創(chuàng)建語(yǔ)句中顾孽,依次定義了student_id祝钢、student_name、student_age若厚、status及version等列拦英;tablespace users表示將表創(chuàng)建于表空間users中。

通過(guò)視圖user_tables可以獲得當(dāng)前用戶(hù)所擁有的表信息测秸,利用如下SQL語(yǔ)句可以查看表student的表空間信息疤估。

[圖片上傳失敗...(image-1db165-1612973157706)]

在oracle的SQL命令行下,可以利用describe命令來(lái)查看已有數(shù)據(jù)表的表結(jié)構(gòu)霎冯,如下所示铃拇。

[圖片上傳失敗...(image-33c6bd-1612973157706)]

2.數(shù)據(jù)表的相關(guān)操作

數(shù)據(jù)表創(chuàng)建之后,由于某些原因沈撞,例如慷荔,設(shè)計(jì)時(shí)的考慮不足,往往需要對(duì)其進(jìn)行結(jié)構(gòu)上的調(diào)整缠俺。常見(jiàn)的調(diào)整包括显晶,增加新列贷岸、修改已有列、刪除磷雇、重命名已有列偿警。另外,還可以轉(zhuǎn)移數(shù)據(jù)表的表空間唯笙。

修改數(shù)據(jù)表結(jié)構(gòu)應(yīng)當(dāng)使用alter table命令螟蒸。例如,在表student中睁本,增加新列class_id(班級(jí)ID)的SQL語(yǔ)句如下圖所示尿庐。

[圖片上傳失敗...(image-b14a92-1612973157706)]

alter table student 用于修改表student的結(jié)構(gòu);add用于增加列呢堰,注意此處沒(méi)有collumn關(guān)鍵字抄瑟;小括號(hào)內(nèi)是列及列的數(shù)據(jù)類(lèi)型;用戶(hù)可以一次性為表增加多個(gè)列枉疼,各列之間使用逗號(hào)進(jìn)行分隔皮假。

在修改成功之后,表student的結(jié)構(gòu)如下所示骂维。

[圖片上傳失敗...(image-304b42-1612973157706)]

同樣惹资,可以利用alter命令修改和刪除已有列。

利用alter命令將class_id的數(shù)據(jù)類(lèi)型修改為varchar2(20)航闺。

[圖片上傳失敗...(image-d22742-1612973157706)]

modify(class_id varchar2(20))用于修改表student中的已有列class_id褪测,實(shí)際相當(dāng)于重新定義。該列新的數(shù)據(jù)類(lèi)型為varchar2(20)潦刃。此時(shí)表student的結(jié)構(gòu)如下:

[圖片上傳失敗...(image-b4d757-1612973157706)]

通過(guò)modify選項(xiàng)可以將列的類(lèi)型重新定義侮措,而通過(guò)drop選項(xiàng)則刪除已有列,如下所示乖杠。

[圖片上傳失敗...(image-5664ff-1612973157707)]

drop column class_id用于刪除已有列class_id分扎;需要注意的是,此處必須添加column選項(xiàng)胧洒,才能表示刪除的目標(biāo)是一個(gè)列畏吓。此時(shí),表student的結(jié)構(gòu)已經(jīng)修改如下:

[圖片上傳失敗...(image-2a57c8-1612973157707)]

對(duì)于數(shù)據(jù)表的列卫漫,除了增菲饼、刪、改操作之外汛兜,還可以進(jìn)行重命名操作巴粪。重命名一個(gè)列,應(yīng)該使用rename選項(xiàng)。例如肛根,為了與其他數(shù)據(jù)表進(jìn)行統(tǒng)一琳彩,需要將表student的列student_id重命名為id狼荞,則可以利用如下SQL語(yǔ)句圾另。

[圖片上傳失敗...(image-653941-1612973157707)]

rename column student_id to id用于將列student_id重命名為id志群。此時(shí),表student的結(jié)構(gòu)如下所示芭届。

[圖片上傳失敗...(image-f6dc86-1612973157707)]

對(duì)于調(diào)整數(shù)據(jù)表結(jié)構(gòu)來(lái)說(shuō)储矩,要特別注意嚴(yán)謹(jǐn)性。列的數(shù)據(jù)類(lèi)型的修改褂乍,有可能會(huì)影響應(yīng)用程序?qū)?shù)據(jù)庫(kù)進(jìn)行存瘸炙怼;而列的刪除和重命名更需要檢查應(yīng)用程序是否會(huì)出現(xiàn)關(guān)聯(lián)性錯(cuò)誤逃片。

如果數(shù)據(jù)表創(chuàng)建時(shí)屡拨,選擇了錯(cuò)誤的表空間,那么可以利用alter table命令褥实,結(jié)合move tablespace選項(xiàng)轉(zhuǎn)移表空間呀狼,如下圖所示。

將表student轉(zhuǎn)移至表空間users中损离。

[圖片上傳失敗...(image-186c77-1612973157707)]

alter table student用于修改表student的屬性哥艇;move tablespace users用于將表student從當(dāng)前表空間轉(zhuǎn)移至表空間users∑欤可以通過(guò)查詢(xún)視圖user_tables獲得表student轉(zhuǎn)移之后的表空間信息貌踏,如下所示。

[圖片上傳失敗...(image-913cd6-1612973157707)]

分析查詢(xún)結(jié)果可知窟勃,利用move tablespace選項(xiàng)已經(jīng)成功實(shí)現(xiàn)了表空間的轉(zhuǎn)移哩俭。

刪除數(shù)據(jù)表

利用drop table命令刪除數(shù)據(jù)表

[圖片上傳失敗...(image-273827-1612973157707)]

有時(shí),由于某些約束的存在拳恋,例如,當(dāng)前表的主鍵被其他表用作外鍵砸捏,會(huì)導(dǎo)致無(wú)法成功刪除谬运。利用cascade constraints選項(xiàng)可以將約束同時(shí)刪除,從而保證drop table命令一定能夠成功執(zhí)行垦藏。

[圖片上傳失敗...(image-642462-1612973157707)]

特殊的數(shù)據(jù)表dual

dual表實(shí)際屬于系統(tǒng)用戶(hù)sys梆暖,具有了數(shù)據(jù)庫(kù)基本權(quán)限的用戶(hù),均可查詢(xún)?cè)摫淼膬?nèi)容掂骏,如下所示:

[圖片上傳失敗...(image-ff0524-1612973157707)]

或者

[圖片上傳失敗...(image-3393fa-1612973157707)]

分析查詢(xún)結(jié)果可知轰驳,dual表僅含有一行一列。該表并非為了存儲(chǔ)數(shù)據(jù)而創(chuàng)建的,其存在的意義在于提供強(qiáng)制的數(shù)據(jù)源级解。

在oracle中冒黑,所有查詢(xún)語(yǔ)句必須滿(mǎn)足select column_name from table_name的格式。但是勤哗,在某些場(chǎng)景下抡爹,數(shù)據(jù)源table_name并不明確。例如芒划,函數(shù)sysdate()用于返回當(dāng)前日期冬竟,那么在SQL命令行下調(diào)用該函數(shù)時(shí),很難有明確的數(shù)據(jù)源民逼,此時(shí)即可使用dual表泵殴。

利用dual表提供數(shù)據(jù)源,以獲得當(dāng)前日期拼苍。

[圖片上傳失敗...(image-755923-1612973157707)]

同樣笑诅,對(duì)于各種數(shù)學(xué)運(yùn)算,同樣可以利用dual表作為數(shù)據(jù)源映屋,來(lái)打印和查看輸出結(jié)果苟鸯。

[圖片上傳失敗...(image-f58e5b-1612973157707)]

dual表提供了一行一列的數(shù)據(jù)格式,從而使各種表達(dá)式棚点、函數(shù)運(yùn)算在以其為數(shù)據(jù)源時(shí)早处,能夠輸出單行單列的形式。

由于dual表的所有者為系統(tǒng)用戶(hù)sys瘫析,因此砌梆,只有用戶(hù)利用該身份登錄數(shù)據(jù)庫(kù)才可以修改該表。但是贬循,修改該表的內(nèi)容或者結(jié)構(gòu)都應(yīng)該被禁止咸包。

oracle create tablespace

  1. create tablespace ZGECM
  2. logging datafile 'G:\oracle\product\10.2.0\ZGECM.DBF'
  3. size 500M autoextend on
  4. next 10M maxsize 500M extent management local
  5. create user sms2 identified by sms2 default tablespace ECM2
  6. temporary tablespace temp profile default;
  7. --6 授權(quán)給新建用戶(hù)
  8. grant connect,resource to sms2;
  9. grant dba to sms2;
  10. exp xuner_ecm/xuner_ecm@192.168.1.139/SMS FILE=E:/xunerecm0910_server.DMP OWNeR=xuner_ecm
  11. imp scjt/scjt@SMS fromuser=ecm touser=sms2 file='G:\sms.dmp'
  12. imp SMS/SMS@LOCAL_SMS fromuser=SMS touser=SMS file='G:\sms.dmp'
  13. select userenv('language') from dual; //查詢(xún)oracle服務(wù)器端的字符
  14. select nls_charset_name(to_number('0354','0354'))
  15. from dual;
  16. CREATE DATABASE LINK sms CONNECT TO sms IDENTIFIED BY sms
  17. USING 'SMS';
  18. insert into XSJBXXB select * from sms.xsjbxxb@zhang2
  19. insert into XSJBXXB select * from sms.xsjbxxb@to_test
  20. --創(chuàng)建dblink
  21. create database link to_test
  22. connect to sms identified by sms
  23. using 'ZHANG';
  24. '(DESCRIPTION =(
  25. ADDRESS_LIST =(
  26. ADDRESS =(
  27. PROTOCOL = TCP)(
  28. HOST = 192.168.0.100)(PORT = 1521)))
  29. (CONNECT_DATA =(SERVICE_NAME = AAA)))'
  30. --查詢(xún)約束
  31. select owner,constraint_name,table_name from user_constraints
  32. where constraint_name='SYS_C00119759'

  33. /*分為四步 */
  34. /*第1步:創(chuàng)建臨時(shí)表空間 */
  35. create temporary tablespace user_temp
  36. tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf'
  37. size 50m
  38. autoextend on
  39. next 50m maxsize 20480m
  40. extent management local;
  41. /*第2步:創(chuàng)建數(shù)據(jù)表空間 */
  42. create tablespace user_data
  43. logging
  44. datafile 'D:\oracle\oradata\Oracle9i\user_data.dbf'
  45. size 50m
  46. autoextend on
  47. next 50m maxsize 20480m
  48. extent management local;
  49. /*第3步:創(chuàng)建用戶(hù)并指定表空間 */
  50. create user username identified by password
  51. default tablespace user_data
  52. temporary tablespace user_temp;
  53. /*第4步:給用戶(hù)授予權(quán)限 */
  54. grant connect,resource,dba to username;
  55. --Error dropping MEM_GENINF:
  56. --ORA-00054: 資源正忙, 但指定以 NOWAIT 方式獲取資源
  57. --Record is locked by another user
  58. --1.查看鎖
  59. select t2.username,t2.sid,t2.serial#,t2.logon_time
  60. from vlocked\_object t1,vsession t2 where t1.session_id=t2.sid ;
  61. --2、Kill
  62. alter system kill session 'sid,serial#';
  63. alter system kill session '151,14678';

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末杖虾,一起剝皮案震驚了整個(gè)濱河市烂瘫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌奇适,老刑警劉巖坟比,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異嚷往,居然都是意外死亡葛账,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)皮仁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)籍琳,“玉大人菲宴,你說(shuō)我怎么就攤上這事∏骷保” “怎么了喝峦?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)宣谈。 經(jīng)常有香客問(wèn)我愈犹,道長(zhǎng),這世上最難降的妖魔是什么闻丑? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任漩怎,我火速辦了婚禮,結(jié)果婚禮上嗦嗡,老公的妹妹穿的比我還像新娘勋锤。我一直安慰自己,他們只是感情好侥祭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布叁执。 她就那樣靜靜地躺著,像睡著了一般矮冬。 火紅的嫁衣襯著肌膚如雪谈宛。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,125評(píng)論 1 297
  • 那天胎署,我揣著相機(jī)與錄音吆录,去河邊找鬼。 笑死琼牧,一個(gè)胖子當(dāng)著我的面吹牛恢筝,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播巨坊,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼撬槽,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了趾撵?” 一聲冷哼從身側(cè)響起侄柔,我...
    開(kāi)封第一講書(shū)人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎占调,沒(méi)想到半個(gè)月后勋拟,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡妈候,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了挂滓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苦银。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出幔虏,到底是詐尸還是另有隱情纺念,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布想括,位于F島的核電站陷谱,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏瑟蜈。R本人自食惡果不足惜烟逊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望铺根。 院中可真熱鬧宪躯,春花似錦、人聲如沸位迂。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)掂林。三九已至臣缀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間泻帮,已是汗流浹背精置。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留刑顺,地道東北人氯窍。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像蹲堂,于是被迫代替她去往敵國(guó)和親狼讨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容