一.實驗?zāi)康?/h1>
- 掌握表和索引的管理方法诞帐。
- 掌握其他模式對象的管理方法。
二.實驗內(nèi)容
數(shù)據(jù)庫 orcl 用戶名 sys 密碼 oracle堕阔; 用戶名 scott 密碼 tiger
1.用scott登錄數(shù)據(jù)庫此疹,創(chuàng)建class表和student表聘惦。Class表的字段包括班號cno,班名cname和人數(shù)num。Student表的字段包括學(xué)號sno蹋艺,姓名sname剃袍,年齡sage和班號cno。字段類型和長度自定捎谨。
2.創(chuàng)建一個會話級別的臨時表民效,結(jié)構(gòu)與student表相同。
3.為student表的sage字段添加一個約束涛救,保證該列值在0-100之間畏邢。
4.在class表的cname列上建立一個唯一性索引。
5.對class表進行表結(jié)構(gòu)重組检吆,將其移動到orcltbs1表空間舒萎。
6.創(chuàng)建一個student_range表(結(jié)構(gòu)與student相同)。按學(xué)生年齡分3個區(qū)蹭沛,低于20歲的放入part1區(qū)臂寝,存儲在example表空間虱肄;20-30歲的放在part2區(qū),放在orcltbs1表空間交煞;其他數(shù)據(jù)放在part3區(qū)咏窿,放在users表空間。
7.創(chuàng)建一個序列素征,起始值1000集嵌,步長為2,最大值為10000御毅,不可循環(huán)根欧。
三.實驗過程
1.用scott登錄數(shù)據(jù)庫,創(chuàng)建class表和student表端蛆。Class表的字段包括班號cno,班名cname和人數(shù)num凤粗。
Student表的字段包括學(xué)號sno,姓名sname今豆,年齡sage和班號cno嫌拣。字段類型和長度自定。
把sql語句存入C:\oracle\sql目錄下
在命令行執(zhí)行
SQL>@C:\oracle\sql\shiyan3-3.sql
CREATE TABLE class(
cno NUMBER(5) PRIMARY KEY,
cname VARCHAR(15),
num NUMBER(5)
)
CREATE TABLE student(
sno NUMBER(5) PRIMARY KEY,
sname VARCHAR(15),
sage NUMBER(5),
cno NUMBER(5) NOT NULL ,
CONSTRAINT fk_cno FOREIGN KEY(cno) REFERENCES class(cno)
2.創(chuàng)建一個會話級別的臨時表呆躲,結(jié)構(gòu)與student表相同异逐。
CREATE GLOBAL TEMPORARY TABLE student_temp(
sno NUMBER(5) PRIMARY KEY,
sname VARCHAR(15),
sage NUMBER(5),
cno NUMBER(5) NOT NULL
)
ON COMMIT PRESERVE ROWS;
3.為student表的sage字段添加一個約束,保證該列值在0-100之間插掂。
ALTER TABLE student ADD CONSTRAINT P_CK CHECK (sage BETWEEN 0 AND 100)
4.在class表的cname列上建立一個唯一性索引灰瞻。
ALTER TABLE class ADD CONSTRAINT P_UK UNIQUE(cname)
5.對class表進行表結(jié)構(gòu)重組,將其移動到orcltbs1表空間辅甥。
創(chuàng)建orcltbs1 表空間:
CREATE TABLESPACE orcltbs1 DATAFILE
‘C:\oracle\product\10.2.0\oradata\orcl\orcltbs1.dbf’SIZE 10M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K;
ALTER TABLE class MOVE TABLESPACE orcltbs1
6.創(chuàng)建一個student_range表(結(jié)構(gòu)與student相同)酝润。按學(xué)生年齡分3個區(qū),低于20歲的放入part1區(qū)璃弄,存儲在example表空間要销;20-30歲的放在part2區(qū),放在orcltbs1表空間谢揪;其他數(shù)據(jù)放在part3區(qū)蕉陋,放在users表空間。
創(chuàng)建example表空間:
CREATE TABLESPACE example DATAFILE
‘C:\oracle\product\10.2.0\oradata\orcl\example.dbf’SIZE 10M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K;
CREATE TABLE student_range(
sno NUMBER(5) PRIMARY KEY,
sname VARCHAR(15),
sage NUMBER(5),
cno NUMBER(5) NOT NULL )
PARTITION BY RANGE(sage)
(PARTITION part1 VALUES LESS THAN(20) tablespace example,
PARTITION part2 VALUES LESS THAN(31) tablespace orcltbs1,
PARTITION part3 VALUES LESS THAN(maxvalue) tablespace users
storage(initial 10m next 20m) );
7.創(chuàng)建一個序列拨扶,起始值1000凳鬓,步長為2,最大值為10000患民,不可循環(huán)缩举。
create sequence seq
maxvalue 10000
start with 1000
increment by 2
NOCYCLE;
四.實驗總結(jié)
原因:臨時表不能引用外鍵約束,刪去即可