MySQL查询语句

  1. 最基本的SELECT语句:SELECT 字段1,字段2,字段3,... FROM 表名
SELECT 1+1, 2*3;
SELECT 1+1, 2*3
FROM DULE; #DULE 伪表

*代表表中的所有字段;

  1. 列的别名,可以省略AS,可以用一对 " " 引用。 SELECT 字段1 别名1,字段2 AS 别名2,字段3 "别名 3" FROM 表名
  2. 去重,SELECT DISTINKT 字段1 FROM 表名;
  3. 空值参与运算,其结果也一定是空值,NULL不等同于''或0,在语句中替换为IFNULL(字段名,默认值)解决;
  4. 着重号 `` ,当变量名为关键字时,用``以区分;
SELECT *
FROM `ORDER`;
  1. 查询常数,给每一行数据增加一个常数作为一列;
SELECT '中国人', id, name
FROM `staffs`;
  1. 查询表中所有关键字信息,使用DESCRIBE | DESC 表名查询;
  2. 使用 WHERE 关键字进行条件判断, WHERE需要跟在FROM后面。语法:SELECT FROM 表名 WHERE 条件
SELECT *
FROM staffs 
WHERE department = 'frontend';
  1. 运算符
    运算符内容较多,跳转查看详情
  2. 排序
SELECT staff_id, salary * 12 annual_salary
FROM staffs
ORDER BY annual_salary DESC;
  • 没有查询条件的情况下,默认按照添加数据的顺序排序;
  • 使用ORDER BY 字段名 排序方式进行排序;
  • 排序方式有升序ASC、降序DESC两种,默认为升序,可以省略,NULL值作为最小的参与排序;
  • 排序依赖的字段可以是别名,但WHERE条件判断的字段不能用别名。因为语句执行的顺序是: 执行FROM table找到表 => 执行WHERE语句找到满足该条件的全部数据 => 执行SELECT语句过滤出需要的字段 => 执行 ORDER BY 语句进行排序。由此可见,条件判断时还未定义字段别名,而排序时别名已定义好。由此可见, ORDER BY 语句一定排在SELECT语句后。
  • 多列排序:需要有多个字段作为排序依据。
SELECT * 
FROM staffs
ORDER BY department_id, salary DESC;
  1. 分页
# 从第40条开始,每页显示10条
SELECT *
FROM staffs
LIMIT 40,10
  • LIMIT offset位置偏移量,pageSize每页条数,关系为:offset = pageSize * (当前第几页 - 1);
  • 当从0开始时,0可省略;
  • 在MySQL8.0中,可以使用语法LIMIT 每页条数OFFSET 位置偏移量实现。
  • LIMIT语句必须放在整个SELECT语句的最后,因为这样可以减少输出,提升效率。
  1. 多表联查
  • 等值连接 vs 非等值连接
  • 自连接 vs 非自连接
  • 内连接 vs 外连接
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 目录 一、查询准备 二、条件查询 三、排序 四、聚合函数 五、分组 六、分页 七、连接查询 八、自关联 九、子查询...
    梦里才是真阅读 602评论 0 3
  • 随着基础知识的不断深入,我们会渐渐发现一些有趣的概念,觉得:欸,不错欸,好想继续听下去.保持这种想法,继续前行,你...
    梦想成为小仙女阅读 626评论 0 4
  • 基础查询 一、起别名作用 ①便于理解②如果要查询的字段有重名的情况,使用别名可以区分开来 方式一:使用as SEL...
    敬子v阅读 712评论 0 1
  • MySQL的查询 (1)概览SELECT语句的语法: (2) SELECT语句各子句的描述: 具体释义: 一:se...
    leelian阅读 1,154评论 0 1
  • 查询语句 查询所有字段select *from fruite; 查询单个字段select f_id, s_id, ...
    loading_9f52阅读 178评论 0 0