开发者社区> 余二五> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

mysql的sql经典写法收录

简介:
+关注继续查看

1、表关联更新:

1
2
3
select a.`user`,a.`host`,b.db from mysql.`useras a
  left join mysql.db as on (a.`user` = b.`userand a.`host` = b.`host`)
  where a.`user` != 'root';

更新前的查询:

1
2
3
4
5
select from user_bank where id = 1650;
select from user_bank where bank_type is null;
select count(*) from user_bank where bank_type is null;
select from bank;
select from bank where bank_code = '03010000';

2、函数的使用

2.1、时间相关的函数

1
2
3
4
5
6
7
8
select UNIX_TIMESTAMP('2015-12-11 11:24:00'); -- 日期时间转时间戳
select FROM_UNIXTIME("1449804240"); -- 时间戳转日期时间
select FROM_UNIXTIME("1449804240",'%Y-%m-%d %H:%i:%S'--含格式化的转换
select NOW(); -- 当前系统时间
select DATE_ADD(NOW(),INTERVAL 1 YEAR-- 时间加1个年
select DATE_ADD(NOW(),INTERVAL -1 YEAR-- 时间减1个年
select DATE_ADD(NOW(),INTERVAL 1 MONTH); -- 时间加1个月
-- 常用日期单位:MICROSECOND,SECOND,MINUTE,HOUR,DAY,WEEK,MONTH,QUARTER,YEAR,SECOND_MICROSECOND,MINUTE_MICROSECOND,MINUTE_SECOND,HOUR_MICROSEC,ND,HOUR_SECOND,HOUR_MINUTE,DAY_MICROSECOND,DAY_SECOND,DAY_MINUTE,DAY_HOUR,YEAR_MONTH

2.2、if函数的使用

1
select if(host='127.0.0.1','本机','非本机'from mysql.user;

2.3、case的使用

1
2
3
4
5
6
7
8
9
select db, 
  (
  case 
    when host = "localhost" then '本机' 
    when host = "127.0.0.1" then '本机' 
    else '其他'
  end
  ) as host,user
from mysql.db;

2.4、分组函数使用

1
select user,count(userfrom mysql.user group by user;

2.5、产生唯一值

1
2
select uuid(); -- 长uuid
select UUID_SHORT(); -- 短uuid

2.6、存储过程

2.6.1、游标的使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
BEGIN
  DECLARE v_user varchar(50);
  -- 遍历数据结束标志
  DECLARE done INT DEFAULT FALSE;
  -- 游标
  DECLARE cur CURSOR FOR  select `user` from mysql.`user`;
  -- 将结束标记绑定到游标
  DECLARE CONTINUE HANDLER FOR NOT found set done = TRUE;
  -- 打开游标
  OPEN cur;
  -- 开始循环
  read_loop:LOOP
    --  变量初始化
    SET v_user='';
    -- 提取游标数据
    FETCH cur INTO v_user;
    -- 声明游标结束条件
    IF done THEN
      LEAVE read_loop;
    END IF;
    -- 这里写想做的循环
      SELECT v_user;
  END LOOP;
  -- 关闭游标
  CLOSE cur;
END









本文转自 tanzhenchao 51CTO博客,原文链接:http://blog.51cto.com/cmdschool/1721059,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【数据库】快速入门sql写法
【数据库】快速入门sql写法
0 0
SQL 写法:行行比较,别问为什么,问就是厉害
SQL 写法:行行比较,别问为什么,问就是厉害
0 0
一句SQL,我有6种写法
最近在刷LeetCode中数据库题目时,有一道排名题目,用了6种写法分别代表6种SQL思维来实现,想想也算是有趣。
0 0
建议收藏丨sql行转列的一千种写法!!
建议收藏丨sql行转列的一千种写法!!
0 0
mybatis 中xml文件写sql语句时大于、大于等于、小于、小于等于的写法
mybatis 中xml文件写sql语句时大于、大于等于、小于、小于等于的写法
0 0
thinkphp5.1的sql中in的优化写法
thinkphp5.1的sql中in的优化写法
0 0
你不会还在用这8个错误的SQL写法吧?
你不会还在用这8个错误的SQL写法吧?
618 0
SQL Server 存储过程中处理多个查询条件的几种常见写法分析,我们该用那种写法
原文:SQL Server 存储过程中处理多个查询条件的几种常见写法分析,我们该用那种写法   本文出处: http://www.cnblogs.com/wy123/p/5958047.html    最近发现还有不少做开发的小伙伴,在写存储过程的时候,在参考已有的不同的写法时,往往很迷茫,不知道各种写法孰优孰劣,该选用那种写法,以及各种写法优缺点,本文以一个简单的查询存储过程为例,简单说一下各种写法的区别,以及该用那种写法专业DBA以及熟悉数据库的同学请无视。
761 0
mysql中获取一天、一周、一月时间数据的各种sql语句写法
来源:http://www.jb51.net/article/50505.htm   今天抽时间整理了一篇mysql中与天、周、月有关的时间数据的sql语句的各种写法,部分是收集资料,全部手工整理,自己学习的同时,分享给大家,并首先默认创建一个表、插入2条数据,便于部分数据的测试,其中部分名词或函数进行了解释说明。
1566 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
用SQL做数据分析
立即下载
阿里云流计算 Flink SQL 核心功能解密
立即下载
Comparison of Spark SQL with Hive
立即下载