山东大学软件学院数据库实验一

一、前置知识

1、创建表语法

CREATE TABLE TABLENAME(

column1 CHAR(12) NOT NULL,
column2 VARCHAR2(10) NOT NULL,
-- NOT NULL与前面的char(2)之间一定要加空格
column3 CHAR(2),
column4 INT,
column5 DATE,
Oracle中要定义变长字符类型的列用VARCHAR2不要忘了后面的2
column6 VARCHAR2(30),
-- 最后一行属性最后没有逗号
column7 VARCHAR(10)
)

2、char与varchar2定义长度值的原因

CREATE TABLE TEST1_STUDENT(
-- 学号202700500001(12位数二进制char,一位算一个字符)非空
sid CHAR(12) NOT NULL,
-- 名字(最多五个汉字,因为一个汉字占两个字节)非空!!NOT NULL与前面的()之间一定要加空格
name VARCHAR2(10) NOT NULL,
-- 一个汉字只占一个字符,那么为什么要定义char(2)而不是char(1)呢,因为可能有还没统计性别的人员,此时要记为其他或者未知
sex CHAR(2),
-- 年龄20(整型int),一个年龄值通常为整型Int,占四个字节的存储空间
age INT,
-- DATE的存储类型为2024-4-1,代表2024年4月1日
birthday DATE,
-- varchar2(30)按字节存储,一个汉字占两个字节,如‘马克思主义学院’占用14个字节
dname VARCHAR2(30),
-- 一个汉字占两个字节,一个数字占一个字节,如‘软工1班’占7个字节
class VARCHAR(10)
);

 

3、插入数据

-- insert into table_name values(属性1的值,属性2的值,属性3的值)
-- char类型纯数字编号可不加''如下面201800020101,也可加''如班级号'2010',所有标点符号均为英文模式
INSERT INTO TEST1_STUDENT VALUES
(201800020101,'王欣','女',21,to_date('19940202','yyyymmdd'),'计算机学院','2010')
-- 表示年月日to_date('19940202','yyyymmdd'),代表值为1994年2月2日

4、删除数据

-- DELETE FROM table_name WHERE columni=''
DELETE FROM TEST1_STUDENT WHERE NAME='王欣'
--即可将王欣所在的一行数据全部删除

 

二、实验一  建表、删除表、插入数据

实验内容

创建3个表,为每个表输入2行数据,没有逻辑难度,只是熟悉环境,学会创建表。

表名、列名采用英文,oracle不区分大小写,有not null的列代表不允许为空。

实验步骤

1-1

在SQL编辑区输入建表SQL,创建学生信息表(学生编号、姓名、性别、年龄、出生日期、院系名称、班级):

     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。

CREATE TABLE TEST1_STUDENT(
sid CHAR(12) NOT NULL,
name VARCHAR2(10) NOT NULL,
sex CHAR(2),
age INT,
birthday DATE,
dname VARCHAR2(30),
class VARCHAR(10)
)

1-2

创建课程信息表(仅考虑一门课程最多一个先行课的情况)(课程编号、课程名称、先行课编号、学分)

test1_course:cid char 6 not null、name varchar 40 not null、fcid char 6、

credit numeric 4,1(其中4代表总长度,1代表小数点后面长度)。

CREATE TABLE TEST1_COURSE(
cid CHAR(6) NOT NULL,
name VARCHAR(40) NOT NULL,
fcid CHAR(6),
credit NUMERIC(4,1)
)

1-3

创建学生选课信息表(学号、课程号、成绩、教师编号、选课时间)

test1_student_course:sid char 12 not null、cid char 6 not null、

score numeric 5,1(其中5代表总长度,1代表小数点后面长度)、tid char 6、sctime date。

CREATE TABLE TEST1_STUDENT_COURSE(
sid CHAR(12) NOT NULL,
cid CHAR(6) NOT NULL,
score NUMERIC(5,1),
tid CHAR(6),
sctime DATE

1-4

给表test1_student插入如下2行数据。
学号 姓名 性别 年龄 出生日期 院系名称 班级
201800020101 王欣 女 21 1994-02-02 计算机学院 2010
201800020102 李华 女 20 1995-03-03 软件学院    2009
特别提醒:
1、insert语句1次只能插入1行数据,插入多行有特殊语法,不要自创插入多行的格式。
2、引号一定也采用英文单引号。
3、输入日期类型数据的格式:
insert into t1 values(200700030101,'赵中华','男',19,to_date('20120202','yyyymmdd'),'计算机学院','2010')

INSERT INTO TEST1_STUDENT VALUES(201800020101,'王欣','女',21,to_date('19940202','yyyymmdd'),'计算机学院','2010')
INSERT INTO TEST1_STUDENT VALUES(201800020102,'李华','女',20,to_date('19950303','yyyymmdd'),'软件学院','2009')

1-5  

给表test1_course插入如下2行数据。
课程号  课程名       先行课程号 学分
300001 数据结构                          2
300002 数据库      300001         2.5
特别提醒:
1、插入空值使用null
2、一次只能插入一行数据

INSERT INTO TEST1_COURSE VALUES('300001','数据结构',null,2)
INSERT INTO TEST1_COURSE VALUES('300002','数据库','300001',2.5)

1-6

给表test1_student_course插入如下2行数据。
学号 课程号 成绩 教师编号 选课时间
201800020101 300001 91.5 200101 2009-07-15 09:09:09
201800020101 300002 92.6 200102 2009-07-15 10:10:10
特别提醒:
1、一次只能插入一行数据
2、日期时间输入函数 to_date('2020-01-03 15-26-26','yyyy-mm-dd hh24-mi-ss')

INSERT INTO TEST1_STUDENT_COURSE VALUES(201800020101,'300001',91.5,200101,to_date('2009-07-15 09-09-09','yyyy-mm-dd hh24-mi-ss'))
INSERT INTO TEST1_STUDENT_COURSE VALUES(201800020101,300002,92.6,200102,to_date('2009-7-15 10-10-10','yyyy-mm-dd hh24-mi-ss'))

 三、最终表示图

表1-1---TEST1_STUDENT

 表1-2---TEST1_COURSE

 表1-3---TEST1_STUDENT_COURSE

  • 30
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xixixiLucky

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值