Oracle | 您所在的位置:网站首页 › 测试数据表 › Oracle |
上一篇👉: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 实验室设备网 版权所有 |