SQL 语句小Demo

这篇文章主要总结一些,常用的SQL语句,方便以后用的上直接复制粘贴

建表

create table users(
    id int(11) primary key not null auto_increment,
    name varchar(255) default '' not null,
    email varchar(255) default '' not null,
    password varchar(255) default '' not null,
    updated_at timestamp() default '2019-04-16 10:01:03' not null,
    created_at timestamp() default '2019-04-16 10:01:03' not null
);

limit

LIMIT是MySQL内置函数,其作用是用于限制查询结果的条数

1)其语法格式如下:

LIMIT[位置偏移量,]行数

其中,中括号里面的参数是可选参数,位置偏移量是指MySQL查询分析器要从哪一行开始显示,索引值从0开始,即第一条记录位置偏移量是0,第二条记录的位置偏移量是1,依此类推...,第二个参数为“行数”即指示返回的记录条数。

位置偏移量可以理解为跳过前xx条记录(元组).

/*当没有指定位置偏移量时,只取4条时,可以这样写*/

SELECT FROM YourTableName LIMIT 4;

 

/*当指定了位置偏移量时,从第3条起取4条时,可以这样写*/

/*因为索引是从0开始计数的,所以第3条对应的索引就是2*/

SELECT FROM YourTableName LIMIT 2,4;

 

修改表名

-- 修改表名, TO 或AS都可以,也以省略掉
-- ALTER TABLE 表名 RENAME [TO|AS] 新表名
ALTER TABLE user10 RENAME TO user11;

 

修改主键AUTO_INCREMENT 的指定起始值

  1. 建表时

1

create table tname(...)AUTO_INCREMENT = 起始值

  2.   建表后

1

alter table tname AUTO_INCREMENT = 大于已有的自动增长的ID值

 

联表查询 JOIN, LEFT JOIN , RIGHT JOIN,FULL  JOIN 的区别:

SELECT b.*,al.name as level_name,aa.name as area_name 
         from basic as b     
      LEFT JOIN agent as a ON b.id=a.bid 
      LEFT JOIN agent_level as al ON b.level=al.id 
      LEFT JOIN agent_area as aa ON b.area_id=aa.id
      WHERE type=1;

 

1.inner join,在两张表进行连接查询时,只保留两张表中完全匹配的结果集。 

2.left join,在两张表进行连接查询时,会返回左表所有的行,即使在右表中没有匹配的记录。右表中没有的字段自动填充NULL。

3.right join,在两张表进行连接查询时,会返回右表所有的行,即使在左表中没有匹配的记录。

4.full join,在两张表进行连接查询时,会返回左表和右表中所有没有匹配的行。查询结果是left join和right join的并集。

 

 

 

统计当月成功的订单金额:

SELECT SUM(`total_price`) AS tp_sum FROM `order` WHERE  `created_at` BETWEEN '2019-07-17 00:00:00' AND '2019-07-18 00:00:00'  AND `status` = 1

统计当月成功的订单金额: 

SELECT SUM(`total_price`)  FROM `order` WHERE  `created_at` BETWEEN '2019-07-01 00:00:00' AND '2019-08-01 00:00:00'  AND `status` = 1;

统计当年成功的订单金额

SELECT SUM(`total_price`) AS tp_sum FROM `order` WHERE  `created_at` BETWEEN '2019-01-01 00:00:00' AND '2020-01-01 00:00:00'  AND `status` = 1

 

LIKE 模糊查询

 

记录用户输入的关键词,然后按出现次数最多的来推荐到搜索列表展示给用户。

SELECT COUNT(title) as count,title FROM `search_history` GROUP BY title ORDER BY COUNT(title) DESC LIMIT 0,6;

 

 

 SQL  给查询为空的字段,赋予默认值为0;

IFNULl() 函数。

SELECT IFNULL(sum(wg.num),0) as sum  FROM `weixin_linda_orders` AS wo JOIN weixin_linda_order_goods AS wg ON wo.id = wg.order_id WHERE `createtime` >= '{$start}' AND `createtime` <= '{$end}' AND wg.goods_id = {$row->id}

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值