当前位置: 首页 > news >正文

武清做网站的公司网页制作公司排名

武清做网站的公司,网页制作公司排名,网站开发记入什么会计科目,怎样建个网站多表查询 什么是多表查询 •DQL: 查询多张表,获取到需要的数据 •比如 我们要查询家电分类下 都有哪些商品,那么我们就需要查询分类与商品这两张表 数据准备 创建db3_2 数据库 -- 创建 db3_2 数据库,指定编码 CREATE DATABASE db3_2 CHARACTER SET utf8;创建分类表与商品表 …

多表查询
什么是多表查询
•DQL: 查询多张表,获取到需要的数据
•比如 我们要查询家电分类下 都有哪些商品,那么我们就需要查询分类与商品这两张表
数据准备

  1. 创建db3_2 数据库
-- 创建 db3_2 数据库,指定编码
CREATE DATABASE db3_2 CHARACTER SET utf8;
  1. 创建分类表与商品表
-- 分类表 (一方 主表)
CREATE TABLE category (cid VARCHAR(32) PRIMARY KEY ,cname VARCHAR(50)
);-- 商品表 (多方 从表)
CREATE TABLE products(pid VARCHAR(32) PRIMARY KEY ,pname VARCHAR(50),price INT,flag VARCHAR(2),      -- 是否上架标记为:1表示上架、0表示下架category_id VARCHAR(32),-- 添加外键约束FOREIGN KEY (category_id) REFERENCES category (cid)
);
  1. 插入数据
-- 分类数据
INSERT INTO category(cid,cname) VALUES('c001','家电');
INSERT INTO category(cid,cname) VALUES('c002','鞋服');
INSERT INTO category(cid,cname) VALUES('c003','化妆品');
INSERT INTO category(cid,cname) VALUES('c004','汽车');-- 商品数据
INSERT INTO products(pid, pname,price,flag,category_id) VALUES('p001','小米电视机',5000,'1','c001');
INSERT INTO products(pid, pname,price,flag,category_id) VALUES('p002','格力空调',3000,'1','c001');
INSERT INTO products(pid, pname,price,flag,category_id) VALUES('p003','美的冰箱',4500,'1','c001');INSERT INTO products (pid, pname,price,flag,category_id) VALUES('p004','篮球鞋',800,'1','c002');
INSERT INTO products (pid, pname,price,flag,category_id) VALUES('p005','运动裤',200,'1','c002');
INSERT INTO products (pid, pname,price,flag,category_id) VALUES('p006','T恤',300,'1','c002');
INSERT INTO products (pid, pname,price,flag,category_id) VALUES('p007','冲锋衣',2000,'1','c002');INSERT INTO products (pid, pname,price,flag,category_id) VALUES('p008','神仙水',800,'1','c003');
INSERT INTO products (pid, pname,price,flag,category_id) VALUES('p009','大宝',200,'1','c003');

笛卡尔积
交叉连接查询,因为会产生笛卡尔积,所以 基本不会使用
1)语法格式
•SELECT 字段名 FROM 表1, 表2;

2)使用交叉连接查询 商品表与分类表
•SELECT * FROM category , products;

3)观察查询结果,产生了笛卡尔积 (得到的结果是无法使用的)

4)笛卡尔积
假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。

多表查询之内连接查询
内连接的特点: 通过指定的条件去匹配两张表中的数据, 匹配上就显示,匹配不上就不显示
比如通过: 从表的外键 = 主表的主键 方式去匹配
隐式内链接
form子句 后面直接写 多个表名 使用where指定连接条件的 这种连接方式是 隐式内连接.
使用where条件过滤无用的数据

语法格式
•SELECT 字段名 FROM 左表, 右表 WHERE 连接条件;

1)查询所有商品信息和对应的分类信息

-- 隐式内连接 
SELECT * FROM products,category WHERE category_id = cid;
  1. 查询商品表的商品名称 和 价格,以及商品的分类信息
-- 可以通过给表起别名的方式, 方便我们的查询(有提示)
SELECT p.`pname`,p.`price`,c.`cname`
FROM products p , category c WHERE p.`category_id` = c.`cid`;
  1. 查询 格力空调是属于哪一分类下的商品
-- 查询 格力空调是属于哪一分类下的商品 
SELECT p.`pname`,c.`cname` FROM products p , category c 
WHERE p.`category_id` = c.`cid` AND p.`pid` = '格力空调';

显式内连接
使用 inner join …on 这种方式, 就是显式内连接
语法格式
•SELECT 字段名 FROM 左表 [INNER] JOIN 右表 ON 条件
(inner可以省略)

1)查询所有商品信息和对应的分类信息

-- 显式内连接查询
SELECT * FROM products p INNER JOIN category c ON p.category_id = c.cid;
  1. 查询鞋服分类下,价格大于500的商品名称和价格
-- 查询鞋服分类下,价格大于500的商品名称和价格-- 我们需要确定的几件事
-- 1.查询几张表 products & category
-- 2.表的连接条件 从表.外键 = 主表的主键
-- 3.查询的条件 cname = '鞋服' and price > 500
-- 4.要查询的字段 pname price SELECTp.pname,p.price
FROM products p INNER JOIN category c ON p.category_id = c.cid
WHERE p.price > 500 AND cname = '鞋服';

多表查询之外连接查询
左外连接
左外连接 , 使用 LEFT OUTER JOIN , OUTER 可以省略
左外连接的特点:
•以左表为基准, 匹配右边表中的数据,如果匹配的上,就展示匹配到的数据
•如果匹配不到, 左表中的数据正常展示, 右边的展示为null.
语法格式

SELECT 字段名 FROM 左表 LEFT [OUTER] JOIN 右表 ON 条件

SQL实现

-- 左外连接查询
SELECT * FROM category c LEFT JOIN products p  ON c.`cid`= p.`category_id`;

左外连接, 查询每个分类下的商品个数

-- 查询每个分类下的商品个数
/*1.连接条件: 主表.主键 = 从表.外键2.查询条件: 每个分类 需要分组3.要查询的字段: 分类名称, 分类下商品个数
*/
SELECT c.`cname` AS '分类名称',COUNT(p.`pid`) AS '商品个数' 
FROM category c LEFT JOIN products p ON c.`cid` = p.`category_id`
GROUP BY c.`cname`;

右外连接
右外连接 , 使用 RIGHT OUTER JOIN , OUTER 可以省略
右外连接的特点
•以右表为基准,匹配左边表中的数据,如果能匹配到,展示匹配到的数据。
•如果匹配不到,右表中的数据正常展示, 左边展示为null。

语法格式

SELECT 字段名 FROM 左表 RIGHT [OUTER ]JOIN 右表 ON 条件

-- 右外连接查询
SELECT * FROM products p RIGHT JOIN category c ON p.`category_id` = c.`cid`;

各种连接方式的总结

•内连接: inner join , 只获取两张表中 交集部分的数据。
•左外连接: left join , 以左表为基准 ,查询左表的所有数据, 以及与右表有交集的部分。
•右外连接: right join , 以右表为基准,查询右表的所有的数据,以及与左表有交集的部分。

http://www.ds6.com.cn/news/15588.html

相关文章:

  • 如何建b2c网站推广联系方式
  • 58同城做网站被骗荆门网络推广
  • 做外贸用什么搜索网站seo排名点击 seo查询
  • 张店政府网站建设公司百度有钱花人工客服
  • 光明区住房和建设局网站近期新闻大事
  • 电子商务网站建设核心app推广方式
  • 最靠谱的六个网上批发网站推广普通话演讲稿
  • 专门做布料的网站站长论坛
  • 兰州移动端网站建设优化游戏性能的软件
  • 电商网站开发人员配置怎么创建自己的网站
  • 本地的响应式网站建设创建网站要钱吗
  • 专业做网站排名多少钱百度怎么发帖做推广
  • 自己做企业网站爱站网关键词查询网站的工具
  • 医院网站信息化有哪些建设规范国内做seo最好公司
  • 哪个网站专业做饲料沈阳seo代理计费
  • 专做视频素材的网站深圳推广系统
  • 邯郸做移动网站报价百度热点榜单
  • 网站建设科技有限公司香飘飘奶茶软文
  • 网站的前端和后端做外贸怎么推广
  • 网站设计师的工作内容aso优化平台有哪些
  • 秦皇岛网站制作代理商快速seo关键词优化技巧
  • 企业网站制作流程图宁波网站推广平台效果好
  • 新疆电力建设有限公司网站百度提交入口地址在哪
  • 湖南省住房建设厅网站厦门百度seo公司
  • 做视频网站版权怎么解决app001推广平台
  • 建设一个自己的网站首页东莞seo建站推广费用
  • 刘涛给孩子网站做的广告seo首页关键词优化
  • 做任务给佣金的网站有哪些什么是关键词广告
  • 开源镜像网站怎么做竞价推广价格
  • aspcms手机网站怎么做推广平台