• 01 数据库sql


    1, 关于mysql,常去的地方有:https://www.yiibai.com/mysql, http://tool.oschina.net/apidocs/apidoc?api=mysql-5.1-zh, mysql中文网。

    mysql里东西很多,反而redis的东西并不多,作为一名后端程序员,不断地去学习mysql是必要的。

    2. 先看看mysql的基础数据类型,https://www.yiibai.com/mysql/data-types.html,实际建表的时候会用到,类型无非就是 数字,布尔,字符,日期,等这些,

    如果数字很大,考虑用bigint,   char和vchar的区别,一个是固定长度,不够会补0,一个是按实际长度来,对于保存用户昵称,最好用uft8bm4格式,日期保存,我一般用时间戳。其他的日期类型有空再研究吧。

    mysql后面也支持json类型了。

    3. sql语句

    基本的sql语句必须要会写。

    下面我简单写写吧,

    select * from table1 join table2 on conditions
    
    where  conditions
    
    group by  column1
    
    having group_conditions
    
    order by column1 desc
    
    limit 100000, 10
    • SELECT之后是逗号分隔列或星号(*)的列表,表示要返回所有列。
    • FROM指定要查询数据的表或视图。
    • JOIN根据某些连接条件从其他表中获取数据。
    • WHERE过滤结果集中的行。
    • GROUP BY将一组行组合成小分组,并对每个小分组应用聚合函数。
    • HAVING过滤器基于GROUP BY子句定义的小分组。
    • ORDER BY指定用于排序的列的列表。
    • LIMIT限制返回行的数量。
     

    4. msyql查找重复,删除重复只保留一个。

    5. msyql百万计分页查询。

    select * from table1 limit 0, 10;    -- 查询0开始的10条数据。

    select * from table1 limit 100, 10;    -- 查询100开始的10条数据。

    select * from table1 limit 10000, 10;    -- 查询10000开始的10条数据。

    select * from table1 limit 100000, 10;    -- 查询100000开始的10条数据。

    selet id from table1 limit 100000, 10 ;    同上。

    速度可以自己测试,应该id是有主键索引的,所以查询id会非常快,这里就可以优化了。先找到第100000条数据的id,再去查询。这里有。

    方法一

    select id from table  order by id limit 100000, 1,  先找出第100000条数据的id

    select * from table where id >=  (select id from table  order by id limit 100000, 1) order by  id limit 10.

    方法二:

    select * from table  t1 join (select id from table order by id limit 100000,10) t2 on t1.id =t2.id;

    两种方法均可,可根据实际情况使用。

  • 相关阅读:
    字符串编码js第三方类库text-encoding
    SQL SERVER数据库权限分配
    天地图显示不全
    运用shapefile.js解析Shp文件
    基于Nginx搭建RTMP/HLS视频直播服务器
    centos pptp客户端 连接服务端
    zabbix如何配置微信报警
    zabbix使用web界面设置邮件报警
    linux系统如何查看某一进程的启动时间
    cobbler自动化安装Linux系统
  • 原文地址:https://www.cnblogs.com/gongzhuiau/p/11531198.html
Copyright © 2020-2023  润新知