零、MySQL查询万能公式
→点击这里看大图
在这里解释一下:select 输出内容 from 表;是什么意思。
- 输出内容,很好理解,就是你填什么,它输出相关内容。表,怎么理解呢?
- 表名是一张表吧?用连接,你打印出来也是一张表吧?用where之类的限制,你打印出来,还是一张表吧?所以后面就是表,那一长串就是一个原始的表经过这样那样的限制,分分合合,还是一张表,一张结果表,还是表。终究是在表里取出相应的输出内容,这就是内涵。
- 理解了表这一层就好办了,什么修改呀,嵌套呀,都是先改变表结构,然后再操作的结果。
(这是由本人原创的,我称之为‘大表理论’,转载请注明weixin_44925501原创。)
一、查询
1)查询表中记录
select … from 表名;
- 省略号处,若为 * ,表示所有字段。若为 字段i,字段j ,则只显示这几个字段,且根据顺序来排列
- 取别名就 字段i as xx,字段j as yy
2)给表取名
select 表名1.字段i,表名1.字段j from 表名1;
--上面这行用法很特殊哦。这个等同于下面这行。
select 表别名1.字段i,表别名1.字段j from 表名 as 表别名1;
如果取了别名,愣是不用,会报错哦。
3)去重(distinct)
select distinct … from 数据表名;
--重复值会被合并
二、条件查询
1)比较运算符
> 大于 < 小于 >= 大于等于 <= 小于等于 = 等于
!= 不等于
2)逻辑运算符
and 与 or 或 not 非
- 在谁的条件前面加not,是仅仅否定了这一个条件。如果要否定多个条件,请使用括号
3)模糊查询
like(用通配符)
select … from 数据表 where 字段 like ‘…’;
--第二个省略号处,写的就是模糊查找的值。一个 % 表示替换n个值(n为0-无穷),一个 _表示替换一个值。
rlike(用正则)
select … from 数据表 where 字段 rlike ‘正则表达式’;
4)范围查询
- 在不连续范围内。
select … from 数据表 where 字段 in (值1,值2…);
- 在连续范围内
select … from 数据表 where 字段 between 界限1 and 界限2;
10<=age<=20范围内的。
不在连续范围内,用not between and ;这是一种用法,不能加上括号然后整个取反。
not 字段i between and;和上面的用法相同。