java第二十六课

数据库多表
多表做到每个表的字段名称不一样
Mysql 关系数据库
结合到商城:
用户表 订单表 商品表 商品详情表
用户表:
字段:
用户 id:唯一标志用户
用户名称:name
用户性别:sex
用户年龄:age
用户地址:position
用户密码:password

删除标志位: is_delete
版本号:version
审核标志位:addcheck

注意:事务有 4 种隔离机制,读未提交,读已提交,可重复读,串行

默认:可重复读
商品表:(商品定位)酒
商品编号:唯一化,主键 字母+数字 varchar
商品名称 name
保质期: quality
厂址:area
食品添加剂:additives
生产许可证编号: permit
配料表: ingredients
品牌: brand
度数:alcohol
售价:(总价)total
秒杀价:(有秒杀活动时) seckill
打折价:(店庆,打折)Discount

是否删除:is_delete
版本:version
检查:addcheck

建立的关系表,商品表和用户表,在商品表不需要有用户,用户表不需要商品表
订单表(重点字段)
订单编号: 主键 id varcha
订单合价:total double
用户编号: user_id int(与用户表一致)
订单状态: order_status int(0,1,2,3) 数组(买家已付款,
卖家已发货,买家已收货,评价)
订单详情表(必须通过订单找到商品)
订单详情编号: 主键
订单编号: 关系主键(通过订单编号找订单)
商品编号: 关系主键(通过商品编号找商品)

小计: 只算每个详情中内容
如果甲表和乙表之间是一对一,乙表和甲表是一对多,两表的关系是一对多,一对多的关系把外键(关系主键)定在一的数据中,放在订单详情中.
用户表和订单表两表之间互相关系是一对一,一对多.把外键(主键关系)放在一的数据中,一个订单对应一个用户,订单表里有用户的外键.
表设计(元素):唯一性(记录唯一),原子性( 重复数据达到最小)
不建外键,数据表中存在冗余数据,造成数据乱了.

建立外键,使用 foreign key(本表中的需要外键指示的字段)
references 外面表的名称(外面表的外键字段)
create table 中做,不然就得修改.
删除表:
Drop table 表名
建立外键,订单的本表中的 user_id 指向外表 user 表中的 id
create table myorder(id varchar(20) primary key,total double(6,2),user_id int,order_status int, foreign key(user_id)
references user(id));
建表时带关系主键不能进行删除,把用户删除操作变成表中
的关联操作 ,有一个删除级联操作 on delete cascade
create table myorder(id varchar(20) primary key,total
double(6,2),user_id int,order_status int, foreign key(user_id)
references user(id) on delete cascade);
还有一个问题,如果更新是 id,建的表进行更新时也会报
错.
create table myorder(id varchar(20) primary key,total
double(6,2),user_id int,order_status int, foreign key(user_id)
references user(id) on delete cascade on update cascade);

建立外键完整语句,就是建立删除级联,更新级联,外键关
联全部包含在内.在开发,增删改就是单表.
create table myorder(id varchar(20) primary key,total

double(6,2),user_id int,order_status int, version int, is_delete
tinyint,foreign key(user_id) references user(id) on delete

cascade on update cascade);


多表联查
查询用户赵六购买的所有商品和订单.
分析:
(1) 查询涉及到几个表
用户―>订单 ——>订单详情―>商品
找到表后,先完成四个表的连接,
关联: 用户 订单,订单表中 user_id 指向 user id订单 订单详情 myorder id 指向 myorder_detail
order_id
订单详情 订单详情 myorder_detail goods_id 指向goods 中的 id
用 where 的条件把四个表连接在一起,from 后面是四个表
Select * from user a,myorder b,myorder_detail c,goods d
where
a. id=b.user_id and b.id=c.order_id and c.goods_id =d.id
(2)输出内容(找到表,找到字段)
要求输出商品和订单,还要注意条件中的用户名, 商品所有内容输出 d.* 订单表的所有内容 b.*
Select a.username,d.*,b.* from user a,myorder

b,myorder_detail c,goods d where
b. id=b.user_id and b.id=c.order_id and c.goods_id =d.id
(3)给定其他条件(有没有排序,order by,有没有分组 group by),这里用户等于赵六
Select a.username,d.*,b.* from user a,myorder
b,myorder_detail c,goods d where
c. id=b.user_id and b.id=c.order_id and c.goods_id =d.id and
a.username=”赵六”
当前测试环境初始化的数据,语句保留,使用 navigate 导出表格创建和初始化语句.现在需要把环境从测试环境到生产环境.
一个命令一粘贴,所有数据全部初始化结束.
Mysql –uroot –padmin <beifen.sql

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/188153.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++相关闲碎记录(2)

1、误用shared_ptr int* p new int; shared_ptr<int> sp1(p); shared_ptr<int> sp2(p); //error // 通过原始指针两次创建shared_ptr是错误的shared_ptr<int> sp1(new int); shared_ptr<int> sp2(sp1); //ok 如果对C相关闲碎记录(1)中记录的shar…

【brpc学习实践十三】基于brpc的redis client的实现

brpc支持了redis协议,提供了相关redis访问接口,充分利用了bthread,可以坐到比hiredis更高效。 brpc redis与hiredis的对比 相比使用hiredis(官方client)的优势有: 线程安全。用户不需要为每个线程建立独立的client。支持同步、异步、批量同步、批量异步等访问方式,能使用…

智慧机场视频监控系统方案:AI智能助力机场智慧运营

一、方案背景 随着人们生活物质水平的上升&#xff0c;人们对机场的需求也日益增多&#xff0c;在民航新建、迁建、扩建机场项目猛增的同时&#xff0c;也需同步配备相应的安防监控系统&#xff0c;以满足民航机场安全管理要求和机场运营业务的高速发展。 二、方案概述 智慧机…

C# 适配器模式

适配器模式是一种结构型设计模式&#xff0c;它可以将一个或多个不兼容的接口适配成客户端期望的接口。在 C# 中&#xff0c;适配器模式通常采用类适配器或对象适配器的方式实现。 下面是一个简单的类适配器示例&#xff1a; 首先&#xff0c;定义一个客户端期望的目标接口&a…

【2023第十二届“认证杯”数学中国数学建模国际赛】A题 太阳黑子预报完整解题思路

A题 太阳黑子预报 题目任务思路分析第一问第二问第三问 题目 太阳黑子是太阳光球上的一种现象&#xff0c;表现为比周围区域更暗的临时斑点。它们是由于磁通量集中而导致表面温度降低的区域&#xff0c;磁通量的集中抑制了对流。太阳黑子出现在活跃区域内&#xff0c;通常成对…

MySQL 教程 1.4

MySQL 连接 使用mysql二进制方式连接 您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库。 实例 以下是从命令行中连接mysql服务器的简单实例&#xff1a; [roothost]# mysql -u root -p Enter password:****** 在登录成功后会出现 mysql> 命令提示窗…

Redis7--基础篇6(复制replica)

1. 复制(replica)介绍 Redis数据库支持主从复制&#xff0c;master以写为主&#xff0c;slave以读为主&#xff0c;当master数据变化的时候&#xff0c;自动将新的数据异步同步到slave数据库。 实现读写分离、容灾恢复、数据备份、水平扩容支撑高并发。 2. 案例演示 2.1 架构…

知虾如何选品丨如何使用知虾进行选品和优化策略

在Shopee平台上作为卖家&#xff0c;如何进行选品和优化策略是一个至关重要的问题。而知虾作为一个为Shopee卖家提供数据分析的工具&#xff0c;可以帮助您更好地进行选品和优化策略。在本文中&#xff0c;我们将介绍如何使用知虾进行选品&#xff0c;并提供一些建议和步骤。 知…

powershell获取微软o365 21v日志

0x00 背景 o365 21v为o365的大陆版本&#xff0c;主要给国内用户使用。微软提供了powershell工具和接口获取云上日志。微软o365国内的代理目前是世纪互联。本文介绍如何用powershell和配置证书拉取云上日志。 0x01 实践 第一步&#xff0c;ip权限开通&#xff1a; 由世纪互联…

enumerate函数(python)

enumerate()函数是Python内置函数之一&#xff0c;用于给可迭代对象&#xff08;如列表、元组、字符串等&#xff09;添加一个索引&#xff0c;并以迭代器的形式返回。 enumerate()函数的语法如下&#xff1a; enumerate(iterable, start0)参数说明&#xff1a; iterable&am…

MFC、VC++操作excel后,excel程序进程无法正常退出的非暴力处理方法

先说处理方式 1、最low的方式&#xff1a;强制结束进程 //打开进程得到进程句柄 HANDLE hProcessOpenProcess(PROCESS_ALL_ACCESS,FALSE,Pid); if(hProcess!NULL) { //结束进程 if (TerminateProcess(hProcess,0)){printf("结束进程成功\n");return 0;} }这种方式…

Linux中的Swap和Mem:有什么区别?

在Linux系统中&#xff0c;内存管理是操作系统的重要部分。在内存管理方面&#xff0c;Swap和Mem是两种不同的内存类型&#xff0c;它们在Linux系统中发挥着不同的作用。本文将解释Swap和Mem的区别以及它们在Linux系统中的作用。 一、Swap Swap是Linux系统中的交换分区&#…

Python datetime 字符串 相互转 datetime

字符串转 datetime from datetime import datetime# 定义要转换的日期时间字符串 dt_str "2021-09-30 15:48:36"# 使用datetime.strptime()函数进行转换 dt_obj datetime.strptime(dt_str, "%Y-%m-%d %H:%M:%S") print(dt_obj)datetime 转字符串 from …

python 制作3d立体隐藏图

生成文件的3d图&#xff0c;例子&#xff1a; 文字&#xff1a; 隐藏图&#xff1a; 使用建议&#xff1a; &#xff11;、建议不用中文&#xff0c;因为中文太复杂&#xff0c;生成立体图效果不好。 &#xff12;、需要指定FONT_PATH&#xff0c;为一个ttf文件&#xff0c;…

【微服务 SpringCloudAlibaba】实用篇 · Nacos配置中心

微服务&#xff08;6&#xff09; 文章目录 微服务&#xff08;6&#xff09;1. 统一配置管理1.1 在nacos中添加配置文件1.2 从微服务拉取配置 2. 配置热更新2.1 方式一2.2 方式二 3. 配置共享1&#xff09;添加一个环境共享配置2&#xff09;在user-service中读取共享配置3&am…

【ICCV2023论文阅读】XNet(能跑通代码)

这里写目录标题 论文阅读摘要介绍方法overviewwhy use wavelet transform?融合方法用于全监督分割和半监督分割可行性分析 效果局限性总结 代码跑通去掉分布式训练生成低频和高频图片产生数据集改读取数据的位置损失函数添加自己数据集的信息结果 ps:我现在不知道自己研究方向…

用分布函数定义的随机变量的独立性的合理性

随机变量的独立性是这样定义的&#xff1a; 如果对任意 x , y x, y x,y 都有 P { X ≤ x , Y ≤ y } P { X ≤ x } P { Y ≤ y } P\{X\leq x,Y\leq y\} P\{X\leq x \}P\{Y\leq y\} P{X≤x,Y≤y}P{X≤x}P{Y≤y} 即 F ( x , y ) F X ( x ) F Y ( y ) F(x,y)F_X(x)F_Y(y) F…

Codeforces Round 911 (Div. 2)(C~E)(DFS、数论(容斥)、SCC缩点 + DAG图上DP)

​​​​​​1900C - Anjis Binary Tree 题意&#xff1a; 凯克西奇一直被安吉冷落。通过一个共同的朋友&#xff0c;他发现安吉非常喜欢二叉树&#xff0c;于是决定解决她的问题&#xff0c;以引起她的注意。Anji 给了 Keksic 一棵有 n个顶点的二叉树。顶点 1 是根&#xff…

【错误记录】Python 错误集合

Python 错误集合 文章目录 Python 错误集合TypeError: list object cannot be interpreted as an integer python 常见错误集合&#xff1a;持续更新 TypeError: ‘list’ object cannot be interpreted as an integer map [ [1, 1, 1, 1, 1, 1, 1, 0, 1, 1],[1, 0,…

利用异或、取反、自增bypass_webshell_waf

目录 引言 利用异或 介绍 eval与assert 蚁剑连接 进阶题目 利用取反 利用自增 引言 有这样一个waf用于防御我们上传的文件&#xff1a; function fun($var): bool{$blacklist ["\$_", "eval","copy" ,"assert","usort…