一、常量
* 字符串常量
* 数值常量
* 十六进制常量
* 日期时间常量
* 位字段常量
* 布尔值
* NULL值
二、变量
* 用户变量:用户自定义变量;
* 系统变量:系统内部定义的变量;
1.用户变量:
必须用@开头,多个直接用逗号隔开。根据右边的值确定变量的类型 。 如:set @name="杨",@type=1
如下:
mysql> set @name="111"; select * from user where name=@name;
Query OK, 0 rows affected
+----+------+----------+------------------+-----------+-----+------------+--------+
| id | name | password | email | username | sex | profession | remark |
+----+------+----------+------------------+-----------+-----+------------+--------+
| 1 | 111 | 123456 | 308248859@qq.com | liuzhijun | 1 | NULL | NULL |
+----+------+----------+------------------+-----------+-----+------------+--------+
2.系统变量
大多数的系统变量应用于其它的SQL时,必须前面加 2个@。
某些特殊的可以省略这2个@,如:
* current_date:系统日期;
* current_time: 系统时间;
* current_timestamp: 系统日期和时间
* current_user: SQL用户的名字
例如:
三、运算符:
1.算术运算:
2.比较运算:
* =: 1=0 :如果相等返回1(true),如相等返回0(false);null比较都为null
* <>或 != 不等于
* <=>:和= 类型,区别是: null=null 返回 1(true).
四、控制语句:
1. if(条件,满足条件的结果1,不满足的结果2): 如 name=admin的那条记录如下:
* 存储过程或者函数中使用 if,格式为 if 查询条件 then 查询SQL elseif 查询条件 then 查询SQL else 查询SQL end if;
2.case语句:可以提供多种结果多选一的情况:
case 字段名称
when 1 then 结果1
when 2 then 结果2
else 默认结果
end as 字段别名
例如:
* 函数和存储过程下的case语句:
case
when 1 then 1SQL
when 2 then 2SQL
else 默认SQL
end case
五、常见的日期和时间函数:
1.获取当前时间 curdate()、curtime()、now()
2.获取星期几的函数: dayname(d) / dayofweek(d) / weekday(d)
3.获取月份的函数:month(d)返回d日期的月份,1-12直接。 monthname(d)返回 英文的月份名称
4.获取时间的函数 : curtime()、current_time()获取当前系统时间。 hour(t)获取t的小时 minute(t)获取t的分钟 second(t)t的秒钟
5. datediff(d1,d2)函数:返回 d1-d2之间的天数(d1到d2隔了多少天?)
6. adddate(d,n)函数: 返回 d+n天 后的日期。(n可以为负,表示前几天)
7. subdate(d,n)函数:返回 d-n天 后的日期。
8. addtime(t,n)函数:返回 t+n秒 后的时间。
9. subtime(t,n)函数: 返回 t-n秒 后的时间。
10.格式化时间函数:
* date_format(d,f) : d表示日期,f为格式,如:
* time_format(d,f); d表示时间 f:格式