三天学会Mysql之第(一)天:简单查询之操作符与通配符

mysql简介

相信大家无论是已经工作或者还在上学,都应该使用或者听说过mysql,那么mysql到底就是一种DBMS(数据库管理系统),也就是一个数据库软件
mysql的性能比较强,执行速度很快,并且代码开源,安装简单

简单查询

SELECT

首先先说明一下在mysql中是不区分大小写的,所以select和SELECT是一样的,就算写SelEct都没关系,但是为了方便阅读和使用,最好还是关键字使用大写,列和表名使用大写
最简单的当然是查询所有了:

查询所有

//SELECT * FROM 表名
SELECT * FROM user;    

这句的意思就是查询user表中的所有数据,其实并不强制使用分号来结束语句,一样是为了更好的阅读,而且多条sql语句是必须要使用分号来区分的
简单查询还有如下几种:

查询一个列中的所有数据

表示从user表中查询userName这个字段的所有数据:

//SELECT 列名 FROM 表名
SELECT user_name FROM user; 

查询多个列

当然还可以一次性查询多个列名:

//SELECT 列名1,列名2,列名3 FROM 表名
SELECT user_name,user_id FROM user;

查询不同的 DISTINCT

比如一些查询出来的数据如果它有重复的,但是我只需要不同的怎么办呢?没关系,有一个关键字或许可以帮助到你:

// DISTINCT
SELECT DISTINCT user_name FROM user;

这样查询出来的数据就会全部都是不同的数据了,让我们继续往下看:
那么如果我们不需要查询到很多的数据怎么办呢?没关系,还有一个关键字limit可以设置查询出来的数据有几条:

LIMIT 查询条数限制

// LIMIT
SELECT user_name FROM user LIMIT 5;

这条语句最多只会返回五条数据,后面的数字设置想要的数据条数即可,这里一般在做分页的时候会运用
LIMIT也可以设置成1,2,这样的意思指第一行之后的两行
在mysql5之后,有新的语句来代替上面的1,2:

SELECT user_name FROM user LIMIT 1 OFFSET 2;

意思如上一样,指第一行之后的两行

排序 order by

那么排序肯定也是必不可少的:

// ORDER BY
SELECT user_id FROM user ORDER BY user_id;

这样就完成了对userId的排序, order by 默认是按照升序排序,如果想要使用降序,则:

降序排序DESC
//DESC 
SELECT user_id FROM user ORDER BY user_id DESC;

WHERE 过滤数据

where子句

我们在使用数据库的时候,查询条件必不可少,比如我们想查询userName为张三的人:

//where
SELECT * FROM user WHERE user_name = '张三';

这样则是在user表中查询到所有名叫张三的人的数据

注意

在使用order by和where的时候,如果一起使用,order by要在where的后面使用,limit在orderby的后面
顺序如下:
where ----- order by ----- limit

操作符

我们常用的where操作符有:

=   >    <   !=   <=   >=    BETWEEN

关于上面的操作符是什么意思大家应该都明白,BETWEEN的意思是在什么什么之间,比如我们要查询user_money在100-1000之间的数据

// 使用 AND 来分割 ,可以理解为 到 的意思
SELECT * FROM user WHERE user_money BETWEEN 100 AND 1000;

多条件查询

多条件查询的where 语句使用and或or来分开:
比如我们想要查询名字叫张三 并且 id为1的人:

SELECT * FROM user WHERE user_name = '张三' AND user_id = 1;

理论上来说AND可以无限添加,但是条件越多,筛选的结果几率可能就越少
如果我们想要查询名字叫张三 或者 id为1的人:
ps:这样省事,少打一行代码,xixixi

SELECT * FROM user WHERE user_name = '张三' OR user_id = 1;

当然AND和OR也可以进行一些组合使用:
比如我们只知道张三的id可能是1或者2,那么我们可以使用组合查询来完成:

SELECT * FROM user WHERE (user_id = 1 OR user_id = 2) AND user_name = '张三';

如果OR和AND同时使用需要指定顺序,不然会以AND优先,我们使用()括号来指定执行顺序即可

in

在where中我们可以使用in来指定范围

SELECT * FROM user WHERE user_id IN(1,2);

代表查询userId为1或者为2的,那么这里可能会发现,in的效果貌似和or是一样的!
但是使用IN操作符有更快的执行效率和更加清楚和直观,并且在后续的高级查询中有更多的用处,让我们后续继续研究,这里不多做介绍

NOT

where中的not代表在之后的条件都不符合:
比如我们想查询userName不是张三的数据:

SELECT * FROM user WHERE NOT user_name = '张三';

通配符查询过滤数据

通配符可以用来匹配模糊的数据,比如你想查询所有姓张的或者等等等

LIKE

%通配符

我们在mysql中最常使用的就是%,表示任何字符
比如我们想查询所有姓张的用户:

SELECT * FROM user WHERE user_name = '张%';

这将查询所有姓张的人,后面不管是张三,张四,张五六,张三峰,都可以查询出来
同理,也可以把%放在三的前面,查询名字最后为三的人:

SELECT * FROM user WHERE user_name = '%三';

那么我们想查询名字中间是三的人:

SELECT * FROM user WHERE user_name = '%三%';

%这个通配符可以代表任意的字符并且不限制数量,也就是说如果一个人叫张李三封,也一样可以查询出来
头尾查询也一样:

SELECT * FROM user WHERE user_name = '张%丰';

需要注意的是: %不仅可以查询一个或多个字符,甚至它还代表了0个字符

_通配符

下划线通配符则和%不同,下划线则是单个字符的匹配:
比如我们查询姓张的并且他的名字只有两个字,就可以使用_来查询:

SELECT * FROM user WHERE user_name = '张_';

_通配符仅代表单个字符
注意: _通配符总是匹配一个字符,不能多也不能少

这篇文章介绍了mysql的一些基本的查询语句和操作符,下面的文章将会继续介绍mysql的其他语句,如创建,修改,删除以及高级查询,如有错误,希望指出,谢谢

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值