mysql之DQL查詢AS CONCAT LIKE的使用mysql
select 列名1,列名2,... from 表名 [where 條件]sql
過濾掉重複的列值ide
select distinct 列名1 from 表名函數
-- 重複的列值只列出一次(去掉列值重複) mysql> select distinct(password) from user;
鏈接concatcode
select concat(列名1,列名2) from 表名 concat_ws帶分隔符blog
列起別名 as
select 列名1 as 別名,列名2 from 表名排序
模糊查詢字符串
select 列名 ... from 表名 where 列名 like '%字符串%';it
mysql> select user_name from user where user_name like '%ng%';
+-----------+
| user_name |
+-----------+
| liming |
| zhangsan |
+-----------+io
Mysql之DQL排序以及聚合函數
order by 字段 asc;
order by 字段 desc;
mysql> select user_name,id from user order by id asc;
+-----------+----+
| user_name | id |
+-----------+----+
| liming | 1 |
| zhangsan | 2 |
| 李華 | 3 |
+-----------+----+
3 rows in set (0.01 sec)
mysql> select user_name,id from user order by id desc;
+-----------+----+
| user_name | id |
+-----------+----+
| 李華 | 3 |
| zhangsan | 2 |
| liming | 1 |
+-----------+----+
3 rows in set (0.00 sec)
表中有多少條記錄,某列的總和,平均值,最大值,最小值
mysql> select count(*) from user; mysql> select sum(age) from user; mysql> select avg(age) from user; mysql> select max(age) from user; mysql> select min(age) from user;
分組查詢
user表的數據
+----+-----------+-----+----------+----------------+-------------+-------+------+
| id | user_name | sex | password | email | mobile | fee | age |
+----+-----------+-----+----------+----------------+-------------+-------+------+
| 1 | liming | 0 | 123435 | liming@163.com | 13666666666 | 12.21 | 28 |
| 2 | zhangsan | 1 | 229999 | zs@163.com | 13554442907 | 86.21 | 22 |
| 3 | 李華 | 0 | 123435 | lihua@163.com | 1366666666 | 99.12 | 18 |
| 4 | lisi | 1 | 2×××2 | lisi@163.com | 17376756841 | 32.18 | 35 |
| 5 | wangwu | 1 | 888888 | wangwu@163.com | 18511111122 | 38.69 | 26 |
+----+-----------+-----+----------+----------------+-------------+-------+------+
統計sex=1時的人數,sex=0時的人數
mysql> select sex,count(*) from user group by sex; +-----+----------+ | sex | count(*) | +-----+----------+ | 0 | 2 | | 1 | 3 | +-----+----------+
按照sex進行分組,哪組人數大於2
mysql> select sex from user group by sex having count(*)>2; +-----+ | sex | +-----+ | 1 | +-----+
鏈接查詢
內鏈接查詢
-- where 可換成 on mysql> select s.id,s.name,m.mark from student as s inner join mark as m where m.stu_id=s.id; +----+---------+------+ | id | name | mark | +----+---------+------+ | 2 | xiaoliu | 66 | | 4 | xiaoli | 77 | | 5 | xiaopan | 88 | +----+---------+------+ 3 rows in set (0.00 sec) mysql> select m.id,s.name,m.mark from student as s, mark as m where m.stu_id=s.id; +----+---------+------+ | id | name | mark | +----+---------+------+ | 1 | xiaoliu | 66 | | 2 | xiaoli | 77 | | 3 | xiaopan | 88 | +----+---------+------+ 3 rows in set (0.00 sec)
外鏈接查詢(左鏈接查詢,右鏈接查詢)
左鏈接查詢
mysql> select s.name,m.mark from student as s left join mark as m on m.stu_id=s.id; +-----------+------+ | name | mark | +-----------+------+ | xiaoliu | 66 | | xiaoli | 77 | | xiaopan | 88 | | zhaozhang | NULL | | xiaowang | NULL | +-----------+------+
右鏈接查詢
mysql> select s.name,m.mark from student as s right join mark as m on m.stu_id=s.id; +---------+------+ | name | mark | +---------+------+ | xiaoliu | 66 | | xiaoli | 77 | | xiaopan | 88 | +---------+------+
聯合查詢
三種方式實現:查詢id=2或id=5的記錄
mysql> select * from student where id in(2,5); mysql> select * from student where id=2 or id=5; mysql> select * from student where id=2 union all select * from student where id=5;
子查詢
mysql> select id from student where id in(select stu_id from mark); +----+ | id | +----+ | 2 | | 4 | | 5 | +----+
limit查詢
mysql> select * from student limit 2; +----+-----------+-----+ | id | name | age | +----+-----------+-----+ | 1 | zhaozhang | 26 | | 2 | xiaoliu | 27 | +----+-----------+-----+ mysql> select * from student limit 3,2; +----+---------+-----+ | id | name | age | +----+---------+-----+ | 4 | xiaoli | 29 | | 5 | xiaopan | 30 | +----+---------+-----+