实验题目:
熟悉环境、建立/删除表、插入数据
实验目的:
创建 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,观察到语句中出现中文单引号,修改后在自己的电脑上成功插入,再将语句复制回平台执行,成功。