首页 > 代码库 > Mysql常用知识

Mysql常用知识

一、常用关键词:
 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两张表中所有匹配的行。

取人之长,补己之短

Mysql常用知识