简单查询

1. 查询所有列的数据

用*代表所有列。

select * from 表名

2. 选择列

select 字段1,字段2,字段3… from 表名

3. 选择行

  1. 等值

select … from 表名 where 字段 = 条件

  • 如查询salaries表中salary超过10000的信息
select * 
from salaries 
where salary > 10000;
  1. IN:检查一个值是否在一组值中
  • 如查询表employees中姓名为kangkang,jack的员工。
select *
from employees
where name in ('kangkang','jack')
  1. between … and: 检查一个值是否在一个范围内,常用于数字和日期。
  • 如查询salaries表中salary在8000到10000的信息。
select *
from salaries
where salary between 8000 and 10000;
  1. like简单模式匹配:’_‘来精确匹配一个字符,’%'来匹配任意数量的字符。
  • 如查询employees表中姓常的员工。
select *
from employees
where name like '常%';
  • 查询姓赵并且名字共2个字的员工。
select *
from employees
where name like '赵_';
  1. 正则表达式

可以使用rlike或regexp函数在where子句中使用正则表达式。

  • 如找出名字以字母J开头的员工信息
select *
from employees
where name rlike '^J';
  • 找出姓名以薇结尾的人员信息
select *
from employees 
where name regexp '薇$';


常用正则表达式表

序号表达式描述序号表达式描述
1*零次或重复多次11[0-9]数字0到9
2+一个或多个重复12^…$开始和结束
3?可选字符13\d任何数字
4.任意字符14\D任何非数字字符
5.区间15\s任何空格
6^以······开始16\S任何非空白字符
7$以······结束17\w任何字母数字字符
8[abc]abc三者任选其一18\W任何非字母数字字符
9[^abc]非a,非b,亦非c19{m}m次重复
10[a-z]字符a到z,即任意英文字母20{m,n}m到n次重复

4. 限定结果limit

在查询的结尾使用limit来实现该效果。

  • 如只显示10条查询信息
select first_name,second_name
from employees
where salary > 10000
limit 100;

5. 对结果排序order by

  • 如查询薪水最高的前10位员工的工号和姓名
select emp_no,name
from salaries
order by salary desc -- desc表示降序,asc表示升序,默认为升序
limit 10

6. 去重distinct

  • 如对员工工号进行去重查询
select distinct emp_no
from employees
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值