数据库基础知识三
2022/1/11 2:04:50
本文主要是介绍数据库基础知识三,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、笛卡尔积(将两张表连成一张表的唯一途径)
2、真实表,由两个文件组成
.frm文件 定义表结构
.ibd文件 表数据
3、连表的2种方式
内连接 INNER JOIN
INNER JOIN 与 ON 最好成对出现
学生连接分数
SELECT * FROM student INNER JOIN score ON student.id=score.s_id;
外连接 outer join
分为左外连接和右外连接
SELECT * FROM student LEFT OUTER JOIN score ON student.id=score.s_id;
SELECT * FROM student RIGHT OUTER JOIN score ON student.id=score.s_id;
内连接与外连接的区别
1、内连接可以直接做笛卡尔积,外连接不能直接做笛卡尔积,后面必须跟上ON
2、内连接查询78条,外连接查询106条
create table if not exists category( id int unsigned primary key auto_increment, name varchar(32) not null, parentid int not null, type int not null, iconClass varchar(32) );
INSERT INTO category VALUES ('548', '化妆品', '0', '1', ''); INSERT INTO category VALUES ('628', '家用商品', '0', '1', ''); INSERT INTO category VALUES ('654', '面部护理', '548', '2', ''); INSERT INTO category VALUES ('655', '少女派', '654', '3', ''); INSERT INTO category VALUES ('656', '餐具', '628', '2', ''); INSERT INTO category VALUES ('657', '卫具', '628', '2', ''); INSERT INTO category VALUES ('658', '叉子', '656', '3', ''); INSERT INTO category VALUES ('659', '锅', '656', '3', ''); INSERT INTO category VALUES ('660', '进口食品,生鲜', '0', '1', ''); INSERT INTO category VALUES ('661', '零食/糖果/巧克力', '660', '2', ''); INSERT INTO category VALUES ('662', '坚果', '661', '3', ''); INSERT INTO category VALUES ('663', '蜜饯', '661', '3', ''); INSERT INTO category VALUES ('669', '孕期教育', '546', '3', ''); INSERT INTO category VALUES ('670', '电子商品', '0', '1', ''); INSERT INTO category VALUES ('671', '手机', '670', '2', ''); INSERT INTO category VALUES ('672', '华为手机', '671', '3', ''); INSERT INTO category VALUES ('673', '联想手机', '671', '3', ''); INSERT INTO category VALUES ('674', '手环', '670', '2', ''); INSERT INTO category VALUES ('675', '小米手环', '674', '3', ''); INSERT INTO category VALUES ('676', '保健食品', '0', '1', ''); INSERT INTO category VALUES ('677', '老年保健品', '676', '2', ''); INSERT INTO category VALUES ('678', '中年营养品', '676', '2', ''); INSERT INTO category VALUES ('679', '儿童保健品', '676', '2', ''); INSERT INTO category VALUES ('680', '脑白金', '677', '3', ''); INSERT INTO category VALUES ('681', '箱包', '0', '1', ''); INSERT INTO category VALUES ('682', '旅行箱', '681', '2', ''); INSERT INTO category VALUES ('683', '手提箱', '681', '2', ''); INSERT INTO category VALUES ('684', '大型', '683', '3', ''); INSERT INTO category VALUES ('685', '小型', '683', '3', ''); INSERT INTO category VALUES ('686', '中型', '683', '3', ''); INSERT INTO category VALUES ('687', '大型', '682', '3', ''); INSERT INTO category VALUES ('688', '中型', '682', '3', ''); INSERT INTO category VALUES ('689', '小型', '682', '3', ''); INSERT INTO category VALUES ('690', '电脑', '670', '2', ''); INSERT INTO category VALUES ('691', '联想电脑', '690', '3', ''); INSERT INTO category VALUES ('692', '刀叉', '656', '3', null); INSERT INTO category VALUES ('693', '碗筷', '656', '3', null); INSERT INTO category VALUES ('696', '客厅专用', '628', '2', '');
查询所有的一级分类
select * from category where type=1;
查询所有的一级分类对应的二级分类
做笛卡尔积
c1和c2 其实是一张表
父表(主表) - 一级分类表 1
子表(从表) - 二级分类表 N
谁是主就看谁的名字
select c2.name,c1.name from category c1 inner join category c2 on c1.parentid=c2.id // c1的外键 连 c2的主键 where c2.type=1;
select c1.name,c2.name from category c1 inner join category c2 on c1.id=c2.parentid where c1.type=1;
查询所有的一级分类对应的二级分类(包含没有二级分类的一级分类)
SELECT c1.name,c2.name FROM category c1 LEFT OUTER JOIN category c2 ON c1.id=c2.parentid WHERE c1.type=1;
查询 省 和 市
SELECT p1.name,p2.name FROM pca p1 RIGHT OUTER JOIN pca p2 ON p1.id=p2.parent_id WHERE p1.level=1
查询 省-市-区
SELECT p1.name,p2.name,p3.name FROM pca p1 INNER JOIN pca p2 ON p1.id=p2.parent_id INNER JOIN pca p3 ON p2.id=p3.parent_id
主键设置自增长 可以赋给它为空 但自增长会赋值
INSERT INTO category VALUES (null, '汽车生活', '0', '1', ''); INSERT INTO category VALUES (null, '保健养生', '0', '1', '');
4、表之间的关系
一对一的关系(可以设计为一张表,也可以设计为两张表)
一对多的关系(可以设计为一张表,也可以设计为两张表)
两张表:外键和所参考的字段不在一张表里,在另一张表里(两表连接)
一张表:自连接(外键和外键参考的主键在一张表里)A与A做笛卡尔积
多对多的关系(必须设计为三张表)
设计数据库时最重要的就是找数据关系
5、导入文件
在数据库中导入表文件
选中数据库右击选择运行SQL文件
在数据库中导入仓库
选中数据库新建数据库easybuy,选择easybuy数据库右击选择运行SQL文件 导入数据
6、对接上数据库
tomcat服务器跑起来 - 单机tomcat - 对接上数据库
vim /usr/local/tomcat/webapps/EasyBuy/WEB-INF/classes/database.properties
修改ip为数据库所在ip地址
退出保存重启,刷新浏览器即可连接到数据库
:wq! cd ../../../../bin ./shutdown.sh ./startup.sh
7、数据的输入与输出
输入(增/删/改):
用户输入数据 到 数据库
注册账号后,用户表中会有对应的数据
输出(查):
登录—个人中心—个人信息
登录管理员用户 admin 123456 加密过的密码
后台管理—一级分类–自动出来二级分类
数据库(中央仓库):是所有用户共享的
8、数据库的设计图 E-R图(Entity Relationship) 实体关系图
关系是做 逻辑推理的基础
这篇关于数据库基础知识三的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15JavaMailSender是什么,怎么使用?-icode9专业技术文章分享
- 2024-11-15JWT 用户校验学习:从入门到实践
- 2024-11-15Nest学习:新手入门全面指南
- 2024-11-15RestfulAPI学习:新手入门指南
- 2024-11-15Server Component学习:入门教程与实践指南
- 2024-11-15动态路由入门:新手必读指南
- 2024-11-15JWT 用户校验入门:轻松掌握JWT认证基础
- 2024-11-15Nest后端开发入门指南
- 2024-11-15Nest后端开发入门教程
- 2024-11-15RestfulAPI入门:新手快速上手指南