mysql2--SELECT--多表联查
来源:互联网 发布:c语言的关键字有哪些 编辑:程序博客网 时间:2024/05/20 05:25
我是在大二的时候学的数据库,没有专心听过。最近辞职了,想捡起来。
前段时间去一个面试,问到我多表联查相关的,我发现自己进度不行了,最基础的都不会~弱爆了
今天总结多表联查!!!耶耶耶
排版希望后期整理
【重点】:找准表与表之间的联系
【方法】
笛卡尔积:
内连接: 查询两个表中符合连接条件的记录。内用得多!!! 语法:SELECT 字段名称,...FROM tbl_name1 INNER JOIN tbl_name2 ON 连接条件 【例子】 SELECT e.id,e.username,e.age,d.depname FROM emp AS emp INNER JOIN dep AS d ON e.depid=d.id;外连接: 左外连接/右连接(左连接:左边为主,右边为从) (左连接)先显示左表的全部记录,再去右表查询符合条件的记录,不符合的以null代替 语法:SELECT 字段名称,...FROM tbl_name1 RIGHT/LEFT OUTER JOIN tbl_name2 ON 连接条件 【例子】 SELECT e.id,e.username,e.age,d.depname FROM emp AS e RIGHT OUTER JOIN dep AS d ON e.depid=d.id;
【建表】省份表,管理员表,商品分类表,商品表
省份表,管理员表,关系是管理员的地域和省份的id有关系
商品分类表,商品表,商品分类的id在商品表中的分类id有联系
管理员表,商品表,管理员id和商品中的adminid有联系
–省份表
CREATE TABLE shengfen(
id TINYINT UNSIGNED AUTO_INCREMENT KEY ,
proname VARCHAR(20) NOT NULL UNIQUE
);
INSERT shengfen(proname) VALUES(‘北京’),(‘武汉’),(‘成都’),(‘深圳’),(‘重庆’);
–管理员表(id,名字,邮箱,地区,)
CREATE TABLE admin(
id TINYINT UNSIGNED AUTO_INCREMENT KEY ,
name VARCHAR(10) NOT NULL,
email VARCHAR(20) NOT NULL DEFAULT’575656786qq.com’,
proid TINYINT UNSIGNED NOT NULL
);
INSERT admin(name,proid)
VALUES(‘张三’,2),(‘李四’,5),(‘王二’,3),(‘麻子’,1),(‘隔壁老王’,5),(‘滚蛋’,4),(‘小芳’,2);
–商品分类(id,分类名称,分类描述)
CREATE TABLE cate(
id TINYINT UNSIGNED AUTO_INCREMENT KEY ,
catename VARCHAR(10) NOT NULL,
catedesc VARCHAR(50) NOT NULL DEFAULT ”
);
INSERT cate(catename) VALUES(‘母婴’);
INSERT cate(catename) VALUES(‘电器’);
INSERT cate(catename) VALUES(‘食品’);
INSERT cate(catename) VALUES(‘男装’);
INSERT cate(catename) VALUES(‘女装’);
INSERT cate(catename) VALUES(‘药品’);
–商品表(id,价格,名字,cateid、)
CREATE TABLE products(
id TINYINT UNSIGNED AUTO_INCREMENT KEY ,
name VARCHAR(10) NOT NULL,
price FLOAT(8,2) NOT NULL ,
cateid TINYINT UNSIGNED NOT NULL,
adminid TINYINT UNSIGNED NOT NULL
);
INSERT products(name,price,cateid) VALUES(‘感康’,15,6),(‘尿不湿’,88,1),
(‘巧克力’,20,3),(‘牛仔裤’,255,4),(‘超短裙’,600,5),(‘电视机’,5001,2);
【实例】
–修改省份的名字
mysql> UPDATE shengfen SET proname=’帝都’ WHERE id =1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
回显
mysql> SELECT * FROM shengfen;
+—-+———+
| id | proname |
+—-+———+
| 1 | 帝都 |
| 2 | 武汉 |
| 3 | 成都 |
| 4 | 深圳 |
| 5 | 重庆 |
+—-+———+
5 rows in set (0.00 sec)
–查询省份表中管理员的信息
mysql> SELECT s.id,s.proname,a.name,a.email,a.proid
-> FROM shengfen AS s
-> JOIN admin AS a
-> ON s.id=a.proid;
回显
+—-+———+————–+—————–+——-+
| id | proname | name | email | proid |
+—-+———+————–+—————–+——-+
| 2 | 武汉 | 张三 | 575656786qq.com | 2 |
| 5 | 重庆 | 李四 | 575656786qq.com | 5 |
| 3 | 成都 | 王二 | 575656786qq.com | 3 |
| 1 | 帝都 | 麻子 | 575656786qq.com | 1 |
| 5 | 重庆 | 隔壁老王 | 575656786qq.com | 5 |
| 4 | 深圳 | 滚蛋 | 575656786qq.com | 4 |
| 2 | 武汉 | 小芳 | 575656786qq.com | 2 |
+—-+———+————–+—————–+——-+
–查询管理员中a.username,a.email;商品p.id,p.name,p.price;
商品分类c.catename,并且按照商品价格降序排列
SELECT a.name,a.email,p.id,p.name,p.price,c.catename
FROM admin AS a
JOIN products AS p
ON a.id=p.adminid
JOIN cate AS c
ON p.cateid =c.id
ORDER BY p.price DESC;
+————–+—————–+—-+———-+———+———-+
| name | email | id | name | price | catename |
+————–+—————–+—-+———-+———+———-+
| 张三 | 575656786qq.com | 6 | 电视æœ | 5001.00 | 电器 |
| 李四 | 575656786qq.com | 5 | 超短è£ | 600.00 | 女装 |
| 滚蛋 | 575656786qq.com | 4 | 牛仔è£ | 255.00 | 男装 |
| 隔壁老王 | 575656786qq.com | 2 | 尿不æ¹ | 88.00 | 母婴 |
| 麻子 | 575656786qq.com | 3 | 巧克åŠ | 20.00 | 食品 |
| 小芳 | 575656786qq.com | 1 | 感康 | 15.00 | 药品 |
+————–+—————–+—-+———-+———+———-+
只显示(2,3)
SELECT a.name,a.email,p.id,p.name,p.price,c.catename
FROM admin AS a
JOIN products AS p
ON a.id=p.adminid
JOIN cate AS c
ON p.cateid =c.id
ORDER BY p.price DESC
LIMIT 2,3;
+————–+—————–+—-+———-+——–+———-+
| name | email | id | name | price | catename |
+————–+—————–+—-+———-+——–+———-+
| 滚蛋 | 575656786qq.com | 4 | 牛仔è£ | 255.00 | 男装 |
| 隔壁老王 | 575656786qq.com | 2 | 尿不æ¹ | 88.00 | 母婴 |
| 麻子 | 575656786qq.com | 3 | 巧克åŠ | 20.00 | 食品 |
+————–+—————–+—-+———-+——–+———-+
- mysql2--SELECT--多表联查
- MySQL2
- mysql2
- mysql2
- MySQL2
- MySQL2
- mySQL2
- MySQL2
- rails 3 安装 mysql2
- 第七天(Mysql2)
- rails3 mysql2安装
- mysql2 及path配置
- ruby连接mysql2数据库
- ruby安装mysql2模块
- NodeJS mysql2 使用心得
- MYSQL2字段属性
- DAY45 数据库--MySQL2
- ruby 安装和使用 mysql2
- sql server 2002连接oracle 11G
- Jeecg-3.7 部署tomcat第一次运行相关问题处理
- [Leetcode] Binary tree -- 501. Find Mode in Binary Search Tree
- 先锋机器人ROS入门rosaria + 无线遥控
- kali linux on android 更新源
- mysql2--SELECT--多表联查
- shiro 学习
- Sklearn库中Kmeans聚类技术
- springboot 构建(一)初步搭建springboot
- zookeeper集群脚本启动与停用
- Python学习 ——enumerate函数
- C++ 虚函数表解析
- IDEA 配置lombok
- 《Drools7.0.0.Final规则引擎教程》第4章 global全局变量