1、几个简单的基本sql语句
查询:select * from tabel1 where 范围
插入(新增):insert into tabel1(field1,field2) values(value1,value2)
更新:update tabel1 set field1=value1 where 范围
删除:delete from tabel1 where 范围
查找:select * from tabel1 where field1 like '%value1%'
排序:select * from tabel1 order by field1,field2 [desc]
总数:select count * as totalcount from tabel1
求和:select sum(field1) as sumvalue from tabel1
平均:select avg(field1) as avgvalue from tabel1
最大:select max(field1) as maxvalue from tabel1
最小:select min(field1) as minvalue from tabel1
2、查询语句的一般写法:select .......from ......where ...... group by ......having ...... order by ...... limit ...... ;
执行顺序:①from ② where ③ group by ④ select ⑤ having ⑥ order by ⑦ limit ,对于执行顺序一般来说用处不大,但是遇到需求复杂的sql时,可以给你一种很好的解题思路
3、常用关键字
(1)group by分组
按照字段进行分组,除了分组字段之外,取分组后的每一组的第一行作为标识。举个例子:
(2)聚合函数:
count()聚合函数括号中可以存放的值
(3)having过滤关键字
having 作用于租,筛选分组之后的记录,having条件中可以包含聚合函数,例如:
统计1班的成绩得分情况
select score,count(1) from student_grade where grade ="1班" group by score having count(1)
(4)order by排序关键字
asc 升序(默认),desc 降序。当按照两列或者两列以上的列数进行排序时,在第一列排序结束后的基础上,对于第一排序列相同值的行,按照第二排序列进行排序,多列情况亦是以此类推。
(5)limit a,b
从a行开始取值,要取出的行数为b行。需要注意的是,数据表的行数下标从0开始
(6)left join左连接
语法:table1 left join table2 on 过滤条件
以左表为基准,右表无匹配行时,只显示左表数据,右表显示为null。
(7)inner join内连接
只显示两边都匹配的行,有两种写法,效果一样。
语法:①select * from table1 ,table2 where 过滤条件
②select * from table1 inner join table2 on 过滤条件