添加主键约束:primary key auto_increment 主键自增
查询时剔除重复记录: distinct
ifnull(bouns,0)判断bouns字段是否为null,如果为null,则用0代替
select * from emp where dept is null 判断是否为null不能用=
多行函数查询
1 count(*)统计所有记录的个数
2 max()统计当前列里的最大值
3 min()统计当前列里的最小值
4 sum()统计当前列里的数值的总和
5 avg()统计当前列里的平均数
group by +字段名 按照该字段名进行分组,
排序查询 Asc 从低到高 Desc 从高到低
分页查询: Limit(page-1,int)查询page页,每页显示int记录
时间的获取函数
curdate() 获取当前日期,格式是:年月日
curtime() 获取当前时间 ,格式是:时分秒
sysdate() now() 获取当前日期+时间,格式是:年月日 时分秒
year(date) 返回date中的年份
month(date) 返回date中的月份
day(date) 返回date中的天数
hour(date) 返回date中的小时
minute(date) 返回date中的分钟
second(date) 返回date中的秒
CONCAT(s1,s2…) 将s1,s2 等多个字符串合并为一个字符串
CONCAT_WS(x,s1,s2…) 同CONCAT(s1,s2,…)函数,但是每个字符串之间要加上x,x是分隔符
添加外键 foregin key(xxx_id)references xxx(id)
连接查询
表名 inner join 表名 on 条件语句
左外连接查询:表名 left join 表名 on 条件语句
查询左边表的所有记录,只显示右边表与左边表相对应的记录,若左边表中的记录在右边表中没有对应得记录,则右边显示null
右外连接查询:表名 right join 表名 on 条件语句
查询右边表的所有记录,只显示左边表与右边表相对应的记录,若右边表中的记录在左边表中没有对应得记录,则左边显示null
全外连接查询
将左外连接和右外连接用union 连接,可以去除查询到的全部信息当中重复的信息
也可以用 union all来不去除重复元素
where和having的区别
1 where 是在分组之前对记录进行过滤,where中不可以使用多行函数和列别名。但是可以使用表别名
2 having是在分组之后对记录进行过滤,having中可以使用多行函数和列表名,表别名