MySQL学习7_DQL

2021-03-02 14:49:24 浏览数 (2)

DQL

DQL(data query language)数据查询语言,主要的作用是对数据库中的数据进行查询的操作,也是最常见和最重要的功能,查询的方法也是多种多样:联合查询、分组查询、内连查询、子查询等,还可以限制查询的条数等,下面介绍几种常见的查询

格式:

代码语言:javascript复制
select column1,column2,...  # 需要查询的字段 
from table_name   # 表名
where 条件

简单查询

代码语言:javascript复制
select name,age 
from user
where id=4;   
where id in(1,3,5,7);
where name = "xiaoming";

过滤查询

过滤查询的关键字是distinct,去掉字段中的重复值

代码语言:javascript复制
-- 过滤重复字段
select distinct(password) from user;     # password是重复项
select distinct password from user;   # 括号可以不用

连接查询

连接查询的关键字是concat

  • 直接使用系统默认的连接方式,将原来的字段通过下划线进行连接
  • 使用concat...as...as后面自己指定连接的新字段名
  • 带上连接符号的查询concat_ws(" ", 列名1,列名2);其中" "就是指定连接符
代码语言:javascript复制
select concat(name, email) from user;          # 结果中显示concat(name_email)
select concat(name, email) as nameEmail from user;  # 将新的字段名用nameEmail来表示
模糊查询

模糊查询的关键字是like,中文翻译成

代码语言:javascript复制
mysql> select user_name from student where user_name like "peter";    # 像peter
mysql> select user_name from student where user_name like "%e";      # %表示任意,表示名字以e结尾
mysql> select user_name from student where user_name like "%e%";    # 表示名字中含有e
排序查询

对表中的记录进行升序asc或者降序desc的排列,默认的是升序asc,同时需要使用order by关键字:

  • 升序:asc,默认情况
  • 降序:desc
代码语言:javascript复制
select * from student order by user_age asc;   # 年龄的升序
select * from student order by user_age desc;  # 年龄的降序
聚合函数
代码语言:javascript复制
select count(*) from student;    # 总记录
select sum(列名) from student;  # 总和
select avg(列名) from student;   # 平均值
select max/min(列名) from student;  # 最大/小值

限制查询结果

限制查询的条数使用的是limit关键字

  • 直接使用limit
  • 使用limit ... offset ...:指定从哪里开始显示,显示多少行
  • 简写:limit 5, 4:表示从第5行开始,显示4行数据
代码语言:javascript复制
select name, age from user limit 5;    -- 只显示5行数据
select name, age from user limit 5 offset 4;   -- 从第4(offset)行开始显示5(limit)行数据 
select name, age from user limit 4, 5 ;  -- 效果同上:逗号之前是offset的内容,逗号之后是limit内容

0 人点赞