select * from 表名;
在select後面列前使用distinct能夠消除重複的行mysql
elect distinct h_gender from hero;
select * from 表名 where 條件;
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)
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.一、查詢h_attack大於950而且h_blood大於900的herosql
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.二、查詢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 | 法師 | +------+-----------+--------------+---------+----------+------------+----------+--------+
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 | | 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 | | 1 | 戰士 | | 10 | 公孫離 | 孤鶩斷霞 | 750 | 800 | | 0 | 射手 | +------+-----------+--------------+---------+----------+------------+----------+--------+
三、查詢性孫的而且名只有一個字spa
mysql> select *from hero where h_name like '孫_'; +------+--------+--------------+---------+----------+------------+----------+--------+ | h_id | h_name | h_skill | h_blood | h_attack | h_isdelete | h_gender | h_type | +------+--------+--------------+---------+----------+------------+----------+--------+ | 9 | 孫策 | 長帆破浪 | 800 | 800 | | 1 | 戰士 | +------+--------+--------------+---------+----------+------------+----------+--------+
例如:查找h_id爲一、三、5的英雄code
mysql> select *from hero where h_id in(1,3,5); +------+-----------+--------------+---------+----------+------------+----------+--------+ | h_id | h_name | h_skill | h_blood | h_attack | h_isdelete | h_gender | h_type | +------+-----------+--------------+---------+----------+------------+----------+--------+ | 1 | 李白 | 青蓮劍歌 | 1000 | 1000 | | 1 | 刺客 | | 3 | 王昭君 | 凜冬已至 | 950 | 950 | | 0 | 法師 | | 5 | 甄姬 | 洛神降臨 | 900 | 900 | | 0 | 法師 | +------+-----------+--------------+---------+----------+------------+----------+--------+
例如:查詢血量在900-950之間的應用blog
mysql> select *from hero where h_blood between 900 and 950; +------+-----------+--------------+---------+----------+------------+----------+--------+ | h_id | h_name | h_skill | h_blood | h_attack | h_isdelete | h_gender | h_type | +------+-----------+--------------+---------+----------+------------+----------+--------+ | 2 | 魯班 | 空中支援 | 950 | 1000 | | 1 | 射手 | | 3 | 王昭君 | 凜冬已至 | 950 | 950 | | 0 | 法師 | | 4 | 虞姬 | 樹神護佑 | 900 | 950 | | 0 | 射手 | | 5 | 甄姬 | 洛神降臨 | 900 | 900 | | 0 | 法師 | +------+-----------+--------------+---------+----------+------------+----------+--------+
查詢isdelect沒有填寫的hero排序
select *from hero where h_isdelete is null;
爲了快速獲得統計數據,提供了5個聚合函數索引
查詢hero的總數it
mysql> select count(*) from hero; +----------+ | count(*) | +----------+ | 10 | +----------+
查詢攻擊力最大的值
mysql> select max(h_attack) from hero; +---------------+ | max(h_attack) | +---------------+ | 1000 | +---------------+
查詢攻擊力最小的值
mysql> select min(h_attack) from hero; +---------------+ | min(h_attack) | +---------------+ | 800 | +---------------+
查詢全部hero的攻擊力之和
mysql> select sum(h_attack) from hero; +---------------+ | sum(h_attack) | +---------------+ | 9000 | +---------------+
查詢全部hero的攻擊力平均值
mysql> select avg(h_attack) from hero; +---------------+ | avg(h_attack) | +---------------+ | 900.0000 | +---------------+
select 列1,列2,聚合... from 表名 group by 列1,列2,列3...
mysql> select h_gender as 性別,count(*) from hero group by h_gender; +--------+----------+ | 性別 | count(*) | +--------+----------+ | 0 | 5 | | 1 | 5 | +--------+----------+
mysql> select h_type as 英雄類型,h_gender as 性別,count(*) as 個數 from hero group by h_type,h_gender; +--------------+--------+--------+ | 英雄類型 | 性別 | 個數 | +--------------+--------+--------+ | 刺客 | 1 | 2 | | 射手 | 0 | 3 | | 射手 | 1 | 1 | | 戰士 | 1 | 1 | | 法師 | 0 | 2 | | 輔助 | 1 | 1 | +--------------+--------+--------+
having後面的條件運算符與where的相同
例如:查詢男英雄的個數
方法一:
mysql> select count(*) from hero where h_gender = 1; +----------+ | count(*) | +----------+ | 5 | +----------+
方法二:
mysql> select h_gender as 性別,count(*) from hero group by h_gender having h_gender=1; +--------+----------+ | 性別 | count(*) | +--------+----------+ | 1 | 5 | +--------+----------+
爲了方便查看數據,能夠對數據進行排序
select * from 表名 order by 列1 asc|desc,列2 asc|desc,...
mysql> select *from hero where h_gender=1 order by h_attack asc; +------+--------+--------------+---------+----------+------------+----------+--------+ | h_id | h_name | h_skill | h_blood | h_attack | h_isdelete | h_gender | h_type | +------+--------+--------------+---------+----------+------------+----------+--------+ | 9 | 孫策 | 長帆破浪 | 800 | 800 | | 1 | 戰士 | | 7 | 韓信 | 國士無雙 | 850 | 850 | | 1 | 刺客 | | 6 | 莊周 | 天人合一 | 850 | 900 | | 1 | 輔助 | | 1 | 李白 | 青蓮劍歌 | 1000 | 1000 | | 1 | 刺客 | | 2 | 魯班 | 空中支援 | 950 | 1000 | | 1 | 射手 | +------+--------+--------------+---------+----------+------------+----------+--------+
當數據量過大時,在一頁中查看數據是一件很是麻煩的事情,並且如今不少瀏覽器也都是分頁顯示數據,例如:
語法:
select * from 表名 limit start,count
mysql> select *from hero limit 0,5; +------+-----------+--------------+---------+----------+------------+----------+--------+ | 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 | 法師 | +------+-----------+--------------+---------+----------+------------+----------+--------+ 5 rows in set (0.00 sec) mysql> select *from hero limit 5,5; +------+-----------+--------------+---------+----------+------------+----------+--------+ | h_id | h_name | h_skill | h_blood | h_attack | h_isdelete | h_gender | h_type | +------+-----------+--------------+---------+----------+------------+----------+--------+ | 6 | 莊周 | 天人合一 | 850 | 900 | | 1 | 輔助 | | 7 | 韓信 | 國士無雙 | 850 | 850 | | 1 | 刺客 | | 8 | 孫尚香 | 窮極弩炮 | 800 | 850 | | 0 | 射手 | | 9 | 孫策 | 長帆破浪 | 800 | 800 | | 1 | 戰士 | | 10 | 公孫離 | 孤鶩斷霞 | 750 | 800 | | 0 | 射手 | +------+-----------+--------------+---------+----------+------------+----------+--------+ 5 rows in set (0.00 sec)
例子二:
select * from hero limit (n-1)*m,m