(三)数据库设计 思路

数据库设计流程

需求分析 - 设计ER图 - 转换成 数据库模型图 和 数据表

开发流程模型

瀑布模型 - 数据库设计 

螺旋模型 - 网站开发

E-R图

也称实体-联系图(Entity Relationship Diagram),

提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型

实体

属性

主键属性用下划线标

允许有空值

复合属性

多值属性

关系

办公电脑用员工编号和员工对应

多对多关系需要新建一个关系表

 

CRUD操作

表加前缀t_ , 比如  t_student

视图加前缀v_ , 比如  v_student

运行sql文件

打开Navicat - 数据库 - 右键 - 运行sql文件

 

如果违反了主键约束或唯一约束,就更新ip

(这里id为主键,empno和ip为唯一约束)

insert into t_emp_ip(id, empno, ip) values
(1, 8001, "192.168.19.31"),
(2, 8002, "192.168.19.6"),
(3, 8003, "192.168.19.66"),
(4, 8004, "192.168.19.54")
on duplicate key update ip=values(ip);

mysql插入多条记录,有一条错误,事务回滚,都写不进去

加上ignore 关键字,会自动忽略错误操作,不影响别的操作

insert ignore into t_emp_ip(id, empno, ip) values
(1, 8001, "192.168.19.31"),
(2, 8002, "192.168.19.6"),
(3, 8003, "192.168.19.66"),
(4, 8004, "192.168.19.54");

 表连接

  • 表连接查询

mysql数据库默认关闭缓存,所以每个子查询都是相关子查询

相关子查询就是循环执行多次的查询

SELECT empno, ename 
FROM t_emp 
WHERE sal > (SELECT sal FROM t_emp WHERE empno = 7499) 
AND empno != 7499;

用 from子查询 代替 where子查询 ,提高性能,from 是确认数据来源的,只执行一次

SELECT e.empno, e.ename 
FROM t_emp e
JOIN (SELECT sal FROM t_emp WHERE empno = 7499) t
ON e.sal > t.sal AND empno != 7499;

内连接用 ON 或 WHERE效果相同

SELECT e.ename, d.dname FROM t_emp e JOIN t_dept d ON e.deptno = d.deptno
AND d.deptno=10;

SELECT e.ename, d.dname FROM t_emp e JOIN t_dept d ON e.deptno = d.deptno
WHERE d.deptno=10;

 外连接 比如 LEFT JOIN,左表会完全显示,用WHERE就不会了

  • 表连接更新
相关子查询更新
UPDATE t_emp SET sal=10000 
WHERE deptno=(SELECT deptno FROM t_dept	WHERE dname='SALES');

表连接更新
UPDATE t_emp e JOIN t_dept d ON e.deptno=d.deptno
AND d.dname='SALES'
SET e.sal=10000, d.dname="销售部";
  • 表连接删除

delete 后接的 表示删除哪个表中符合条件的数据 

DELETE e, d FROM t_emp e JOIN t_dept d ON e.deptno=d.deptno
AND d.dname='销售部';

事务

事务是一个或多个sql语句组成的整体,要么全成功,要么全失败

SPU

Standard Product Unit:标准化产品单元

产品表:比如iphone11

商品表:多少GB内存的Iphone11

淘宝搜索iphone11时,先搜索产品表,找到id,再根据id搜索商品表的商品,显示出来

SKU

库存保有单位 (Stock keeping Unit)

SKU可以简单的理解为每个商品的属性:颜色/尺码等信息

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值