mysql逻辑删除语句怎么写_MySQL:物理删除,逻辑删除,子查询,增删改查【诗书画唱】...

本文演示了MySQL数据库中如何进行逻辑删除操作,包括创建表、插入数据、更新与修改数据、级联删除以及联合查询。通过示例展示了如何修改商品信息、用户信息和购物车记录,并探讨了如何处理购买数量、商品剩余数量等问题。
摘要由CSDN通过智能技术生成

fa9efaa53e3933bc5414557b02797d27.png

89357920386a15f42aa9969c99bbe7a7.png

11afbd7fc8ebe72a9f4272b50d1a0437.png

1.使用sql语句创建三张表:

create table  sp(

spid int primary key auto_increment,

spname   varchar(100) not null unique,

spjinhuojia float default 0,

spchushoujia float default 0,

spshengchanriqi timestamp default current_timestamp,

spbaozhiqi timestamp ,

spshuliang int default 0,

spbeizhu text

)

create table yonghu(

yhid int primary key auto_increment,

yhuname varchar(100) not null unique,

yhpwd varchar(100) not null ,

yhname varchar(100) not null unique

)

create table dingdan(

did int primary key auto_increment,

yhid int,

spid int,

spbuynum  int default 0,

foreign key(yhid ) references yonghu(yhid ) on delete cascade,

foreign key(spid) references  sp(spid) on delete cascade

)

--drop table dingdan

2.使用insert语句给以上表分别插入10条数据

insert into sp (spname ,

spjinhuojia ,

spchushoujia ,

spshengchanriqi,

spbaozhiqi ,

spshuliang ,

spbeizhu

) values('可口可乐',1.3,2.5,'2000-07-07','2000-07-07',2,'好吃'),

('苹果1',1.3,2.5,'2000-07-07','2000-07-07',2,'好吃'),

('苹果',1.3,2.5,'2000-07-07','2000-07-07',2,'好吃')

,('苹果2',1.3,2.5,'2000-07-07','2000-07-07',2,'好吃')

,('苹果3',1.3,2.5,'2000-07-07','2000-07-07',2,'好吃')

,('苹果4',1.3,2.5,'2000-07-07','2000-07-07',2,'好吃')

,('苹果5',1.3,2.5,'2000-07-07','2000-07-07',2,'好吃')

,('苹果6',1.3,2.5,'2000-07-07','2000-07-07',2,'好吃')

,('苹果7',1.3,2.5,'2000-07-07','2000-07-07',2,'好吃')

,('苹果8',1.3,2.5,'2000-07-07','2000-07-07',2,'好吃')

,('苹果9',1.3,2.5,'2000-07-07','2000-07-07',2,'好吃')

,('苹果10',1.3,2.5,'2000-07-07','2000-07-07',2,'好吃')

————————————

常用(用于测试语句是否有用等)的语句:

select * from sp

select * from dingdan

--drop table dingdan

--drop table yonghu

--drop table sp

select * from yonghu

——————————

--【数据插入的顺序要注意,按照下面我写的顺序插入数据等】

insert into yonghu (

yhuname ,

yhpwd  ,

yhname

) values

('诗书画唱用户名2','pwd','真名2')

,('诗书画唱用户名3','pwd','真名3')

,('诗书画唱用户名4','pwd','真名4')

,('诗书画唱用户名5','pwd','真名5')

,('诗书画唱用户名6','pwd','真名6'),

('诗书画唱用户名7','pwd','真名7')

,('诗书画唱用户名8','pwd','真名8')

,('诗书画唱用户名9','pwd','真名9')

,('诗书画唱用户名10','pwd','真名10')

,('诗书画唱用户名1','pwd','真名1')

insert into dingdan(

yhid,

spid,

spbuynum ) values

(1,2,3)

,(2,2,3)

,(3,2,3)

,(4,2,3)

,(5,2,3)

,(6,2,3)

,(7,2,3)

,(8,2,3)

,(9,2,3)

,(10,2,3)

3.修改商品表商品编号为3的商品名称为可口可乐

update sp set sp.spname='可口可乐' where sp.spid=3

--【设置了商品名称唯一,就不可以改成同名的内容,有要改同名等的名称等,就要先删掉】

--delete from sp where spname='可口可乐'

4.修改用户表用户编号为5的用户姓名为“钟无艳”

update yonghu set yhname='钟无艳' where yhid=5

5.修改购物车表商品订单编号为3的数量为10

--要有订单编号为3,这个语句才有用,所以有时用drop table dingdan

update dingdan set spbuynum=10  where did=3

6.添加钟无艳购买可口可乐的记录,购买数量为5

insert into dingdan(yhid,

spid,spbuynum) values((select yhid  from yonghu where yhname ='钟无艳'),

(select spid from  sp where spname ='可口可乐'),5)

7.修改钟无艳购买可口可乐的数量为10

update dingdan set  spbuynum=10  where yhid=(select yhid  from yonghu

where yhname ='钟无艳') and spid=(select spid from  sp where spname ='可口可乐')

8.修改购买数量大于5的商品为可口可乐

update dingdan set spid =(select spid from sp where spname='可口可乐') where spbuynum>5

9.修改用户编号为3的用户购买商品为可口可乐的数量为5

update dingdan set spbuynum=5 where spid =(select spid from sp where spname='可口可乐')  and yhid=3

10.修改商品剩余数量为0的购买数量为0

update dingdan set spbuynum=0 where spid =(select spid from sp where spshuliang=0)

11.删除商品可口可乐,要求级联删除

delete from sp where spname='可口可乐'

12.删除商品剩余数量大于为0的商品购买记录

delete from sp where spshuliang>0

13.删除用户编号为3的用户信息,购买记录

delete from dingdan where yhid=3

14.联合查询3张表

select * from sp   inner join dingdan on sp.spid=dingdan.spid inner join yonghu on yonghu.yhid=dingdan.yhid

15.查询3张表显示购买记录编号,购买的名称,商品价格,购买的用户姓名,

购买数量和单件商品总价格

select did,spname, spchushoujia,yhname,spbuynum, spjinhuojia  from sp

inner join dingdan on sp.spid=dingdan.spid inner join yonghu on yonghu.yhid=dingdan.yhidc1dd17e38e36e0cc5eff0bfa25f1991c.png

f01f1db9ec2ae42d2f27b335eac89e1e.png

58faa86b8499f1b52471cff74bc23546.png

76c7b29c92368e725248ca8b344867e6.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值