MySQL多表查询

笛卡尔积:多表时查询的总记录为  多表记录之积。

n个表做连接时,连接条件至少为n-1个。

等值连接  不等值连接

外连接:

      左外连接: (+)放到右边,左边表不符合条件的记录也进行显示。

       右外连接:  (+)放到左边,右边表不符合条件的记录也进行显示。

 全连接:(99语法):from 表1  full join 表2 on 连接条件

自连接: 自己和自己做笛卡尔积,通过连接条件删选记录。

select1 union select2 取两个select去除重复的。

select1 union all select 不去除重复的。

select1 intersect select2 取交集

select1 minus select2 取差集。

sum() over(partion by) order by 可以不写  写不写注意区别。

row_number() over(partion by order by) order by 必须写

grouping sets((list),(list),(list)):跟在group by 之后,根据指定list分别进行分组计算。

null就是全表计算。

了解: cube() rollup()

rownum oracle 分页

select b.*

from ( select a.*, rownum r_num

from(

select e.* from emp e order bye.sal) a

) b

whereb.r_num >=5 and b.r_num<=10;

rowid:数据存放地址的表现形式

99语法:

    交叉连接: cross join

    自然连接: natural join

    using连接: 表1  join 表2  using (字段名) 注意字段名不包含表别名。

    on连接: 表1 join 表2 on 连接条件

                     join  表3 on 连接条件

  左外连接:  表1 left outer join 表2 on 连接条件。

  右外连接:  表1 right outer join 表2 on 连接条件

内连接 :    表1   inner  join  表2 on

增删改

     

增: 添加一行完整数据: insert into 表名 values (值1,值2,。。。);

            添加一行中指定列数据:

insert into 表名(列1,列2.。。。) values (值1,值2,。。。);

根据表结构拷贝数据:

insert into select 选择列表 from 1,表2where 连接条件

删: delete from 表名 where 条件

删除全表:delete from 表名; truncate table 表名(此方法更好);

删除重复数据:

delete from 1as a where rowid =select maxrowidfrom 1as b where a.某字段 =b. 某字段)

改: update 表名 set 1= 1,。。。where 过滤条件

顺序: fromwhere 最后set


事务的概念或者特征:

原子性 一致性 隔离性 持久性 (详见文档)

commitrollback






 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值