一、条件查询
1、查询的基本语法
select * from 表名;
- from关键字后面写表名,表示数据来源于是这张表
- select后面写表中的列名,如果是*表示在结果中显示表中所有列
- 在select后面的列名部分,可以使用as为列起别名,这个别名出现在结果集中
- 如果要查询多个列,之间使用逗号分隔
2、消除重复行
在select后面列前使用distinct可以消除重复的行
elect distinct h_gender from hero;
3、使用where子句对表中的数据筛选,结果为true的行会出现在结果集中
select * from 表名 where 条件;
4、比较运算符
- 等于=
- 大于>
- 大于等于>=
- 小于<
- 小于等于<=
- 不等于!=或<>
4.1、查询表中全部数据(这个表是我提前创建好的)
mysql> select *from hero; +------+-----------+--------------+---------+----------+------------+----------+--------+ | h_id | h_name | h_skill | h_blood | h_attack | h_isdelete | h_gender | h_type | +------+-----------+--------------+---------+----------+------------+----------+--------+ | 1 | 李白 | 青莲剑歌 | 1000 | 1000 | | 1 | 刺客 | | 2 | 鲁班 | 空中支援 | 950 | 1000 | | 1 | 射手 | | 3 | 王昭君 | 凛冬已至 | 950 | 950 | | 0 | 法师 | | 4 | 虞姬 | 树神护佑 | 900 | 950 | | 0 | 射手 | | 5 | 甄姬 | 洛神降临 | 900 | 900 | | 0 | 法师 | | 6 | 庄周 | 天人合一 | 850 | 900 | | 1 | 辅助 | | 7 | 韩信 | 国士无双 | 850 | 850 | | 1 | 刺客 | | 8 | 孙尚香 | 穷极弩炮 | 800 | 850 | | 0 | 射手 | | 9 | 孙策 | 长帆破浪 | 800 | 800 | | 1 | 战士 | | 10 | 公孙离 | 孤鹜断霞 | 750 | 800 | | 0 | 射手 | +------+-----------+--------------+---------+----------+------------+----------+--------+ 10 rows in set (0.00 sec)
4.2、查询h_attack大于900的
mysql> select *from hero where h_attack>900; +------+-----------+--------------+---------+----------+------------+----------+--------+ | h_id | h_name | h_skill | h_blood | h_attack | h_isdelete | h_gender | h_type | +------+-----------+--------------+---------+----------+------------+----------+--------+ | 1 | 李白 | 青莲剑歌 | 1000 | 1000 | | 1 | 刺客 | | 2 | 鲁班 | 空中支援 | 950 | 1000 | | 1 | 射手 | | 3 | 王昭君 | 凛冬已至 | 950 | 950 | | 0 | 法师 | | 4 | 虞姬 | 树神护佑 | 900 | 950 | | 0 | 射手 | +------+-----------+--------------+---------+----------+------------+----------+--------+
5、逻辑运算符
- and
- or
- not
5.1、查询h_attack大于950并且h_blood大于900的hero
mysql> select *from hero where h_attack>950 and h_blood>900; +------+--------+--------------+---------+----------+------------+----------+--------+ | h_id | h_name | h_skill | h_blood | h_attack | h_isdelete | h_gender | h_type | +------+--------+--------------+---------+----------+------------+----------+--------+ | 1 | 李白 | 青莲剑歌 | 1000 | 1000 | | 1 | 刺客 | | 2 | 鲁班 | 空中支援 | 950 | 1000 | | 1 | 射手 | +------+--------+--------------+---------+----------+------------+----------+--------+
5.2、查询h_attack大于950或者h_blood大于900的hero
mysql> select *from hero where h_attack>950 or h_blood>900; +------+-----------+--------------+---------+----------+------------+----------+--------+ | h_id | h_name | h_skill | h_blood | h_attack | h_isdelete | h_gender | h_type | +------+-----------+--------------+---------+----------+------------+----------+--------+ | 1 | 李白 | 青莲剑歌 | 1000 | 1000 | | 1 | 刺客 | | 2 | 鲁班 | 空中支援 | 950 | 1000 | | 1 | 射手 | | 3 | 王昭君 | 凛冬已至 | 950 | 950 | | 0 | 法师 | +------+-----------+--------------+---------+----------+------------+----------+--------+
二、模糊查询
- like
- %表示任意多个任意字符
- _表示一个任意字符
1、查询名字里姓‘孙’的
mysql> select *from hero where h_name like '孙%'; +------+-----------+--------------+---------+----------+------------+----------+--------+ | h_id | h_name | h_skill | h_blood | h_attack | h_isdelete | h_gender | h_type | +------+-----------+--------------+---------+----------+------------+----------+--------+ | 8 | 孙尚香 | 穷极弩炮 | 800 | 850 | | 0 | 射手 | | 9 | 孙策 | 长帆破浪 | 800 | 800 | |