MySql 相关

目录

1、mysql的日期时间类型

2、修改视图view的definer

3、mysql null值排序与if表达式

4、group by 的时候有的加,有的减

5、mysql 布尔类型与tinyint(1),boolean和tinyint(1)


 

1、mysql的日期时间类型

mysql(5.5)所支持的日期时间类型有:DATETIME、 TIMESTAMP、DATE、TIME、YEAR。

日期时间类型占用空间日期格式最小值最大值零值表示
 DATETIME 8 bytes YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:009999-12-31 23:59:59 0000-00-00 00:00:00
 TIMESTAMP 4 bytes YYYY-MM-DD HH:MM:SS 197001010800012038 年的某个时刻0
 DATE 4 bytes YYYY-MM-DD1000-01-01 9999-12-31 0000-00-00
 TIME 3 bytes HH:MM:SS -838:59:59838:59:59 0:00:00
 YEAR 1 bytes YYYY1901 2155 0
  1. DATETIME 用于表示 年月日 时分秒,是 DATE 和 TIME 的组合,并且记录的年份(见上表)比较长久。如果实际应用中有这样的需求,就可以使用 DATETIME 类型。
  2. DATE 用于表示 年月日
  3. TIME 用于表示 时分秒

 

2、修改视图view的definer

SELECT
	concat(
		"alter DEFINER=`root`@`%` SQL SECURITY DEFINER VIEW ",
		TABLE_SCHEMA,
		".",
		TABLE_NAME,
		" as ",
		VIEW_DEFINITION,
		";"
	)
FROM
	information_schema.VIEWS
WHERE
	DEFINER <> 'root@%';


查询出来语句,重新执行一下。DEFINER 表示按定义者拥有的权限来执行

3、mysql null值排序与if表达式

  • 排序的时候,null值是排在前面的,想排在后面,可以加上is null。
ORDER BY acct_date,voucher_no is null ,id
  • 使用if表达式,为null的赋一个很大的值

IF(expr1,expr2,expr3)

如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。

ORDER BY acct_date,if(voucher_no,voucher_no,'9999'),id

4、group by 的时候有的加,有的减

 

 

5、mysql 布尔类型与tinyint(1),boolean和tinyint(1)

MySQL没有内置的布尔类型。 但是它使用TINYINT(1)。 为了更方便,MySQL提供BOOLEANBOOL作为TINYINT(1)的同义词。

MYSQL保存BOOLEAN值时用1代表TRUE,0代表FALSE,boolean在MySQL里的类型为tinyint(1),
MySQL里有四个常量:true,false,TRUE,FALSE,它们分别代表1,0,1,0,

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值