熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> MySQL >> 正文

基於SQL中的數據查詢語句匯總

2013-11-23 21:06:16  來源: MySQL 
以下是對SQL中的數據查詢語句進行了匯總介紹需要的朋友可以過來參考下  

  where條件表達式
統計函數

復制代碼 代碼如下:
Select count() from student;

  
like模糊查詢
統計班上姓張的人數

復制代碼 代碼如下:
select count(*) from student where realName like 張%;

  
統計班上張姓兩個字的人數

復制代碼 代碼如下:
select count(*) from student where realName like 張_;

  
統計班上杭州籍的學生人數

復制代碼 代碼如下:
select count(*) from student where home like %杭州%;

  
查詢班上每位學生的年齡

復制代碼 代碼如下:
select realNameyear(now())year(birthday) as age from student;

  
查詢年出生的學生

復制代碼 代碼如下:
select realName from student where year(birthday)>=;

  
查詢年出生的學生

復制代碼 代碼如下:
select realName from student where year(birthday)<= and year(birthday)>=;
select * from student where year(birthday) between and ;

  
查詢班上男女生人數

復制代碼 代碼如下:
select sexcount(*) from student group by sex;

  
in子句查詢班上B或O型血的學生

復制代碼 代碼如下:
select realNameblood from student where blood in(BO); 

  
子查詢
子查詢也可稱之為嵌套查詢有些時候一次查詢不能解決問題需要多次查詢

  按子查詢返回的記錄行數區分可分為單行子查詢和多行子查詢

復制代碼 代碼如下:
select * from emp where sal>(       select sal from emp where ename=ALLEN‘ or ename =‘KING)

  
上例是找出比allen工資高的所有員工

  A子查詢一般先於主語句的運行
B必須有( )表示一個整體
C習慣上把子查詢放在條件的右邊
多行子查詢someanyall

  連接語句(應用於多表查詢)
包括內聯外聯(左外連和右外聯)
內聯(inner join)把兩張表相匹配的行查詢出來

查詢每個學生的各科成績顯示“姓名”“課程名”“分數”三列

復制代碼 代碼如下:
select arealnameccourseNamebscore from stu_student as a inner join stu_score as b on asid=bsid inner join stu_course c on bcid=ccid

  
還有一種方法不采用inner join:

復制代碼 代碼如下:
select arealnameccourseNamebscore from student ascore bcourse c where asid=bsid and ccid=bcid

  
外聯分左外聯和右外聯
Left outer join:查詢兩邊表的匹配記錄且將左表的不匹配記錄也查詢出來
Right outer join:等上將右表不匹配記錄也查詢出來

復制代碼 代碼如下:

  
select arealnamebscore from stu_student as a left outer join stu_score as b on asid=bsid


From:http://tw.wingwit.com/Article/program/MySQL/201311/29578.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.