Oracle 您所在的位置:网站首页 测试数据表 Oracle

Oracle

2024-02-09 07:36| 来源: 网络整理| 查看: 265

上一篇👉:Oracle-----检查约束&外键约束&修改约束

总目录👉震惊!史上最菜的Oracle 11g教程(大佬勿进)

文章目录 1、开发要求2、具体内容2.1 数据表的创建2.1.1 编写数据库的脚本 2.2 测试数据的编写2.2.1 增加商品信息2.2.2 增加顾客信息2.2.3 增加购买记录

🚴大家好!我是近视的脚踏实地,这篇文章主要是来完成一个DML&DDL的综合案例,这篇主要是数据表的创建以及增加测试数据,后边进行查询实战      唯有行动  才能解除你所有的不安

1、开发要求

现有一个商店的数据库,记录顾客及其购物情况,由下面三个表组成:      ●商品product (商品号productid,商品名productname,单价unitprice,商品类别category,供应商provider);      ●顾客customer (顾客号customerid, 姓名name, 住址location);      ●购买purcase (顾客号customerid, 商品号productid, 购买数量quantity);      每个顾客可以购买多件商品,每件商品可以被多个顾客购买。属于多对多的关系。

使用SQL语言完成下列功能: 1、 建表,在定义中要求声明如下约束:      (1)、每个表的主外键;      (2)、顾客的姓名和商品名不能为空值:      (3)、单价必须大于0,购买数量必须在0到20之间;。

2、往表中插入数据:       商品( M01, 佳洁士,8.00, 牙膏,宝洁;            M02,高露洁,6.50, 牙膏,高露洁;            M03,洁诺,5.00, 牙膏,联合利华;            M04,舒肤佳,3.00, 香皂,宝洁;            M05,夏士莲,5.00, 香皂,联合利华;            M06,雕牌,2.50, 洗衣粉,纳爱斯            M07,中华,3.50, 牙膏,联合利华;            M08,汰渍,3.00, 洗衣粉,宝洁;            M09,碧浪,4.00, 洗衣粉,宝洁;)

      顾客( C01, Dennis, 海淀;            C02,John, 朝阳;            C03,Tom, 东城;            C04,Jenny, 东城;            C05,Rick, 西城;)

      购买(            C01,M01,3;            C01, M05,2;            C01,M08,2;            C02,M02,5;            C02,M06,4;            C03,M01,1;            C03,M05,1; .            C03,M06,3;            C03,M08,1;            C04,M03,7;            C04,M04,3;            C05,M06,2;            C05,M0I,8;)

3、用SQL语句完成下列查询: (1)、求购买了供应商"宝洁"产品的所有顾客; (2)、求购买的商品包含了顾客“Dennis"所购买的所有商品的顾客(姓名); (3)、求牙膏卖出数量最多的供应商。

4、数据更新

(1)、将所有的牙膏商 品单价增加10%。

(2)、删除从未被购买的商品记录。

2、具体内容 2.1 数据表的创建

对于数据表的创建需要考虑的问题在于数据类型的选择。列的数据类型通过具体的数据来进行推出。

2.1.1 编写数据库的脚本

范例1: 编写数据库的脚本 在这里插入图片描述

-- 删除数据表 drop table purcase purge; drop table product purge; drop table customer purge; -- 创建数据表 create table product( -- 创建商品表 productid varchar2(5), -- 商品号 productname varchar2(20) not null, -- 商品名 unitprice number, -- 单价 category varchar2(20), -- 商品类别 provider varchar2(50), -- 供应商 constraint pk_product primary key(productid),-- 设置主键约束 constraint ck_unitprice check(unitprice>0) -- 设置检查约束 ); create table customer( -- 创建顾客表 customerid varchar2(5), -- 顾客号 name varchar2(20) not null, -- 姓名 location varchar2(50), -- 住址 constraint pk_customer primary key(customerid) -- 设置主键约束 ); create table purcase( -- 创建购买表 customerid varchar2(5), -- 顾客号 productid varchar2(5), -- 商品号 quantity number, -- 购买数量 constraint fk_customerid foreign key(customerid) references customer(customerid)on delete cascade, -- 设置外建以及级联删除 constraint fk_product foreign key(productid) references product(productid)on delete cascade, -- 设置外键以及级联删除 constraint ck_quantity check(quantity between 0 and 20) -- 设置检查约束 );

整个的创建过程都是按照学习过的语法进行的,特别需要主要是:设置为外键的字段在主表之中必须是主键或者唯一约束。

那么可以直接使用@命令导入,也可以直接复制粘贴到命令行中,我这里是导入(导入方式保存文件时选择ANSI编码,否则会乱码),可以多执行几次确保没问题了👇: 在这里插入图片描述

2.2 测试数据的编写 2.2.1 增加商品信息

范例1: 增加商品信息

insert into product(productid,productname,unitprice,category,provider)values('M01','佳洁士',8.00,'牙膏','宝洁'); insert into product(productid,productname,unitprice,category,provider)values('M02','高露洁',6.50,'牙膏','高露洁'); insert into product(productid,productname,unitprice,category,provider)values('M03','洁诺',5.00,'牙膏','联合利华'); insert into product(productid,productname,unitprice,category,provider)values('M04','舒肤佳',3.00,'香皂','宝洁'); insert into product(productid,productname,unitprice,category,provider)values('M05','夏士莲',5.00,'香皂','联合利华'); insert into product(productid,productname,unitprice,category,provider)values('M06','雕牌',2.50,'洗衣粉','纳爱斯'); insert into product(productid,productname,unitprice,category,provider)values('M07','中华',3.50,'牙膏','联合利华'); insert into product(productid,productname,unitprice,category,provider)values('M08','汰渍',3.00,'洗衣粉','宝洁'); insert into product(productid,productname,unitprice,category,provider)values('M09','碧浪',4.00,'洗衣粉','宝洁');

在这里插入图片描述

2.2.2 增加顾客信息

范例2: 增加顾客信息

-- 插入顾客测试数据 insert into customer(customerid,name,location)values('C01','Dennis','海淀'); insert into customer(customerid,name,location)values('C02','John','朝阳'); insert into customer(customerid,name,location)values('C03','Tom','东城'); insert into customer(customerid,name,location)values('C04','Jenny','东城'); insert into customer(customerid,name,location)values('C05','Rick','西城');

在这里插入图片描述

2.2.3 增加购买记录

范例3: 增加购买记录

--插入购买测试数据 insert into purcase(customerid,productid,quantity)values('C01','M01',3); insert into purcase(customerid,productid,quantity)values('C01','M05',2); insert into purcase(customerid,productid,quantity)values('C01','M08',2); insert into purcase(customerid,productid,quantity)values('C02','M02',5); insert into purcase(customerid,productid,quantity)values('C02','M06',4); insert into purcase(customerid,productid,quantity)values('C03','M01',1); insert into purcase(customerid,productid,quantity)values('C03','M05',1); insert into purcase(customerid,productid,quantity)values('C03','M06',3); insert into purcase(customerid,productid,quantity)values('C03','M08',1); insert into purcase(customerid,productid,quantity)values('C04','M03',7); insert into purcase(customerid,productid,quantity)values('C04','M04',3); insert into purcase(customerid,productid,quantity)values('C05','M06',2); insert into purcase(customerid,productid,quantity)values('C05','M07',8);

在这里插入图片描述 最后一定要提交事务;如果事务不提交,那么session一旦关闭数据就消失了

commit;

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 那么数据表和测试数据都准备好了,下一篇就来进行数据的查询实战!

完整的脚本shopping.sql

-- 删除数据表 drop table purcase purge; drop table product purge; drop table customer purge; -- 创建数据表 create table product( -- 创建商品表 productid varchar2(5), -- 商品号 productname varchar2(20) not null, -- 商品名 unitprice number, -- 单价 category varchar2(20), -- 商品类别 provider varchar2(50), -- 供应商 constraint pk_product primary key(productid),-- 设置主键约束 constraint ck_unitprice check(unitprice>0) -- 设置检查约束 ); create table customer( -- 创建顾客表 customerid varchar2(5), -- 顾客号 name varchar2(20) not null, -- 姓名 location varchar2(50), -- 住址 constraint pk_customer primary key(customerid) -- 设置主键约束 ); create table purcase( -- 创建购买表 customerid varchar2(5), -- 顾客号 productid varchar2(5), -- 商品号 quantity number, -- 购买数量 constraint fk_customerid foreign key(customerid) references customer(customerid)on delete cascade, -- 设置外建以及级联删除 constraint fk_product foreign key(productid) references product(productid)on delete cascade, -- 设置外键以及级联删除 constraint ck_quantity check(quantity between 0 and 20) -- 设置检查约束 ); -- 插入商品测试数据 insert into product(productid,productname,unitprice,category,provider)values('M01','佳洁士',8.00,'牙膏','宝洁'); insert into product(productid,productname,unitprice,category,provider)values('M02','高露洁',6.50,'牙膏','高露洁'); insert into product(productid,productname,unitprice,category,provider)values('M03','洁诺',5.00,'牙膏','联合利华'); insert into product(productid,productname,unitprice,category,provider)values('M04','舒肤佳',3.00,'香皂','宝洁'); insert into product(productid,productname,unitprice,category,provider)values('M05','夏士莲',5.00,'香皂','联合利华'); insert into product(productid,productname,unitprice,category,provider)values('M06','雕牌',2.50,'洗衣粉','纳爱斯'); insert into product(productid,productname,unitprice,category,provider)values('M07','中华',3.50,'牙膏','联合利华'); insert into product(productid,productname,unitprice,category,provider)values('M08','汰渍',3.00,'洗衣粉','宝洁'); insert into product(productid,productname,unitprice,category,provider)values('M09','碧浪',4.00,'洗衣粉','宝洁'); -- 插入顾客测试数据 insert into customer(customerid,name,location)values('C01','Dennis','海淀'); insert into customer(customerid,name,location)values('C02','John','朝阳'); insert into customer(customerid,name,location)values('C03','Tom','东城'); insert into customer(customerid,name,location)values('C04','Jenny','东城'); insert into customer(customerid,name,location)values('C05','Rick','西城'); --插入购买测试数据 insert into purcase(customerid,productid,quantity)values('C01','M01',3); insert into purcase(customerid,productid,quantity)values('C01','M05',2); insert into purcase(customerid,productid,quantity)values('C01','M08',2); insert into purcase(customerid,productid,quantity)values('C02','M02',5); insert into purcase(customerid,productid,quantity)values('C02','M06',4); insert into purcase(customerid,productid,quantity)values('C03','M01',1); insert into purcase(customerid,productid,quantity)values('C03','M05',1); insert into purcase(customerid,productid,quantity)values('C03','M06',3); insert into purcase(customerid,productid,quantity)values('C03','M08',1); insert into purcase(customerid,productid,quantity)values('C04','M03',7); insert into purcase(customerid,productid,quantity)values('C04','M04',3); insert into purcase(customerid,productid,quantity)values('C05','M06',2); insert into purcase(customerid,productid,quantity)values('C05','M07',8); -- 提交事务 commit;

下一篇👉Oracle-----DML&DDL的综合案例(数据查询以及数据更新实战)

本篇博客到这就完啦,非常感谢您的阅读🙏,如果对您有帮助,可以帮忙点个赞或者来波关注鼓励一下喔😬 ,嘿嘿👀



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有