mysql进阶

本文深入探讨了MySQL中的表关系,包括一对一、一对多、多对多的实现方式,并提供了修改表和复制表的方法。此外,详细介绍了单表查询中的group by、聚合函数、拼接字符串等操作,以及多表连接查询的各种类型,如内连接、左连接等。通过实例讲解,帮助读者深化对MySQL查询的理解。
摘要由CSDN通过智能技术生成

mysql表关系

https://www.cnblogs.com/bypp/p/7755307.html

创建Mysql表:User用户表,Order订单表,Orderdetail订单详情,item商品表

一个用户对应多个订单,一个订单只能对应一个用户;一个订单对应多个订单详情,一个订单详情只对应一个订单;一个订单详情只对应一个商品,一个商品可以包括在多个订单详情中;所以,用户和商品之间是多对多关系

CREATE TABLE user (
  id bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客户id(主键)',
  username varchar(32) NOT NULL COMMENT '客户名称',
  birthday date DEFAULT NULL COMMENT '客户生日',
  sex char(1) DEFAULT NULL COMMENT '客户性别',
  address varchar(256) DEFAULT NULL COMMENT '客户地址',
  PRIMARY KEY (id)
) 
CREATE TABLE orders (
  id bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客户id(主键)',
  user_id bigint(32) NOT NULL COMMENT '下单客户id(外键)',
  number varchar(32) NOT NULL COMMENT '订单号',
  createtime datetime NOT NULL COMMENT '创建时间',
  note varchar(32) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (id),
  KEY FK_user (user_id),
  CONSTRAINT FK_user FOREIGN KEY (user_id) REFERENCES user (id)
) 
CREATE TABLE orderdetail (
  id bigint(32) NOT NULL AUTO_INCREMENT COMMENT 'id(主键)',
  order_id bigint(32) NOT NULL COMMENT '订单id',
  item_id bigint(32) NOT NULL COMMENT '商品id',
  item_num bigint(32) DEFAULT NULL COMMENT '商品购买数量',
  PRIMARY KEY (id),
  KEY order_id (order_id),
  KEY orderdetail_ibfk_2_idx (item_id),
  CONSTRAINT orderdetail_ibfk_1 FOREIGN KEY (order_id) REFERENCES orders (id),
  CONSTRAINT orderdetail_ibfk_2 FOREIGN KEY (item_id) REFERENCES item (id)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8
CREATE TABLE item (
  id bigint(32) NOT NULL AUTO_INCREMENT COMMENT 'id(主键)',
  name varchar(32) NOT NULL COMMENT '商品名称',
  price float(10,1) NOT NULL COMMENT '商品价格',
  detail text COMMENT '商品描述',
  pic varchar(512) DEFAULT NULL COMMENT '商品图片',
  createtime datetime DEFAULT NULL COMMENT '生产日期',
  PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8

一对一

一张表的一条记录一定只能与另外一张表的一条记录进行对应,反之亦然。

比如:用户和订单编号

1)表结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值