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;

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

猜你喜欢

转载自www.cnblogs.com/gongzhuiau/p/11531198.html
今日推荐