八种常规常用的SQL查询语句

以下的指令适用于MYSQL环境。

 

1.查询所有记录

select * from table

 

2.模糊查询

select * from 表 where 字段 like '%查询条件%‘

替代方式,INSTR的效率会更高,例子如下:

select * from 表 where INSTR(字段,查询条件)>0

select * from info where INSTR(typefeild,'红色') > 0

 

3.关联表

查询格式,主要用到 left join table on 条件

 

微软不推荐from 后面写多个表名的做法。主要还是可读性、规范性方面的考虑。

 

 

4.排序

1:字段名为你要排序的字段。一般排序的字段为id、时间、点击量等等

2.asc为升序、desc为降序。

 

select * from 表名 order by 字段名  desc   //降序

select * from 表名 order by 字段名  asc   //升序

 

举个栗子

/**查询员工信息,要求工资按照从高到低进行排序(默认升序)**/

SELECT * FROM employees ORDER BY salary ASC;

/**方法2:**/

SELECT * FROM employees ORDER BY salary;

/**查询部门标号大于等于90的员工信息,并且按照入职时间进行先后排序**/

SELECT * FROM employees

WHERE department_id >= 90

ORDER BY hiredata ASC;

/**按照员工的年薪的高低显示员工的信息和年薪**/

SELECT *, salary*12(1+IFNULL(commission_pct,0) 年薪

FROM employees

ORDER BY 年薪 ASC;

/**按照姓名的长度显示员工的姓名和工资**/

SELECT LENGTH(last_name) 姓名字节长度 ,last_name,salary

FROM employees

ORDER BY 姓名字节长度;

/**查询员工信息,先按工资升序排序,在按照员工编号降序排序**/

SELECT * FROM employees ORDER BY salary ASC,employee_id DESC;

 

进阶练习:

/**选择工资不在8000-9000的员工的姓名和工资,按照工资的降序排序**/

SELECT last_name,salarty

FROM employees

WHERE salary NOT BETWEEN 8000 AND 9000

ORDER BY salary DESC;

/**查询邮箱中包含e的员工信息,先按照邮箱的字节数升序排序,在按照部门的降序排序**/

SELECT *

FROM employees

WHERE email LIKE('%e%')

ORDER BY LENGTH(email) ASC, department_id DESC

 

 

5.读取前几条数据

 

select * from 表名 limit 10

 

 

6.去重复

select distinct 字段名 from 表名

 

 

7.分组

关键字:grounp by

例子,按照site_id进行分组并统计count

 

SELECT site_id, SUM(access_log.count) AS nums

FROM access_log GROUP BY site_id;

 

8.取交集

select * from 表A,表B where A.ID=B.ID

 

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值