基本规则
- SQL可以写在一行或者多行。为了提高可读性,各子句分行写,必要时使用缩进
- 每条命令以;或g或\G结束
- 关键字不能被缩写也不能分行
- 关于标点符号
- 必须保证所有的()、单引号、双引号是成对结束的
- 必须使用英文状态下的半角输入方式
- 字符串型和日期时间类型的数据可以使用单引号()表示
- 列的别名,尽量使用双引号(““),而且不建议省略as
- 在SQL中,+没有连接的作用,就表示加法运算。此时,会将字符串转换为数值
- 数字和字符串比较存在隐式转换。如果转换数值不成功,则看做0
- 两边都是字符串的话,则按照ASI的比较规则进行比较。
- 只要有null参与判断,结果就为null
where
需要在from
之后,order by
之前
列的别名
- as:全称:alias(别名),可以省略
- 列的别名可以使用一对““引起来。
- 列的别名不能在
where
中使用
select publisher_no pn, name as nm, password "mima" from zzpstb10_test
去重复行
关键字:DISTINCT
SELECT DISTINCT department_id FROM employees;
空值参与运算
- null不等同于0或者 ‘’
- null参与运算结果也为null
实际问题的解决方案:引入IFNULL
select salary*(1+IFNULL(rate,0))+ "年工资" from employees
着重号 : ``
使用场景:如果表名或字段名与关键字冲突引起报错,可以使用着重号包裹关键字或表名
select * from `ORDER`
查询常数
xxxx
显示表结构
关键字:DESCRIBE
使用:DESCRIBE
+表名
安全等于运算符
安全等于运算符(<=>
)与等于运算符(=
)的作用是相似的,唯一的区别是<=>
可以用来对NULL进行判断。在两个操作数均为NULL时,其返回值为1,而不为NULL;当一个操作数为NULL时,其返回值为O,而不为NULL。
分页
mysql使用limit
实现数据的分页显示
声明顺序:
WHERE ...ORDER BY...LIMIT
# 0是指偏移量(从第几条开始),20是值每页显示条数
select * from test limit 0,20
MySQL8.0新特性:LIMIT...OFFSET...
(limit后是条数,offset后是偏移量)