字符按照_ASC_II码对应的值进行比较,比较时按照字符对应的位置一个字符一个字符的比较。
其他几个运算符(<、<=、>=)在此就不介绍了,用法和上面类似,大家可以自己练习一下。
逻辑查询运算符
当我们需要使用多个条件进行查询的时候,需要使用逻辑查询运算符。
| 逻辑运算符 | 描述 |
| — | — |
| AND | 多个条件都成立 |
| OR | 多个条件中满足一个 |
AND(并且)
select 列名 from 表名 where 条件1 and 条件2;
表示返回满足条件1和条件2的记录。
示例:
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条记录。
like(模糊查询)
有个学生表,包含(学生id,年龄,姓名),当我们需要查询姓“张”的学生的时候,如何查询呢?
此时我们可以使用sql中的like关键字。语法:
select 列名 from 表名 where 列 like pattern;
pattern中可以包含通配符,有以下通配符:
%:表示匹配任意一个或多个字符
_:表示匹配任意一个字符。
学生表,查询名字姓“张”的学生,如下:
mysql> create table stu (id int not null comment ‘编号’,age smallint not null comment ‘年龄’,name varchar(10) not null comment ‘姓名’);
Query OK, 0 rows affected (0.01 sec)
mysql> insert into stu values (1,22,‘张三’),(2,25,‘李四’),(3,26,‘张学友’),(4,32,‘刘德华’),(5,55,‘张学良’);
Query OK, 5 rows affected (0.00 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> select * from stu;
±—±----±----------+
| id | age | name |
±—±----±----------+
| 1 | 22 | 张三 |
| 2 | 25 | 李四 |
| 3 | 26 | 张学友 |
| 4 | 32 | 刘德华 |
| 5 | 55 | 张学良 |
±—±----±----------+
5 rows in set (0.00 sec)
mysql> select * from stu a where a.name like ‘张%’;
±—±----±----------+
| id | age | name |
±—±----±----------+
| 1 | 22 | 张三 |
| 3 |