个人常用 SQL 函数 持续更新
时间函数
获取当前时间(MySQL)
sql
# 输出格式为:yyyy-MM-dd HH:mm:ss
NOW();# 输出格式为:yyyy-MM-dd HH:mm:ss
NOW();获取当前时间秒(MySQL)
sql
# 从 1970年1月1日 开始到现在的秒数
UNIX_TIMESTAMP();# 从 1970年1月1日 开始到现在的秒数
UNIX_TIMESTAMP();计算两个时间之间的间隔(MySQL)
sql
# unit 可选为FRAC_SECOND 毫秒、SECOND 秒、MINUTE 分钟、HOUR 小时、DAY 天、WEEK 星期、MONTH 月、QUARTER 季度、YEAR 年
TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2)# unit 可选为FRAC_SECOND 毫秒、SECOND 秒、MINUTE 分钟、HOUR 小时、DAY 天、WEEK 星期、MONTH 月、QUARTER 季度、YEAR 年
TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2)字符串函数
拼接字符串(MySQL)
sql
# 将多个字符串拼接在一起
CONCAT(str1, str2, ...)# 将多个字符串拼接在一起
CONCAT(str1, str2, ...)笔者说
这个函数看起来平平无奇,但实际用起来,可不只是真香。你可能会在 MyBatis 中解决 SQL 注入的时候用到它,还可能在一些 “奇怪” 的场景用到它。
清空数据库中的所有表数据
清空单表数据很简单。
sql
TRUNCATE TABLE 表名;TRUNCATE TABLE 表名;但是,如果现在有 100 + 张表?你当然不会一个一个的去 TRUNCATE,但 MySQL 又没有提供该功能。那你可以用用下面的方法。
查询该数据库下的所有表,利用
CONCAT()函数将TRUNCATE语句拼接起来shellSELECT CONCAT('TRUNCATE TABLE ', TABLE_NAME, ';') FROM information_schema.TABLES WHERE TABLE_SCHEMA = '数据库名';SELECT CONCAT('TRUNCATE TABLE ', TABLE_NAME, ';') FROM information_schema.TABLES WHERE TABLE_SCHEMA = '数据库名';将执行结果复制,直接执行即可
删除数据库中的所有表
删除单表很简单。
sql
DROP TABLE 表名;DROP TABLE 表名;但是,如果现在有 100 + 张表?你当然不会一个一个的去 DROP,但 MySQL 又没有提供该功能。那你可以用用下面的方法。
查询该数据库下的所有表,利用
CONCAT()函数将DROP语句拼接起来shellSELECT CONCAT('DROP TABLE IF EXISTS ', TABLE_NAME, ';') FROM information_schema.TABLES WHERE TABLE_SCHEMA = '数据库名';SELECT CONCAT('DROP TABLE IF EXISTS ', TABLE_NAME, ';') FROM information_schema.TABLES WHERE TABLE_SCHEMA = '数据库名';将执行结果复制,直接执行即可
星图时空