MySQL之查询语句

本文详细介绍了MySQL的查询语句,涵盖了单表查询的各个方面,包括基本查询、特殊查询、排序、LIMIT和聚合函数,以及分组查询的使用。此外,还讲解了多表查询的内连接和外连接,以及如何运用子查询,包括WHERE型子查询和FROM型子查询,帮助读者深入理解SQL查询技巧。
摘要由CSDN通过智能技术生成

一、单表查询

1. 基本查询

(1)查询所有列:select * from 表名;其中*表示查询所有列,而不是所有行的意思。

(2)查询指定列:select 列1,列2,列n from 表名;

(3)完全重复的记录只显示一次:在查询的列之前添加distinct

(4)列运算

a. 数量类型的列可以做加、减、乘、除:SELECT sal*5 from 表名;
说明:
	1.遇到null加任何值都等于null的情况,需要用到ifnull()函数。
	2.将字符串做加减乘除运算,会把字符串当作0。

b. 字符串累类型可以做连续运算(需要用到concat()函数):select concat(列名1,列名2) from 表名;其中列名的类型要为字符串。

c. 给列名起别名:select 列名1 (as) 别名1,列名2 (as) 别名2 from 表名;

(5)条件控制

a. 条件查询:在后面添加where指定条件:select * from 表名 where 列名=指定值;

b. 模糊查询:当你想查询所有姓张的记录。用到关键字like。
select * from 表名 where 列名 like ‘张_’;
(_代表匹配任意一个字符,%代表匹配0~n个任意字符)。

2. 特殊查询

  • 1.查询字段为空的行:select * form 表名 where 列名 is null;
  • 2.查询字段不为空的行: select * form 表名 where 列名 is not null;
  • 3.查询某条件多个值时用in,例如:查询课程id为1,3,5的课程。
select * from course where c_id in (1,3,5);
  • 4.排除该范围的值用not in
select * from course where c_id not in (1,3,5);

3. 排序

  • 1.升序:select * form 表名 order by 列名 (ASC); ()里面的内容为缺省值,默认为升序,可省略。
  • 2.降序:select * from 表名 order by 列名 DESC;
  • 3.使用多列作为排序条件: 当第一列排序条件相同时,根据第二列排序条件排序(当第二列依旧相同时可视情况根据第三例条件排序)。eg:select * from 表名 order by 列名1 (ASC), 列名2 DESC;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值