• 数据表连接


    -- 交叉连接 笛卡尔积
    SELECT * from emp02 join dept;
    -- 内连接  找出(过滤)在交叉连接的结果表中的表1的字段1的值等于表2的字段2的值的那些行。
    SELECT * from emp02 join dept on emp02.did=dept.did;
    SELECT * from emp02 join dept where emp02.did=dept.did;
    -- 查询小红的部门经理
    select mgr from emp02 join dept on emp02.did=dept.did where ename='小红';
    -- 查询小蓝的部门电话
    select phone from emp02 join dept on emp02.did=dept.did where ename='小兰';

    -- 左外连接 内连接的查询结果+左表中不满足条件的数据,对应右边中字段自动补null
    select * from product_type left join product on product.protype_id=product_type.protype_id;
    -- 右外连接 内连接的查询结果+右表中不满足条件的数据,对应左边中字段自动补null
    select *from product right join product_type on product.protype_id=product_type.protype_id;
    -- 找出索尼4g手机所属类别名称
    select protype_name from product join product_type on product.protype_id=product_type.protype_id where pro_name like('索尼%4G手机%');
    select protype_name from  product_type where protype_id in (select protype_id from product where  pro_name like '索尼%4G手机%' )
    -- 找出属于手机的数码产品
    select pro_name from product join product_type on product.protype_id=product_type.protype_id where protype_name='手机数码';
    select * from product where protype_id in (select protype_id  from product_type where
    protype_name='手机数码');
    /*子查询 把一个查询的结果当做另一个查询条件
     先按照条件查询主键
     再根据另一张表的外键查结果*/
    -- 找出所有带电 字类别的产品

    select pro_name from product where protype_id in (SELECT protype_id from product_type where protype_name like '%电%')

    union 联合查询     [ALL | DISTINCT]     order  by .....  limit ....;

    (select pro_name from product where protype_id in (SELECT protype_id from product_type where protype_name like '%电%') )union distinct(select  pro_name  from product join product_type on product.protype_id=product_type.protype_id where protype_name like '%电%')
    order by pro_name desc
    -- LIMIT 0,4;
    LIMIT 4,4;

    -- 创建副表product表
    create table product(
    	pro_id int primary key auto_increment,
    	pro_name varchar(40),
    	protype_id int,
    	price double,
    	pinpai varchar(20),
    	chandi varchar(20),
    	constraint ft_product_product_type foreign key (protype_id) references product_type(protype_id)
    );
    -- 创建主表product_type
    create table product_type(
    	protype_id int primary key auto_increment,
    	protype_name varchar(20)
    );
    -- 添加主表数据
    insert into product_type (protype_name) vaLUES('家用电器');
    insert into product_type (protype_name) vaLUES('手机数码');
    insert into product_type (protype_name) vaLUES('电脑办公');
    insert into product_type (protype_name) vaLUES('图书音像');
    insert into product_type (protype_name) vaLUES('家具家居');
    insert into product_type (protype_name) vaLUES('服装配饰');
    insert into product_type (protype_name) vaLUES('个护化妆');
    insert into product_type (protype_name) vaLUES('运动户外');
    insert into product_type (protype_name) vaLUES('汽车用品');
    insert into product_type (protype_name) vaLUES('食品酒水');
    insert into product_type (protype_name) vaLUES('营养保健');
    -- 副表添加数据
    insert into product (pro_name,protype_id,price,pinpai,chandi)values('康佳(KONKA)42英寸全高清液晶电视',1,1999,'康佳','深圳');
    insert into product (pro_name,protype_id,price,pinpai,chandi)values('索尼(SONY)4G手机(黑色)',2,3238,'索尼','深圳');
    insert into product (pro_name,protype_id,price,pinpai,chandi)values('海信(Hisense)55寸智能电视',1,4199,'海信','青岛');
    insert into product (pro_name,protype_id,price,pinpai,chandi)values('联想(Lenovo)14.0英寸笔记本电脑',3,5499,'联想','北京');
    insert into product (pro_name,protype_id,price,pinpai,chandi)values('索尼(SONY)13.3英寸触控超极本',3,11499,'索尼','天津');
    insert into product (pro_name,protype_id,price,pinpai,chandi)values('索尼(SONY)60英寸全高清液晶电视',1,6999,'索尼','北京');
    insert into product (pro_name,protype_id,price,pinpai,chandi)values('联想(Lenovo)14.0英寸笔记本电脑',3,2999,'联想','北京');
    insert into product (pro_name,protype_id,price,pinpai,chandi)values('联想 双卡双待3G手机',2,988,'联想 ','北京');
    insert into product (pro_name,protype_id,price,pinpai,chandi)values('惠普(HP)黑白激光打印机',3,1169,'惠普','天津');
    -- 左外连接 内连接的查询结果+左表中不满足条件的数据,对应右边中字段自动补null
    select * from product_type left join product on product.protype_id=product_type.protype_id;
    -- 右外连接 内连接的查询结果+右表中不满足条件的数据,对应左边中字段自动补null
    select *from product right join product_type on product.protype_id=product_type.protype_id; 
    -- 找出索尼4g手机所属类别名称
    select protype_name from product join product_type on product.protype_id=product_type.protype_id where pro_name like('索尼%4G手机%');
    select protype_name from  product_type where protype_id in (select protype_id from product where  pro_name like '索尼%4G手机%' )
    -- 找出属于手机的数码产品
    select pro_name from product join product_type on product.protype_id=product_type.protype_id where protype_name='手机数码';
    select * from product where protype_id in (select protype_id  from product_type where
    protype_name='手机数码');
    /*子查询 把一个查询的结果当做另一个查询条件
    	先按照条件查询主键
    	再根据另一张表的外键查结果*/
    -- 找出所有带电 字类别的产品
    (select pro_name from product where protype_id in (SELECT protype_id from product_type where protype_name like '%电%') )union distinct(select  pro_name  from product join product_type on product.protype_id=product_type.protype_id where protype_name like '%电%')
    order by pro_name desc 
    -- LIMIT 0,4;
    LIMIT 4,4;
    select *from product;
    select *from product_type; 
    

      

  • 相关阅读:
    表单元素的required,autocomplete,list用法
    通用triggerEvent方法
    通用addEventListener方法
    关于动态加载js
    Node路由简单的处理
    As3截图转换为ByteArray传送给后台node的一种方法
    JS中的“==”符号及布尔值转换规则
    解释JS变量作用域的范例
    .NET异步委托
    正则表达式入门
  • 原文地址:https://www.cnblogs.com/zqy6666/p/11978596.html
Copyright © 2020-2023  润新知