简单查询

select 语句可以帮我们实现数据库的查询功能
查询某一些字段的值

  1. select username passwd from user;

只需要在 select 后面跟上你想要查询的字段名就🆗了

查询所有的数据

  1. select * from user;

去重查询

distinct 关键词可以帮我们实现去重的功能

  1. select distinct username passwd from user;
  2. // 在字段前面加上distinct可以进行去重

条件数据记录查询

where 关键字可以对所查询到的数据进行过滤;

where后面可以跟的条件查询

  • 带逻辑运算符( > , < , = )的条件数据查询
  • BETWEEN AND 关键字的条件数据查询
  • IS NULL 关键字的条件数据查询
  • IN 关键字的条件数据查询
  • like 关键字的条件数据查询

逻辑运算符

= 等于运算符,当某一字段等于某一指定值的时候将被查询到

  1. select username from user where username = 'xiaoqiang'

< 运算符,当某一字段小于某一指定值的时候将被查询到

  1. select username from user where age < 20;

同理>运算符

  1. select username from user where age > 23;

同理以下运算符的使用方法都是一样的

  • !=
  • =

  • <=
  • and
  • or
  • not

范围查询

BETWEEN AND 关键字可以查询满足在两个值之间的结果

  1. select username from user where age between 18 and 100;
  2. // 查询年龄在18岁到100岁之间的姓名

也可以通过 Not 关键字加 between and 关键字查询到不符合区间的结果

  1. select username from user age not between 18 and 100;

IS NULL

这个关键词主要用来判断某一字段是不是为 NULL ,判断 NULL 不能用 =

  • IS NOT NULL 查询某一字段不是NULL时的结果
  • IS NULL 查询某一字段是NULL的结果

IN(集合查询)

IN 关键字可以判断一个字段在不在指定的集合中,如果在则返回查询结果,当然也可以使用 NOT IN 来查询某一字段不在指定集合中的情况

  1. select username from user where age in (20,23);
  2. select usernname from user where age not in(20,23);

模糊查询

like 关键字可以通过正则表达式来进行模糊查询,比如查询姓张的用户电话,则需要使用模糊查询

常用的匹配符

  • % 匹配一个或多个字符
  • _ 匹配一个字符
  • [^] 不匹配这个集合中的任意一个元素
  • [] 匹配在这个集合中的任意一个元素
  1. // 查询以abc结尾的姓名
  2. select username from user where username like '%abc'
  3. // 查询姓张的三个字的姓名
  4. select username from user where username like '张__'
  5. // 查询包含abc的姓名
  6. select username from user where username like '%abc%'

like 的相反用法使用 not like 关键字
**

数据排序

order by 加上ASC | DESC就可以实现排序的功能

  • ASC 升序(默认)
  • DESC 降序

    通过单一字段进行排序

  1. select username from user where order by id ASC //通过id字段进行升序查询
  1. select username from user where order by id DESC //通过id字段进行降序查询

通过多个字段进行排序

多个字段进行排序,每一个字段都需要有指定排序方式,并且字段之间需要使用逗号进行隔开

  1. select username from user where order by id ASC,passwd DESC;
  2. // 查询结果先通过id进行升序,在通过密码进行降序

LIMIT分页查询

当查询的数据很多的时候,一次性的显示自然是不好的,这时候就需要使用 limit 来限制查询返回的数据的条数了

不设置起始位置

  1. select username from user where id > 2 limit 2;
  2. // 意思是查询id>2的所有username但是只显示2条

设置起始位置

  1. select username from user where id > 2 limit 2,5;
  2. // 意思是查询id>2的所有username,只从第3条开始总共显示5条
  3. // 为什么是3??因为默认第一条是0

查询时常用函数

  • COUNT() 统计次数
  • AVG() 字段值的平均值
  • SUM() 字段值的总和
  • MAX() 字段值的最大值
  • MIN() 字段值的最小值

分组查询

group by 关键字可以根据某一个字段进行分组

  1. select username from user group by id;

分组查询的时候可以使用 HAVING 来代替 where 进行条件查询

  1. select username from user group by id having id > 2;