博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常见mysql语句使用小结
阅读量:7259 次
发布时间:2019-06-29

本文共 1965 字,大约阅读时间需要 6 分钟。

hot3.png

原生的mysql操作语句,从基础上讲,还是比较简单的,但是其实做一般的二次开发,能够手写大部分原生的mysql语句,已经足够进行使用了。一般用多了框架的,反而会觉得写原生mysql很不方便,实际上原生mysql有很多其天然的优势——如果调用框架,你需要熟悉框架的封装语法,而原生mysql可以在绝大部分的场合都可以直接用,一般框架都是支持原生mysql直接执行的,第二个方面原生的mysql可以节省一些框架的流程解析时间,第三个方面,原生的mysql可以让我们更加理解mysql的一些内部操作。这里总结一些常用的mysql原生语句:

   SELECT 的常见用法:(一般大部分的命令都是select操作)

1.最常用的 select  *  from  example where id>100 order by id Asc limit 10;

   从例表里选取符合要求的进行顺序列表排序(基础版)

2.变种1:从列表里读取指定的字段 同时将指定字段转换成需要字段(as)

  Select aaaaaaa as  a ,bbbbbbbbb as b ,count(*) as  num from  example as  e  where id>100 order by id Asc limit 10;

   这样得到的结果集直接就是a b num 这种,不需要在php里面进行另外的赋值

3.变种2:从一个列表里找到符合另一个列表里对应列的值 

   Select e.aaaaaaa as a ,e.bbbbbbbbb as b   from  example   as  e  join example1  on  e.id=example1.id 

 (join分为left join join in  right join三种方式,常见的left join已经可以应付大部分开发的场合)

4.变种3:分页读取。分页读取的原理一个是读取偏移量,另一个是读取每页的总数量

  Select  *  from example where id>100 limit 100,10;

 从符合要求的查询里后的第100个开始,读取10个记录 (第一个值是偏移开始位置,第二个值是读取的数据记录)

5.变种4Having 的用法

   Select sum(aaaaaa)count(*),test from example  having test>100 group by b; 

  当条件里有统计函数的时候,where是没有用的,只能用having 

  读取按照b作为组别分别对列aaaaaa的叠加统计还有总个数的统计 having的条件需要在select写出来

6.变种5:从一个mysql里面读取一些字段插入到另外一张表里(这个也是常用的操作,主要场景:从一个数据库把数据移动到另外一个数据库)

   Insert into  b(aa,bb,cc) select aa,bb,cc from example;

将样表里面的所有数据取出三个插入到b表里面

7.like 读取包含对应字段的 一般包括like的在text里面不适合多条件组合查询,否则查询效率会很低,这个用法还是比较简单的

   Select  * from example where aaaaaa like %cets%;

     INSERT INTO

1.插入数据

Insert into  example(aa) values(dede);

UPDATE

 Update example set aaaaaa=12 where bbb=test;

DELETE

Delete from example where bbb=test

后面的三个用法变化比较单一,也非常容易掌握。大体而言,在常用的二次开发里,可以手写这些基本的mysql语句,能应付大部分的场合,不过mysql里面还有些经典的函数和变量,也需要掌握。

1.时间戳相关  读取当前时间的时间戳

unix_timestamp(now()) 

应用场景:需要对储存了时间戳进行时间对比,的时候,需要用到该方法

2.按照条件随机读取一定的数据

  SELECT * FROM phome_enewsdolog where  1=1  ORDER BY rand() LIMIT 10;

 应用场景:需要随机显示投放的广告在前端的时候要用到

3.将随机数据填充到mysql里面,进行性能测试

  FLOOR(RAND() * 10000) 随机生成1000以内的整数

 Update examples SET aaa=FLOOR(RAND()*10000)

  应用场景:需要随机生成一些随机价格数据

转载于:https://my.oschina.net/xiongyuanliang/blog/530298

你可能感兴趣的文章
进程监控工具supervisor 启动Mongodb
查看>>
React Native 重新建项目遇到的一些问题
查看>>
dede使用方法---如何调用指定栏目
查看>>
使用CAReplicatorLayer [1]
查看>>
Windows redis集群搭建
查看>>
卸载compiz后重新安装出现问题的解决
查看>>
cf591d
查看>>
jmap命令(Java Memory Map)(转)
查看>>
2015年终总结
查看>>
设计模式六大原则(2):里氏替换原则(Liskov Substitution Principle)
查看>>
【大数据笔记】白话详解Zookeeper的一致性
查看>>
第五话-依赖倒转原则
查看>>
native2ascii 在 Mac终端的转码
查看>>
#308 (div.2) A. Vanya and Table
查看>>
'hibernate.dialect' must be set when no Connection available
查看>>
证明哈夫曼编码是最优的
查看>>
iOS消息机制
查看>>
bootstrap基础学习二篇
查看>>
Java抽象类与接口的区别
查看>>
数值的整数次方
查看>>