mysql的sql经典写法收录

 2023-09-13 阅读 20 评论 0

摘要:1、表关联更新: 1 2 3 selecta.`user`,a.`host`,b.dbfrommysql.`user`asa leftjoinmysql.dbasbon(a.`user`=b.`user`anda.`host`=b.`host`) wherea.`user`!='root'; 更新前的查询ÿ

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,如需转载请自行联系原作者

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/50968.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息