数据库实验一 数据库定义及数据导入
1.实验目的
理解和掌握数据库 DDL 语言,能够熟练使用 SQL DDL 语句,并能够完成数据导入。
2.实验内容和要求
理解和掌握 SQL DDL 语句的语法,特别是各种参数的具体含义和使用方法;使用 SQL 语句创建、修改和删除基本表;掌握 SQL 语句常见语法错误的调试方法;完成数据导入。
3.实验步骤
3.1使用菜单命令创建一个数据库 test
CREATE DATABASE test;
3.2在数据库 test 上定义下列基本表
表 1 地区表(region)
字段名 |
中文含义 |
类型 |
约束 |
regionkey |
地区编号 |
int |
主键 |
name |
地区名称 |
char(25) |
null |
comment |
备注 |
varchar(150) |
null |
表 2 国家表(nation)
字段名 |
中文含义 |
类型 |
约束 |
nationkey |
国家编号 |
int |
主键 |
name |
国家名称 |
char(25) |
null |
regionkey |
地区编号 |
int |
外键,参照 region 表的 regionkey |
comment |
备注 |
varchar(150) |
null |
表 3 供应商基本表(supplier)
字段名 |
中文含义 |
类型 |
约束 |
suppkey |
供应商编号 |
int |
主键 |
name |
供应商名称 |
char(100) |
null |
address |
供应商地址 |
varchar(100) |
null |
nationkey |
国家编号 |
int |
外键,参照 nation 表的 nationkey |
phone |
供应商电话 |
char(30) |
null |
acctbal |
供应商帐户余 额 |
numeric(12,2) |
null |
comment |
备注 |
varchar(100) |
null |
表 4 零件基本表(part)
字段名 |
中文含义 |
类型 |
约束 |
partkey |
零件编号 |
int |
主键 |
name |
零件名称 |
varchar(100) |
null |
mfgr |
制造厂 |
char(50) |
null |
brand |
品牌 |
char(50) |
null |
type |
零件类型 |
varchar(25) |
null |
size |
尺寸 |
int |
null |
container |
包装 |
char(10) |
null |
retailprice |
零售价格 |
numeric(8,2) |
null |
comment |
备注 |
varchar(20) |
null |
表 5 零件供应联系表(partsupp)
字段名 |
中文含义 |
类型 |
约束 |
备注 |
partkey |
零件编号 |
int |
外键,参照 part 表的 partkey |
partkey 和 suppkey 联合作为主键 |
suppkey |
供应商编号 |
int |
外 键 , 参 照 supplier 表 的 suppkey |
|
availqty |
可用数量 |
int |
null |
|
supplycost |
供应价格 |
numeric(10,2) |
null |
|
comment |
备注 |
varchar(200) |
null |
表 6 顾客表(customer)
字段名 |
中文含义 |
类型 |
约束 |
custkey |
顾客编号 |
int |
主键 |
name |
姓名 |
varchar(25) |
null |
address |
地址 |
varchar(40) |
null |
nationkey |
国家编号 |
int |
外键,来自 nation 表的 nationkey |
phone |
电话 |
char(30) |
null |
acctbal |
帐户余额 |
numeric(12,2) |
null |
mktsegment |
市场分区 |
char(10) |
null |
comment |
备注 |
varchar(100) |
null |
表 7 订单表(orders)
字段名 |
中文含义 |
类型 |
约束 |
orderkey |
订单编号 |
int |
主键 |
custkey |
顾客编号 |
int |
外 键 , 参 照 customer 表 的 Custkey |
orderstatus |
订单状态 |
char(1) |
null |
totalprice |
订单金额 |
numeric(10,2) |
null |
orderdate |
订单日期 |
date |
null |
orderpriority |
订单优先级别 |
char(15) |
null |
clerk |
记帐员 |
char(16) |
null |
shippriority |
运输优先级别 |
char(1) |
null |
comment |
备注 |
varchar(60) |
null |
表 8 订单明细表(lineitem)
字段名 |
中文含义 |
类型 |
约束 |
备注 |
orderkey |
订单编号 |
int |
外键, 参照 orders表的 orderkey |
orderkey 和 linenumber 联 合作为主键 |
partkey |
零件编号 |
int |
外键,参照 part 表 的 partkey |
partkey 和 suppkey 联 合参照 partsupp表 的 partkey 和 suppkey |
suppkey |
供应商编号 |
int |
外键,参照 supplier表的 suppkey |
|
linenumber |
订单明细编 号 |
int |
null |
|
quantity |
零件数量 |
int |
null |
|
extendedprice |
订单明细价 格 |
numeric(8,2) |
null |
|
discount |
折扣 |
numeric(3,2) |
null |
|
tax |
税率 |
numeric(3,2) |
null |
|
returnflag |
退货标记 |
char(1) |
null |
|
linestatus |
订单明细状 态 |
char(1) |
null |
|
shipdate |
装运日期 |
date |
null |
|
commitdate |
委托日期 |
date |
null |
|
receiptdate |
签收日期 |
date |
null |
|
shipinstruct |
装运说明 |
char(25) |
null |
|
shipmode |
装运方式 |
char(10) |
null |
|
comment |
备注 |
varchar(40) |
null |
新建表源代码:
CREATE TABLE region(regionkey INT PRIMARY KEY,name CHAR(25),comment VARCHAR(150)
);
CREATE TABLE nation(nationkey INT PRIMARY KEY,name CHAR(25),regionkey INT,comment VARCHAR(150),FOREIGN KEY(regionkey) REFERENCES region(regionkey)
);
CREATE TABLE supplier(suppkey INT PRIMARY KEY,name CHAR(100),address VARCHAR(100),nationkey INT,phone CHAR(30),acctbal NUMERIC(12,2),comment VARCHAR(100),FOREIGN KEY(nationkey) REFERENCES nation(nationkey)
);
CREATE TABLE part(partkey INT PRIMARY KEY,name VARCHAR(100),mfgr CHAR(50),brand CHAR(50),type VARCHAR(25),size INT,container CHAR(10),retailprice NUMERIC(8,2),comment VARCHAR(20)
);
CREATE TABLE partsupp(partkey INT,suppkey INT,availqty INT,supplycost NUMERIC(10,2),comment VARCHAR(200),PRIMARY KEY(partkey,suppkey),FOREIGN KEY(partkey) REFERENCES part(partkey),FOREIGN KEY(suppkey) REFERENCES supplier(suppkey)
);
CREATE TABLE customer(custkey INT PRIMARY KEY,name VARCHAR(25),address VARCHAR(40),nationkey INT,phone CHAR(30),acctbal NUMERIC(12,2),mktsegment CHAR(10),comment VARCHAR(100),FOREIGN KEY(nationkey) REFERENCES nation(nationkey)
);
CREATE TABLE orders(orderkey INT PRIMARY KEY,custkey INT,orderstatus CHAR(1),totalprice NUMERIC(10,2),orderdate DATE,orderpriority CHAR(15),clerk CHAR(16),shippriority CHAR(1),comment VARCHAR(60),FOREIGN KEY(custkey) REFERENCES customer(custkey)
);
CREATE TABLE lineitem(orderkey INT,partkey INT,suppkey INT,linenumber INT,quantity INT,extendedprice NUMERIC(8,2),discount NUMERIC(3,2),tax NUMERIC(3,2),returnflag CHAR(1),linestatus CHAR(1),shipdate DATE,commitdate DATE,receiptdate DATE,shipinstruct CHAR(25),shipmode CHAR(10),comment VARCHAR(40),PRIMARY KEY(orderkey,linenumber),FOREIGN KEY(partkey,suppkey) REFERENCES partsupp(partkey,suppkey)
);
3.3根据 qq 群里的“数据导入教程.rar”,把每个表的数据(.csv 格式)导入到建立的表里,导入顺序按照建表的顺序
实验数据(orders表的日期数据需要修改格式后使用,下面的链接中的已修改格式)
链接:https://pan.baidu.com/s/1PMH0_sg-ibD-Gzddfu9HWA
提取码:11yn
数据库实验一 数据库定义及数据导入相关推荐
- 数据库实验三——完整性定义与检查
数据库实验三--完整性定义与检查 一. 实验题目 二. 实验内容和要求 三. 实验步骤 (一) 实体完整性实验 1. 创建表时定义实体完整性 2. 创建表后定义实体完整性 3. 多个候选码时定义实体完 ...
- mysql数据库实验实训5,数据查询yggl数据库查询(详细)
数据库实验yggl数据库,实训5(详细版) 1.SELECT语句的基本使用: 1-1:查询employees 表的员工部门号和性别,要求消除重复行 select distinct '员工部门号','性 ...
- 数据库实验:数据库和表、查询、视图与安全性、存储过程及游标、触发器、综合实验-水果商店进阶
数据库实验:数据库和表.查询.视图与安全性.存储过程及游标.触发器.综合实验-水果商店进阶 实验一.数据库和表 源码1: 源码2: 小结 实验二.查询 源码 小结 实验三.视图.安全性 源码: 小结 ...
- Oracle 11g 数据库 实验7 数据库安全管理
Oracle 11g 数据库实验7 数据库安全管理 1.实验目的 (1)掌握Oracle数据库安全控制的实现. (2)掌握Oracle数据库用户管理. (3)掌握Oracle数据库权限管理. (4)掌 ...
- 数据库实验:数据库高级查询
数据库实验:数据库高级查询 实验过程 (1) IN 嵌套查询 (2) 单层EXISTS 嵌套查询 (3) FROM 子句中的嵌套查询 (4) 集合查询(交) (5) 集合查询(并) (6) 集合查询( ...
- 数据库 ----- 实验二:SQL的数据定义和数据更新
实验二 SQL的数据定义和数据更新 [实验目的和要求] 1.掌握SQL Server Management Studio中以SQL 命令方式和以向导方式操作表和数据的操作: 2.掌握SQL 的数据定义 ...
- 数据库实验7 数据库视图的定义与使用
实验7 数据库视图的定义与使用 7.1实验目的及要求 掌握视图的用法,加深对视图作用的理解 7.2实验内容 1.创建.修改和删除视图 2.利用视图进行查询 7.3实验步骤 7.3.1视图的创建(查看视 ...
- 数据库实验2 数据库安全性定义与检查
前言:记得验收时问了一个问题吧,就是用户和角色的区别是什么 实验2.1自主存取控制实验 1.实验目的 掌握自主存取控制权限的定义和维护方法. 2.实验内容和要求 定义用户.角色,分配权限给用户.角色, ...
- 数据库实验一 数据库定义
实验一 数据库定义 一.实验目的 理解和掌握数据库DDL语言,能够熟练使用SQL DDL语句创建.修改.删除数据库.模式和表,能够创建合适的索引以提高数据库查询效率. 二.实验内容和要求 1.创建学生 ...
最新文章
- php处理不确定笛卡尔积,PHP笛卡尔积实现算法示例
- 配置中心框架IConfCenter
- LVS-NAT搭建HTTP及HTTPS
- 【机器学习经典算法源码分析系列】-- 逻辑回归
- ThinkJS前端搭配vue时的Nginx配置
- 全国计算机等级考试题库二级C操作题100套(第74套)
- c语言基类型,C语言基本类型边界值
- 项目总结:华南师范大学校园开发教育android客户端总结
- 动态服务器以及WSGI
- Can't load AMD 64-bit .dll on a IA 32-bit platform
- 14. 调整数组顺序是奇数位于偶数前(C++版本)
- Spring Cloud 入门到进阶 - 01 Eureka 服务实例的健康自检 (下)
- android 状态栏高度多少像素,Android之获取屏幕的尺寸像素及获取状态栏标题栏高度...
- Reinforcement learning book 学习笔记 第一章
- 2022危险化学品生产单位安全生产管理人员考试题库及模拟考试
- 2015年度中国智能路由器市场监测报告
- 柯尼卡美能达复合机进入维修模式的方法大全
- 20211030.剪绳子
- 召回率与精确率的理解
- 华为笔试题--麻将和牌问题