首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MySQL数据库学习,详解select条件查询(一)

MySQL数据库学习,详解select条件查询(一)

作者头像
用户1289394
发布2021-11-05 09:26:46
发布2021-11-05 09:26:46
1.4K0
举报
文章被收录于专栏:Java学习网Java学习网

条件查询

语法:

select 列名 from 表名 where 列 运算符 值

说明:

注意关键字where,where后⾯跟上⼀个或者多个条件,条件是对前⾯数据的过

滤,只有满⾜where后⾯条件的数据才会被返回。

下⾯介绍常见的查询运算符。条件查询运算符

等于(=)

select 列名 from 表名 where 列 = 值;

说明:

查询出指定的列和对应的值相等的记录。

操作符描述=等于

<> 或者!= 不等于 >⼤于 <⼩于 >=⼤于等于 <=⼩于等于

值如果是字符串类型,需要⽤单引号或者双引号引起来。

⽰例:

mysql> create table test1 (a int,b varchar(10));

Query OK, 0 rows affected (0.01 sec)

mysql> insert into test1 values (1,'abc'),(2,'bbb');

Query OK, 2 rows affected (0.01 sec)

Records: 2 Duplicates: 0 Warnings: 0

mysql> select * from test1;

+------+------+

| a | b |

+------+------+

| 1 | abc |

| 2 | bbb |

+------+------+

2 rows in set (0.00 sec)

mysql> select * from test1 where a=2;

+------+------+

| a | b |

+------+------+

| 2 | bbb |

+------+------+

1 row in set (0.00 sec)

mysql> select * from test1 where b = 'abc';

+------+------+

| a | b |

+------+------+

| 1 | abc |

+------+------+

1 row in set (0.00 sec)

mysql> select * from test1 where b = "abc";

+------+------+

| a | b |

+------+------+| 1 | abc |

+------+------+

1 row in set (0.00 sec)

不等于(<>、!=)

不等于有两种写法:<>或者!=

select 列名 from 表名 where 列 <> 值;

或者

select 列名 from 表名 where 列 != 值;

⽰例:

mysql> select * from test1 where a<>1;

+------+------+

| a | b |

+------+------+

| 2 | bbb |

+------+------+

1 row in set (0.00 sec)

mysql> select * from test1 where a!=1;

+------+------+

| a | b |

+------+------+

| 2 | bbb |

+------+------+

1 row in set (0.00 sec)

注意:

<> 这个是最早的⽤法。

!=是后来才加上的。

两者意义相同,在可移植性上前者优于后者

故⽽sql语句中尽量使⽤<>来做不等判断

⼤于(>)

select 列名 from 表名 where 列 > 值;⽰例:

mysql> select * from test1 where a>1;

+------+------+

| a | b |

+------+------+

| 2 | bbb |

+------+------+

1 row in set (0.00 sec)

mysql> select * from test1 where b>'a';

+------+------+

| a | b |

+------+------+

| 1 | abc |

| 2 | bbb |

+------+------+

2 rows in set (0.00 sec)

mysql> select * from test1 where b>'ac';

+------+------+

| a | b |

+------+------+

| 2 | bbb |

+------+------+

1 row in set (0.00 sec)

说明:

数值按照⼤⼩⽐较。

字符按照ASCII码对应的值进⾏⽐较,⽐较时按照字符对应的位置⼀个字符⼀个

字符的⽐较。

其他⼏个运算符(<、<=、>=)在此就不介绍了,⽤法和上⾯类似,⼤家可以⾃⼰练习⼀

下。逻辑查询运算符

当我们需要使⽤多个条件进⾏查询的时候,需要使⽤逻辑查询运算符。

AND(并且)

select 列名 from 表名 where 条件1 and 条件2;

表⽰返回满⾜条件1和条件2的记录。

⽰例:

逻辑运算符描述AND多个条件都成⽴ OR多个条件中满⾜⼀

个mysql> create table test3(a int not null,b varchar(10) not null);

Query OK, 0 rows affected (0.01 sec)

mysql> insert into test3 (a,b) values (1,'a'),(2,'b'),(2,'c'),(3,'c');

Query OK, 4 rows affected (0.00 sec)

Records: 4 Duplicates: 0 Warnings: 0

mysql> select * from test3;

+---+---+

| a | b |

+---+---+

| 1 | a |

| 2 | b |

| 2 | c |

| 3 | c |

+---+---+

4 rows in set (0.00 sec)

mysql> select * from test3 t where t.a=2 and t.b='c';

+---+---+

| a | b |

+---+---+

| 2 | c |

+---+---+

1 row in set (0.00 sec)

查询出了a=2 并且 b='c'的记录,返回了⼀条结果。

OR(或者)

select 列名 from 表名 where 条件1 or 条件2;

满⾜条件1或者满⾜条件2的记录都会被返回。

⽰例:

mysql> select * from test3;

+---+---+

| a | b |

+---+---+| 1 | a |

| 2 | b |

| 2 | c |

| 3 | c |

+---+---+

4 rows in set (0.00 sec)

mysql> select * from test3 t where t.a=1 or t.b='c';

+---+---+

| a | b |

+---+---+

| 1 | a |

| 2 | c |

| 3 | c |

+---+---+

3 rows in set (0.00 sec)

查询出了a=1或者b='c'的记录,返回了3条记录。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档