MySql 自学总结---基础点

1、sql中字符串需加上 ' ' 或 " ",建议单引号(单引号所有的数据库都识别,而双引号只有mysql数据库才能识别)

2、条件查询时需要用到where语句时,where必须放到from语句表后面(先from再where过滤)

3、sql语句中需要用到null时,直接=null是错误的,需要改成 is null(is not null)

4、and的优先级高于or(保险起见,尽量用()括上)

5、表示包含关系的时候完全可以用and ,or 但是采用in(数据) (not in ())会更建简洁

6、like 模糊查询时 %表示通用符,_表示占位符

7、order by 默认升序(asc) 降序(desc),在order by后跟上排序字段,排序字段可以是多个,用逗号隔开;如果存在where子句,那么order by 必须放到where后面

order by sal desc , job desc

8、ifnull(字段名,替换值):空值处理函数,在数据库中有null参与的运算结果一定是null,为了防止计算结果出现null,建议先使用ifnull函数预先处理

9、case...when...then...else...end  用法:匹配manger则工资上涨10%,salesman则上涨50%,其他不变(形成新的一行数据)

case job

       when 'manger'  then  sal*1.1

       when 'salesman'  then  sal*1.5

       else   sal

end

10、str_to_date('日期字符串','日期格式')将字符串转换为Date日期类型---通常在插入操作中使用

       str_to_date('02-20-1981','%m-%d-%Y')   //输出1981-02-20          

 //--%Y表示四位的年份  %y表示两位的年份  %m表示月(01,02...)%c(1,2...) %H代表24小时制  %h代表12小时制

//在实际开发中一般将日期报存为字符串,在存入数据库的时候采用转换函数转换为Date类型

11、data_format(日期类型数据,'日期格式')将日期转换为特定格式字符串 -- 主要用于查询中

12、分组函数(sum,avg,max,min,count)自动忽略null值,无需where去除;count不会统计值为null的记录

13、去重:distinct 字段A:去除与字段A相同的记录,distinct 字段A,字段B:去除与字段A和字段B同时相同的记录

14、有group by的语句中,selec语句后面只能跟分组函数 和 参与分组的字段;order by必须放在 group by后面

15、where和having都是为了完成数据过滤,他们后面都是添加条件,但是where是在分组前过滤,having是在分组后过滤

         select job,avg(sal)from emp group by job having avg(sal) > 2000;

         select job,avg(sal)from emp where avg(sal) > 2000 group by job ;

一个完成的sql   以下关键字顺序不能变!!!

select xxx

from xxx

where xxx

group by xxx

having xxx

order by xxx

 

 

你可能感兴趣的:(sql语句)