1. 程式人生 > >【Oracle練習】⑧第9章 表和約束

【Oracle練習】⑧第9章 表和約束

第九章

1.請分析按照以下要求都需要建立什麼型別的欄位

   (1)最大2000個位元組定長字串 char(2000)

   (2)如果輸入’張三’ 後添空格6個 char(10) 

   (3)性別輸入’男’或’女’ char(2)

(4)最大4000個位元組變長字串  varchar2

(5)如果在資料庫中輸入'張三'則顯示資料'張三'  NVARCHAR2 

(6)表示數字範圍為10的-38次方到10的38次方, 可以表示小數 也可以表示整數

    (7)  最大表示4位整數  -9999 到 9999 

 (8) 表示5位有效數字 2位小數的 一個小數  -999.99 到 999.99 number

    (9) 包含年月日和時分秒  7個位元組 date

    (10) 二進位制大物件影象/聲音  4G nvarchar2

2.建立表空間mttabase crate table mtabase datafile ‘路徑+表空名' size ;

3.請上機按照如下步驟操作:

     (1)建立學生表student,欄位有:學號(主鍵),姓名,性別,日期,獎學金

     (2)建立班級表class,欄位有班級編號(主鍵),班級名稱,班級人數

     (3)在student表新增欄位(學生所在班級classid) 

     (4)修改欄位的長度學生姓名可以輸入6個漢字

     (5)修改欄位的型別,將學號修改為5位元組字串

     (6)通過子查詢,修改每個班級的班級人數字段的資料

--9.3.1

CREATETABLE student   (

       xh char(4NOTNULL,

       xm varchar2(10),

       sex char(2),

       birthday DATE,

       sal number(7,2),

CONSTRAINT pk_xh PrimaryKEY (xh)     

);

--9.3.2

CREATETABLECLASS   (

       classid char(4NOTNULL,

NAMEvarchar2(10),

       su number(7),

CONSTRAINT pk_class_id 

PrimaryKEY (classid)     

);

--9.3.3

ALTERTABLE student ADD(classid CHAR(4));

--9.3.4

ALTERTABLE student MODIFY(xm VARCHAR(12));

--9.3.5

ALTERTABLE student MODIFY(xh CHAR(5));

--9.3.6

UPDATECLASS c SET su=(SELECTCOUNT(*) from student s WHERE c.classid= s.classid);

4.建立copy_dept,要求格式同dept表完全一樣,不包含資料

CREATETABLE copy_dept ASSELECT * FROM dept WHERE1=2

5.建立copy_emp,要求格式同emp表完全一樣,不包含資料

CREATETABLE copy_emp ASSELECT * FROMemp WHERE1=2

6.設定copy_emp表中外來鍵deptno,參照copy_dept中deptno,語句能否成功,為什麼?

ALTERTABLE copy_emp ADDCONSTRAINT pk_deptno PRIMARYKEY(deptno) REFERENCES copy_dept(deptno); 不能

7.設定copy_dept表中主鍵deptno

ALTERTABLE copy_dept ADDCONSTRAINT pk_depno PRIMARYKEY(deptno)