数据库_第二次实验

这篇博客主要介绍了数据库实验中涉及的四种操作:DQL(数据查询语言)、DML(数据操纵语言)、DDL(数据定义语言)和DCL(数据控制语言),探讨了它们的基本概念和区别。博主还分享了在处理数据时保留两位小数的技巧,提到了在使用round函数时的注意事项,并引用了相关文章来深入理解MySQL中的FORMAT、ROUND和TRUNCATE函数。此外,博客还讨论了如何在数据库中处理多人购买相同产品的情况。
摘要由CSDN通过智能技术生成
题目:

在这里插入图片描述
查阅资料:
在这里插入图片描述
贴个链接:DQL、DML、DDL、DCL的概念与区别

# 1. 用DDL语言创建上述3个表
CREATE TABLE 商品
(商品号 CHAR(3) PRIMARY KEY,
商品名 CHAR(20) NOT NULL,
单价 DOUBLE PRECISION,
商品类别 CHAR(5),
供应商 CHAR(20)
);
CREATE TABLE 顾客
(顾客号 CHAR(3) PRIMARY KEY,
姓名 CHAR(10) NOT NULL,
住址 CHAR(20)
);
CREATE TABLE 购买
(顾客号 CHAR(3),
商品号 CHAR(3),
购买数量 INT,
PRIMARY KEY (顾客号,商品号)
);
# 2. 用DML往表中插入数据
INSERT 
INTO 商品
VALUES 
('M01','佳洁士',8.00,'牙膏','宝洁'),
('M02','高露洁',6.50,'牙膏','高露洁'),
('M03','皓乐齿',13.70,'牙刷','盛势达'),
('M04','李宁牙刷',5.50,'牙刷','李宁'),
('M05','舒适达',28.80,'牙膏','舒适达'),
('M06','金号',11.30,'毛巾','金号织业');
INSERT
INTO 顾客
VALUES 
('C01','Dennis','海淀'),
('C02','John','朝阳'),
('C03','张三','新加坡'),
('C04','Robin','石家庄'),
('C05','李四','青岛'),
('C06','王五','沈阳');
INSERT 
INTO 购买
VALUES
('C01','M01',13),
('C01','M05',12),
('C03','M04',27),
('C05','M02',40),
('C06','M06',0);

结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

题目:

在这里插入图片描述
保留两位小数:

# 3. 将所有的“牙刷”商品单价下调10%
UPDATE 商品
SET 单价 = 单价*0.9
WHERE 商品类别 = '牙膏';
SELECT 商品号,商品名,ROUND(单价,2),商品类别,供应商
FROM 商品;

不能用百分数,会出错???

结果:
在这里插入图片描述

关于round函数,可以参考这篇:
Mysql 中 FORMAT、ROUND和TRUNCATE几个函数的区别

题目:

在这里插入图片描述

# 4. 将“李宁”供应商改为“Li Ning”
UPDATE 商品
SET 供应商 = 'Li Ning'
WHERE 供应商 = '李宁';
SELECT 商品号,商品名,ROUND(单价,2),商品类别,供应商
FROM 商品;

结果:
在这里插入图片描述

题目:

在这里插入图片描述
如果不同的人买相同的产品怎么求?

# 5. 删除所有卖出总数量少于20个的商品信息,不包括从没有卖出的商品
DELETE 
FROM 商品
WHERE 商品号 IN (
SELECT 商品号
FROM 购买
WHERE 商品.商品号 = 购买.商品号 AND 购买数量 < 20 AND 购买数量 != 0
);
SELECT *
FROM 商品;

结果:
在这里插入图片描述

题目:
在这里插入图片描述

# 6. 删除没有购买记录的商品,提示:不是指购买数量为0
DELETE 
FROM 商品
WHERE 商品号 NOT IN (
SELECT 商品号
FROM 购买
WHERE 购买数量 >= 0
);
SELECT *
FROM 商品;

结果:
在这里插入图片描述

题目:

在这里插入图片描述

# 7.创建包含顾客号,商品号,商品名称,单价,购买数量字段的视图
CREATE VIEW 顾客购买清单
AS
SELECT 顾客.顾客号,商品.商品号,商品名,单价,购买数量
FROM 顾客,商品,购买
WHERE 商品.商品号 = 购买.商品号 AND 顾客.顾客号 = 购买.顾客号;

结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值