一、常用关键词:
1.distinct:过滤重复
select distinct create_user_name from bms_project; 此种情况下,就要用到distinct过滤掉重复的。
2.count: 统计
select count(*) from bms_project; 查询bms_project表里总共有多少条记录。
select count(*) from bms_project where project_type=1; 查询bms_project表里project_type=1的总共有多少条记录。
3.top: 取最前面的N条
select top 3 * from bms_project; 查询bms_project里的最前面3条记录。
4.like: 模糊查询
select * from bms_project where project_name like '%项目%' and project_type=2;
查询bms_project表里project_type=2,并且project_name中包含“项目”二字的记录。
5.between...and...:从...到...; 在...之间
select * from bms_project where project_budget between 500000 and 1000000;
查询bms_project表里project_budget在500000到1000000之间的记录。
6.in: 子查询
select * from bms_project where id in(100,110,120,130,140,150);
查询bms_project表里id是100,110,120,130,140,150的记录。
7.order by: 排序 (ASC顺序,DESC逆序)
select * from bms_project order by project_budget DESC;
8.group by: 以...分组。通常和聚合函数配合使用(count(),sum(),avg())
select project_type,sum(project_budget) from bms_project group by project_type;
注意:group by 后面的字段和select后非聚合函数的字段一致。
9.limit x,y (x:起始位置,y:偏移值)
select project_budget from bms_project order by project_budget desc limit 0,5 ;
从bms_project表中取出前五条,并按照project_budget由大到小的顺序显示。
二、多表连接查询:
1. table1 INNER JOIN table2: 内连接。只显示连接的两张表的交集行。
2. table1 LEFT JOIN table2: 左外连接。显示table1的所有行,即使在table2中没有匹配的行。
3. table1 RIGHT JOIN table2:右外连接。显示table2的所有行,即使在table1z中没有匹配的行。
4. table1 FULL JOIN table2: 即使table1中的行在table2中没有匹配,或者table2中的行在table1中没有匹配。它仍返回table1和table2两张表中所有匹配的行。
取人之长,补己之短