一、涉及內容
1.掌握使用OEM工具創建、修改和刪除表。
2.掌握使用SQL語句創建、修改和刪除表。
3.掌握使用SQL語句插入、修改和刪除數據。
4.理解各種約束的作用,並能夠使用OEM工具和SQL命令為表創建各種約束。
二、具體操作
(一)分別使用OEM和SQL語句完成下面的內容。
1.創建表並添加相應的約束。要求:
(1)創建名為student(學生信息)的表,表中各列要求如下:
字段名稱 |
字段類型 |
大小 |
說明 |
sno |
CHAR |
10 |
主鍵 |
sname |
VARCHAR |
8 |
|
sex |
CHAR |
2 |
默認值為男,只能輸入男或者女 |
birthday |
DATE |
|
|
sdept |
CHAR |
20 |
|
使用 OEM:
使用SQL語句:
(2)創建名為course(課程信息)的表,表中各列要求如下:
字段名稱 |
字段類型 |
大小 |
說明 |
cno |
CHAR |
10 |
主鍵 |
cname |
CHAR |
30 |
唯一性 |
ccredit |
NUMBER |
3 |
|
使用OEM:
使用SQL:
(3)創建名為score(學生成績)的表,表中各列要求如下:
字段名稱 |
字段類型 |
大小 |
取值范圍 |
說明 |
sno |
CHAR |
10 |
數據來自學生信息表 |
主鍵 |
cno |
CHAR |
10 |
數據來自學生課程表 |
主鍵 |
grade |
NUMBER |
3 |
0~100 |
|
使用OEM:
使用SQL:
2.增加、修改和刪除字段,要求:
(1)給student表增加一個memo(備注)字段, 類型為VARCHAR2(200)。
(2)將memo 字段的類型修改為VARCHAR2(300)。
(3)刪除memo字段。
3.向表中添加數據、更新數據、刪除數據,並驗證約束。要求:
(1)使用INSERT INTO 命令向三個表中分別插入若干行數據,驗證主鍵約束、唯一約束以及默認約束。
向student 表插入數據:
查看已經插入數據的學生表:
向course 表插入數據並查看:
向score 表插入數據並查看數據:
(2)使用UPDATE 命令更新數據,驗證外鍵約束。
(3)使用DELETE 命令刪除數據。
4.刪除表。要求:
(1)使用OEM工具刪除表。
使用OEM工具創建student表
創建主鍵約束:
刪除學生表:
(2)利用DROP TABLE 語句刪除表。
(二)習題
1.以下關於insert語句的values子句的說法哪一個是正確的? (AB)
A、如果沒有指定字段的列表,則這些值必須按照表中列的順序列出
B、insert 語句中的values子句是可選的
C、在values子句中,字符、日期和數字數據必須用單引號引起來
D、要在values子句中指定一個空值,可使用字符串(“”)
2.為人力資源部門設計表,此表必須用一列來包含每個雇員的聘用日期,應該為此列指定以下哪一種數據類型 (B)
A、char
B、date
C、timestamp
D、interval year to month
3.如果莫一列用於存儲多大4GB的二進制數據,則應該定義為那種數據類型? (C)
A、long
B、number
C、blob
D、longraw
4.需要刪除student表中所有數據、該表的結構以及與該表相關的索引,應使用下面哪一條語句 (A)
A、drop table
B、truncate table
C、alter table
D、delete table
5.以下關於創建表的說法哪個是正確的?(B)
A、使用create table 語句時,隨時會在當前用戶方案中創建表
B、如果create table 語句中沒有明確包含某個方案,則會在當前用戶方案中創建表
C、如果create table 語句中沒有明確包含某個方案,create table 語句則會失效
D、如果create table 語句中明確包含某一個方案,但是該方案不存在,則會創建該方案
6.以下關於列的說法哪個是正確的? (C)
A、不可以增大char列的寬度
B、如果列包含非空數據,則可以修改列的數據類型
C、可以將char 數據類型的列轉換為varchar2數據類型
D、可以將data數據類型列轉換為varchar2數據類型
7.以下關於not null 約束條件的說法哪個是正確的? (A)
A、必須在列級定義not null約束條件
B、可以在列級或表級定義not null約束條件
C、not null約束條件要求列包含字母數字值
D、not null約束條件要求列並不能包含字母數字值
8.以下關於foreign key約束條件的說法哪個正確?(C)
A、自動為foreign key約束條件創建索引
B、foreign key約束條件允許受約束的列包含存在與父表的主鍵或特殊鍵列中的值
C、foreign key約束條件要求在將某個值添加到受約束的列之前檢查允許的值列表
D、foreign key列可以具有與其引用的主鍵列不同的數據類型
9.Oracle允許你在子表中創建foreign key約束條件之前,父表應當先具備什么條件? (B)
A、在父表的主鍵列已經存在foreign key約束條件
B、在父表中必須存在primary key 或unique約束條件
C、在父表中必須存在索引
D、在父表中必須存在check約束條件
10.需要對雇員表的雇員標識列添加primary key 約束條件,應該使用一下哪條alter table 語句 (A)
A、alter table 雇員 add primary key(雇員標識);
B、alter table 雇員 add constraint primary key(雇員標識);
C、alter table 雇員 modify 雇員標識 primary key
D、alter table 雇員 modify constraint primary key(雇員標識);