目录
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:00 | 9999-12-31 23:59:59 | 0000-00-00 00:00:00 |
TIMESTAMP | 4 bytes | YYYY-MM-DD HH:MM:SS | 19700101080001 | 2038 年的某个时刻 | 0 |
DATE | 4 bytes | YYYY-MM-DD | 1000-01-01 | 9999-12-31 | 0000-00-00 |
TIME | 3 bytes | HH:MM:SS | -838:59:59 | 838:59:59 | 0:00:00 |
YEAR | 1 bytes | YYYY | 1901 | 2155 | 0 |
- DATETIME 用于表示 年月日 时分秒,是 DATE 和 TIME 的组合,并且记录的年份(见上表)比较长久。如果实际应用中有这样的需求,就可以使用 DATETIME 类型。
- DATE 用于表示 年月日
- 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提供BOOLEAN
或BOOL
作为TINYINT(1)
的同义词。
MYSQL保存BOOLEAN值时用1代表TRUE,0代表FALSE,boolean在MySQL里的类型为tinyint(1),
MySQL里有四个常量:true,false,TRUE,FALSE,它们分别代表1,0,1,0,