当前位置:   article > 正文

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

山东大学数据库实验

一、前置知识

1、创建表语法

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

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

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

 

3、插入数据

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

4、删除数据

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

 

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

实验内容

创建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。

  1. CREATE TABLE TEST1_STUDENT(
  2. sid CHAR(12) NOT NULL,
  3. name VARCHAR2(10) NOT NULL,
  4. sex CHAR(2),
  5. age INT,
  6. birthday DATE,
  7. dname VARCHAR2(30),
  8. class VARCHAR(10)
  9. )

1-2

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

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

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

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

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。

  1. CREATE TABLE TEST1_STUDENT_COURSE(
  2. sid CHAR(12) NOT NULL,
  3. cid CHAR(6) NOT NULL,
  4. score NUMERIC(5,1),
  5. tid CHAR(6),
  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')

  1. INSERT INTO TEST1_STUDENT VALUES(201800020101,'王欣','女',21,to_date('19940202','yyyymmdd'),'计算机学院','2010')
  2. 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、一次只能插入一行数据

  1. INSERT INTO TEST1_COURSE VALUES('300001','数据结构',null,2)
  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')

  1. 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'))
  2. 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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/473178
推荐阅读
相关标签
  

闽ICP备14008679号