天天看點

6,mysql查詢語句,select查詢

1,select查詢的基本結構

  1. select 字段  
  2. from 表  
  3. where 過濾條件  
  4. group by 分組條件  
  5. order by 排序條件   
  6. having 過濾的第二條件  
  7. limit 限定結果條件; 

2,最簡單的查詢語句

  1. mysql> select * from user;  
  2. +----+----------+----------+---------------------+  
  3. | id | username | password | createtime          |  
  4. +----+----------+----------+---------------------+  
  5. |  1 | kenan    | kenan    | 2012-10-31 15:32:26 |  
  6. |  3 | kenan    | lele     | 2012-10-31 15:32:26 |  
  7. +----+----------+----------+---------------------+ 

3,查詢一列或多列

  1. mysql> select username,createtime from user;  
  2. +----------+---------------------+  
  3. | username | createtime          |  
  4. +----------+---------------------+  
  5. | kenan    | 2012-10-31 15:32:26 |  
  6. | kenan    | 2012-10-31 15:32:26 |  
  7. +----------+---------------------+  
  8. 2 rows in set (0.00 sec) 

4,多表查詢

  1. mysql> select * from user;  
  2. +----+----------+----------+---------------------+  
  3. | id | username | password | createtime          |  
  4. +----+----------+----------+---------------------+  
  5. |  1 | kenan    | kenan    | 2012-10-31 15:32:26 |  
  6. |  3 | kenan    | lele     | 2012-10-31 15:32:26 |  
  7. +----+----------+----------+---------------------+  
  8. 2 rows in set (0.00 sec)  
  9. mysql> select * from teacher;  
  10. +----+------------+---------------------+  
  11. | id | username   | createtime          |  
  12. +----+------------+---------------------+  
  13. |  1 | Teacher Li | 2012-11-01 21:00:58 |  
  14. |  2 | Teacher Le | 2012-11-01 21:02:07 |  
  15. +----+------------+---------------------+  
  16. 2 rows in set (0.00 sec)  
  17. mysql> select * from user,teacher;  
  18. +----+----------+----------+---------------------+----+------------+---------------------+  
  19. | id | username | password | createtime          | id | username   | createtime          |  
  20. +----+----------+----------+---------------------+----+------------+---------------------+  
  21. |  1 | kenan    | kenan    | 2012-10-31 15:32:26 |  1 | Teacher Li | 2012-11-01 21:00:58 |  
  22. |  3 | kenan    | lele     | 2012-10-31 15:32:26 |  1 | Teacher Li | 2012-11-01 21:00:58 |  
  23. |  1 | kenan    | kenan    | 2012-10-31 15:32:26 |  2 | Teacher Le | 2012-11-01 21:02:07 |  
  24. |  3 | kenan    | lele     | 2012-10-31 15:32:26 |  2 | Teacher Le | 2012-11-01 21:02:07 |  
  25. +----+----------+----------+---------------------+----+------------+---------------------+  
  26. 4 rows in set (0.00 sec)  
  27. 多表查詢中,如果沒有限制條件的話,兩個表的記錄會分别進行比對,産生的結果就是兩個表的笛卡爾積,叫做全連接配接
  28. 下面的這個帶有條件的叫做等同連接配接,相當于在上面的查詢結果中挑選出來滿足where後面條件的記錄,因為沒有所有是空的結果。
  1. mysql> select * from user,teacher where user.username = teacher.username;  
  2. Empty set (0.00 sec) 

5,帶有簡單的where字句條件查詢

  1. mysql> select * from user where id>2;  
  2. +----+----------+----------+---------------------+  
  3. | id | username | password | createtime          |  
  4. +----+----------+----------+---------------------+  
  5. |  3 | kenan    | lele     | 2012-10-31 15:32:26 |  
  6. +----+----------+----------+---------------------+  
  7. 1 row in set (0.00 sec) 

6,帶有in的查詢,in用來表示範圍

  1. mysql> select * from user where username in ('kenan','Micheal');  
  2. +----+----------+----------+---------------------+  
  3. | id | username | password | createtime          |  
  4. +----+----------+----------+---------------------+  
  5. |  1 | kenan    | kenan    | 2012-10-31 15:32:26 |  
  6. |  3 | kenan    | lele     | 2012-10-31 15:32:26 |  
  7. +----+----------+----------+---------------------+  
  8. 2 rows in set (0.00 sec) 
這裡查詢出來username是kenan或者是Micheal的記錄

7,between and 用來表示一個字段的範圍的查詢

  1. mysql> select * from user where id between 2 and 3;  
  2. +----+----------+----------+---------------------+  
  3. | id | username | password | createtime          |  
  4. +----+----------+----------+---------------------+  
  5. |  3 | kenan    | lele     | 2012-10-31 15:32:26 |  
  6. +----+----------+----------+---------------------+  
  7. 1 row in set (0.00 sec)  
  8. mysql> select * from user where id between 3 and 4;  
  9. +----+----------+----------+---------------------+  
  10. | id | username | password | createtime          |  
  11. +----+----------+----------+---------------------+  
  12. |  3 | kenan    | lele     | 2012-10-31 15:32:26 |  
  13. +----+----------+----------+---------------------+  
  14. 1 row in set (0.00 sec) 
這裡分别查詢出來id在2和3之間的記錄,3到4之間的記錄,從結果可以看出 between and是包含邊界的,就是>=2而且<=3

8, is null 查詢空值

  1. mysql> select * from user ;  
  2. +----+----------+----------+---------------------+  
  3. | id | username | password | createtime          |  
  4. +----+----------+----------+---------------------+  
  5. |  1 | kenan    | kenan    | 2012-10-31 15:32:26 |  
  6. |  3 | kenan    | lele     | 2012-10-31 15:32:26 |  
  7. |  4 | lele     | lele     | NULL                |  
  8. +----+----------+----------+---------------------+  
  9. 3 rows in set (0.00 sec)  
  10. mysql> select * from user where createtime is null;  
  11. +----+----------+----------+------------+  
  12. | id | username | password | createtime |  
  13. +----+----------+----------+------------+  
  14. |  4 | lele     | lele     | NULL       |  
  15. +----+----------+----------+------------+  
  16. 1 row in set (0.00 sec) 
9,用and連接配接多條件查詢  并關系
  1. mysql> select * from user where username = 'kenan' and password = 'kenan';  
  2. +----+----------+----------+---------------------+  
  3. | id | username | password | createtime          |  
  4. +----+----------+----------+---------------------+  
  5. |  1 | kenan    | kenan    | 2012-10-31 15:32:26 |  
  6. +----+----------+----------+---------------------+  
  7. 1 row in set (0.00 sec) 

10,用or 的多條件查詢  這個是或關系,滿足一個條件即可

  1. mysql> select * from user where username = 'kenan' or password = 'kenan';  
  2. +----+----------+----------+---------------------+  
  3. | id | username | password | createtime          |  
  4. +----+----------+----------+---------------------+  
  5. |  1 | kenan    | kenan    | 2012-10-31 15:32:26 |  
  6. |  3 | kenan    | lele     | 2012-10-31 15:32:26 |  
  7. +----+----------+----------+---------------------+  
  8. 2 rows in set (0.00 sec) 
  1. mysql> select count(*) from user;  
  2. +----------+  
  3. | count(*) |  
  4. +----------+  
  5. |        3 |  
  6. +----------+  
  7. 1 row in set (0.00 sec) 
  1. mysql> select id from user;  
  2. +----+  
  3. | id |  
  4. +----+  
  5. |  1 |  
  6. |  3 |  
  7. |  4 |  
  8. +----+  
  9. 3 rows in set (0.00 sec)  
  10. mysql> select sum(id) from user;  
  11. +---------+  
  12. | sum(id) |  
  13. +---------+  
  14. |       8 |  
  15. +---------+  
  16. 1 row in set (0.00 sec)  
  17. mysql> select avg(id) from user;  
  18. +---------+  
  19. | avg(id) |  
  20. +---------+  
  21. |  2.6667 |  
  22. +---------+  
  23. 1 row in set (0.04 sec) 
  1. mysql> select id from user;  
  2. +----+  
  3. | id |  
  4. +----+  
  5. |  1 |  
  6. |  3 |  
  7. |  4 |  
  8. +----+  
  9. 3 rows in set (0.00 sec)  
  10. mysql> select max(id) from user;  
  11. +---------+  
  12. | max(id) |  
  13. +---------+  
  14. |       4 |  
  15. +---------+  
  16. 1 row in set (0.00 sec)  
  17. mysql> select min(id) from user;  
  18. +---------+  
  19. | min(id) |  
  20. +---------+  
  21. |       1 |  
  22. +---------+  
  23. 1 row in set (0.00 sec) 

繼續閱讀