一些乱七八糟的SQL语句

-- 今天
SELECT * FROM 表名 WHERE TO_DAYS(时间字段) = TO_DAYS(NOW())


-- 本周
SELECT * FROM 表名 WHERE YEARWEEK(DATE_FORMAT(时间字段,’%Y-%m-%d’)) = YEARWEEK(NOW())


-- 本月
SELECT * FROM 表名 WHERE DATE_FORMAT(时间字段,’%Y-%m’) = DATE_FORMAT( NOW(),’%Y-%m’)


-- 本年
SELECT * FROM 表名 WHERE DATE_FORMAT(时间字段,’%Y’) = DATE_FORMAT( NOW(),’%Y’)

-- 今天 求和 加where
SELECT SUM(需要求和的字段) FROM 表名 WHERE TO_DAYS(时间字段) = TO_DAYS(NOW()) AND pid=3(条件)


-- 本周 求和 加where
SELECT SUM(需要求和的字段) FROM 表名 WHERE YEARWEEK(DATE_FORMAT(时间字段,’%Y-%m-%d’)) = YEARWEEK(NOW()) AND pid=3(条件)


-- 本月 求和 加where
SELECT SUM(需要求和的字段) FROM 表名 WHERE DATE_FORMAT(时间字段,’%Y-%m’) = DATE_FORMAT( NOW(),’%Y-%m’) AND pid = 3(条件)


-- 本年 求和 加where
SELECT SUM(需要求和的字段) FROM 表名 WHERE DATE_FORMAT(时间字段,’%Y’) = DATE_FORMAT( NOW(),’%Y’) AND pid = 3(条件)

-- 降序
SELECT * FROM 表名 ORDER BY 需要排序的字段 ASC


-- 升序加where
SELECT * FROM 表名 WHERE id=6(条件) ORDER BY 需要排序的字段 DESC

-- 查询所有的名字以 ‘晓’ 开头
SELECT * FROM tb_user WHERE username REGEXP ‘^晓’;


-- 查询所有的名字以 ‘明’ 结尾
SELECT * FROM tb_user WHERE username REGEXP ‘明$’;


-- 查询所有的名字包含 ‘张’ 的字符串
SELECT * FROM tb_user WHERE username REGEXP ‘张’;


-- 查询所有名称包含 晓 和 ‘张’ 开始 的
SELECT * FROM tb_user WHERE username REGEXP ‘晓|^张’;

-- 去除重复 distinct
SELECT DISTINCT id FROM tb_user;
--  建完表后添加主外键约束
ALTER TABLE 子表表名 ADD FOREIGN KEY (子表外键) REFERENCES 主表表名 (主表主键)
--  查询该表所有字段信息
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='testTableName'; 

--  CONCAT: 字段拼接, 列:011a623f82884396bc40062e448ac0b0 = chaim
--  TRIM: 去除左右两边空格, RTRIM: 去除右边空格, LTRIM: 去除左边的空格
SELECT CONCAT(tu.id, ' = ', LTRIM(tu.name)) AS testName FROM tb_user tu;

--  MODIFY 修改字段类型, 查询出对应的SQL, 进行执行, 列: ALTER TABLE 库名.表名  MODIFY 字段名 VARCHAR(64);
SELECT CONCAT('ALTER TABLE testName.',TABLE_NAME,' MODIFY ',COLUMN_NAME,' VARCHAR(64);') AS 'waitUpdateSQL'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA='testName' AND COLUMN_NAME IN ('create_name')
-- 修改test库所有字段注释为空
SELECT
  CONCAT(
    'ALTER TABLE `',
    TABLE_NAME,
    '` MODIFY COLUMN `',
    COLUMN_NAME,
    '` ',
	CASE COLUMN_TYPE 
        WHEN 'timestamp' THEN 'datetime'
        ELSE COLUMN_TYPE 
    END,
    ' ',
	IF(CHARACTER_SET_NAME <> '', CONCAT('CHARACTER SET ', CHARACTER_SET_NAME, ' '), ''),
	IF(COLLATION_NAME <> '', CONCAT('COLLATE ', COLLATION_NAME, ' '), ''),
    CASE
      EXTRA
      WHEN EXTRA <> ''
      THEN IF(COLUMN_DEFAULT <> '', CONCAT('DEFAULT ', COLUMN_DEFAULT), 'COMMENT '''' ')
      ELSE EXTRA
    END,
    ';'
  ) AS 'sqlComment'
FROM
  INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'test' and table_name = 'test2'

-- 修改test库所有表注释为空
SELECT
	CONCAT( 'ALTER TABLE `', TABLE_NAME, '` COMMENT '''';' ) AS 'sqlComment' 
FROM
	INFORMATION_SCHEMA.TABLES 
WHERE
	TABLE_SCHEMA = 'power_bank'
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值