1. 程式人生 > 資料庫 >山東大學《資料庫系統》實驗一

山東大學《資料庫系統》實驗一

實驗題目:

熟悉環境、建立/刪除表、插入資料

實驗目的:

建立 3 個表,為每個表輸入 2 行資料,沒有邏輯難度,只是熟悉環境,學會建立表。 表名、列名採用英文,oracle 不區分大小寫,有 not null 的列代表不允許為空。

實驗原理和方法:

建表語句:Create table test1_student (sid char(12),name varchar2(10));
插入語句:Insert into test1_student values(‘200020002000’,‘王菲’);

實驗步驟:

1.建立學生資訊表(學生編號、姓名、性別、年齡、出生日期、院系名稱、班級):

CREATE TABLE test1_student(
	sid char(12) not null,
	name varchar(10) not null,
	sex char(2),
	age int,
	birthday date,
	dname varchar(30),
	class varchar(10)
)

2.建立課程資訊表(僅考慮一門課程最多一個先行課的情況):課程編號、課程名稱、先行課編號、學分

CREATE TABLE test1_course(
	cid char(6) not null,
	name varchar(40) not null, 
	fcid char(6),credit numeric(3,1)
)

3.建立學生選課資訊表(學號、課程號、成績、教師編號、選課時間)

CREATE TABLE test1_student_course(
	sid char(12) not null,
	cid char(6) not null,
	score numeric(4,1),
	tid char(6),
	sctime date
)

4.給表test1_student插入如下2行資料。
學號 姓名 性別 年齡 出生日期 院系名稱 班級
200800020101 王欣 女 21 1994/2/2 計算機學院 2010
200800020102 李華 女 20 1995/3/3 軟體學院 2009

INSERT INTO test1_student VALUES
(200800020101,'王欣','女',21,date'1994-02-02','計算機學院','2010'),
(200800020102,'李華','女',20,date'1995-03-03','軟體學院','2009');

5.給表test1_course插入如下2行資料。
課程號 課程名 先行課程號 學分
300001 資料結構 2
300002 資料庫 300001 2.5

INSERT INTO test1_course VALUES
(300001,'資料結構',null,2),
(300002,'資料庫',300001,2.5);

6.給表test1_student_course插入如下2行資料。
學號 課程號 成績 教師編號 選課時間
200800020101 300001 91.5 100101 2009-7-15 09:09:09
200800020101 300002 92.6 100102 2009-7-15 10:10:10

INSERT INTO test1_student_course VALUES
(200800020101,300001,91.5,100101,to_date('2009/7/15 09:09:09','yyyy/mm/dd HH24:mi:ss')),
(200800020101,300002,92.6,100102,to_date('2009/7/15 10:10:10','yyyy/mm/dd HH24:mi:ss'))

結論分析與體會:

插入日期型別(date)資料的格式有兩種方法:date ‘2020-03-22’或to_date(‘20200322’,‘yyyymmdd’),同理datetime型別可以用’yyyy/mm/dd HH24:mi:ss’,在oracle中沒有datetime,用date即可。

就實驗過程中遇到和出現的問題,你是如何解決和處理的,自擬1-3道問答題:

Q1:插入語句反覆檢查沒有邏輯錯誤卻一直報錯,無法插入成功,怎麼解決?

A1:首先看下方錯誤的詳述為無效字元,且邏輯沒有錯誤,猜測是標點符號大小寫出現問題。由於在平臺輸入的不明顯,將插入語句複製到workbench,觀察到語句中出現中文單引號,修改後在自己的電腦上成功插入,再將語句複製回平臺執行,成功。