美文网首页
SQL二刷(语法)

SQL二刷(语法)

作者: 山猪打不过家猪 | 来源:发表于2023-02-05 17:21 被阅读0次

1.inner join 和 left join 区别

image.png

总结:

  • inner join只会满足所有连表条件的符合的数据;
  • left jion只会满足sql语句左边表的条件查询,右表没有的则为空;(把左表当作主表,把右表中的字段匹配到左表中来,左表匹配不上的数据用null来填充)
  • 例子:查询2号下单的用户在3号的复购情况,计算复购率,复购金额,只算完成订单;取出所有女性用户的计算
select count(t0.user_id) as base_cnt, count(t1.user_id) as rentention_cnt, count(t1/user_id)/count(t0.user_id) as retention_rate_id
(select dt,user_id from oder_data.orders where dt = '20221202' group by dt,user_id) t0 left join (select dt,user_id from order_data.orders where dt = '20221203' group by dt,user_id) t1 on t0.user_id = t1.user_id

2. 索引设计原则

2.1什么情况需要建立索引
    1. 索引不是越多越好①需要空间②需要维护,增加了逻辑后,需要从新编排
  • 2.什么时候需要索引
    ①数据大于20w(1-2个)
    ②主键一定要建(如id)
    ③外键一定要
    ④经常查询的列
    ⑤经常作查询条件的列
    ⑥经常在order by,group by,distinct 后面的的列
    ⑦重复值比较多的不要建立(如,性别)
    ⑧数据类型为 text,image,bit 不能建立
    ⑨经常存取的列不需要建立(可以使用读写分离)
2.2 创建索引
image.png
  • 语法


    image.png
create index i_account_outAmount on Account(OutAmount)

创建后500w数据的查询语句,从9秒变成0.1秒


image.png
image.png

3. 事务

pass

4. T-SQL编程

4.1 变量和赋值
image.png
#定义
declare @name varchar(20), @age int
#赋值方法1
set @name='fxx'
set @age=18
#赋值方法2
select @age=18,@name = 'fxx'
##输出
select @age as fxx_age,@name as fxx_name
4.2 逻辑控制
  • begin ....end 相当于花括号
#交换两个数的值
declare @x int,@y int,@z int 
set @x = 3
set @y =100
begin 
    set @z = @x
    set @x = @y
    set @y = @z
end
select @x x,@y y
  • if 判断
if (select count(*) from score) >0
begin
    print '考试人数大于0'
end

相关文章

  • 数据库学习线路图

    SQL 语法教程 SQL 教程SQL 简介SQL 语法SQL Select选择SQL SELECT DISTINC...

  • SQL 语法大全

    SQL 语法大全 标签(空格分隔): SQL DB2 SQL语法大全 SQL SELECT SQL SELECT ...

  • 关于MySQL中sql_mode

    一. sql_mode的作用: sql_mode直接影响到SQL语法检查条件 二. 关于Mysql 的版本: My...

  • sql语句执行顺序

    Oracle sql语句执行顺序 sql语法的分析是从右到左一、sql语句的执行步骤:1)语法分析,分析语句的语法...

  • sql99语法连接查询

    二、sql99语法 /*语法:select 查询列表from 表1 别名 【连接类型】join 表2 别名on 连...

  • sql99语法

    二、sql99语法 /*语法:select 查询列表from 表1 别名 【连接类型】join 表2 别名on 连...

  • Presto查询执行过程

    Presto中SQL运行过程 Coordinator接到SQL后,通过SQL语法解析器把SQL语法解析变成一个抽象...

  • sql

    sql经典语句经典SQL语句大全(绝对的经典) - 浪迹天涯芳草 - 博客园 sql语法SQL语句查询语句完整语法...

  • SQL语法之二

    UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 ...

  • SQL语法详解(二)

网友评论

      本文标题:SQL二刷(语法)

      本文链接:https://www.haomeiwen.com/subject/rzczhdtx.html