多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > 數據庫應用 > MySQL_05-Select查詢詳解

MySQL_05-Select查詢詳解

來源:程序員人生   發布時間:2015-01-06 08:40:43 閱讀次數:3301次

SQL查詢詳解

1.Orderby

a) Order by 字段 asc | desc

b) 允許多字段排序: 先按第1個字段排序,如果不能辨別,再使用第2個字段排序;以此類推

2.Limit(限制取得的記錄數量)

a) 語法: limit offset, row_count  (offset:偏移量,下標從0開始;row_count:總記錄數)。例如:limit 2,3 表示從第2條開始,取3條(即第2條到第4條記錄)

3.Distinct

a) 去除重復記錄。  

b) 語法: select distinct 字段 from .......

4.Union

a) 將兩個不同關系中的查詢聯合起來返回

b) 例:查詢1班和2班的授課老師

(Select teacher from t_class where class_id=’1’)

Union (all)

(Select teacher from t_class where class_id=”2”)

c) 注意:如果union的結果有重復數據,會自動消除重復,查詢結果會丟失數據!解決:通過union的選項all來實現。  Union all...

d) 注意:union操作中子語句結果的排序問題

i. 將子語句包裹在括號內,非必須,但是便于瀏覽,邏輯更加清晰!

ii. 子語句的order by只有配合limit時才會生效!沒有limit時排序是不起作用的!

e) union的終究結果進行排序(在語句最后添加order by ... 便可)

(Select teacher from t_class where class_id=’1’)

Union (all)

(Select teacher from t_class where class_id=”2”)

Order by stu_number desc;

 

5.子查詢(*)

a) 子查詢語句用括號括起來

b) 子查詢分類

i. 子查詢出現的位置:where型(出現在where后)、from型、exists

ii. 子查詢的返回值情勢: 單1值(標量)、列、表

c) 子查詢例子

i. 從教師表中查出授課天數最多的老師的姓名:Select t_name from t_teacher where teach_days=(select max(teach_days) from t_teacher);  

注意:使用以下語句也可能到達效果

Select t_name from t_teacher order by teach_days desc limit 1;

但是,可能出現問題。如果有幾個老師的授課天數都最大并且1樣,這樣會漏掉結果!

ii. 子查詢返回集合: in ,not in, any, all

iii. 若子查詢返回結果是1行(行子查詢1般使用不多,但是要掌握!!!):使用filed1,field2,...這類情勢構建1行來和子查詢返回的結果進行比較!!!

例:要求從教師表中查詢出和老師張3性別相同,并且也教過張3所教班級的其他老師的信息。

Select t_name, gender, age, course_name from t_teacher

 where (gender, course_name) =   //構建1行于子查詢結果比較(使用最多的是 和 in

(select distinct gender, course_name from t_teacher where t_name=張3 and course_name=MySql數據庫教程)

iv. 子查詢返回1個表(通經常使用于from型子查詢,即子查詢返回的結果在from關鍵字后使用)。將1個復雜的邏輯分步處理。

v. Exists子查詢: existssubquery),不提供數據,相當于1個布爾表達式,判斷是不是獲得到了數據。

 

 

6.連接查詢(*)

a) Inner:數據內部的連接,要求參與連接的數據都存在才能履行的連接。

i. Inner join 內連接

ii. Cross join 交叉鏈接(笛卡爾鏈接):沒有連接條件,結果集的大小等于兩個參與連接的表的結果集笛卡爾乘積。

b) Outer:參與連接的1個或多個數據不真實存在的連接。

i. Left [outer] join 左外連接(開發中使用最多!!!): 左外連接時,如果出現左側表數據連接不到右側表的數據,則左側表的數據終究被保存在結果內,右表對應字段填充NULL; 而如果出現右側表的數據連接不到左側表數據的情況,右側數據被拋棄。

ii. Right [outer] join 右外連接

iii. Full join 全連接(暫不支持)

c) Natural 自然連接(natural join, natural left join, natural right join): 通過mysql自己的判斷完成連接進程,不需要指定連接條件。Mysql自動使用多表內相同的字段作為連接條件。

Select * from t_one natural join t_two;

d) 連接條件

i. On: 連接條件

ii. Where: 對連接的數據過濾.

iii. Using: 連接條件,只有當兩個表中連接的字段相同時才使用using,1般情況下很少使用,通常使用on。例如有兩個表:t_student_main_info(學生經常使用屬性)和t_student_other_info(學生不經常使用信息),它們的主鍵名稱相同,都叫id,此時才能使用using關鍵字。 Select * from t_student_main_info join t_student_other_info using(id);

 

注:連接操作支持多表連接,可以1直無窮連接下去,但是極少使用。例如:

Select t_two.* ,t_three.* from t_one left join t_two on ... Left join t_three on ... where...

 

兩個例子:

1.假定兩個表分別為teammatch

Id

Team_name

2

Php0331

5

Php0228

1

Php0115

7

Php0505

 

id

Host_id

Guest_id

time

result

1

2

1

10:00

34:28

2

2

7

15:00

35:45

3

 

 

 

 

4

 

 

 

 

 

要求查詢得到以下結果:

主隊

客隊

比賽時間

比賽結果

Php0331

Php0115

10:00

34:28

Php0331

Php0505

15:00

35:45

 

由于結果中每行記錄有兩個team_name,所以需要連接team2次!!!

Match left join team on match.host_id=team.id left join team on match.guest_id=team.id

 

2.本身連接

有以下課程表course

cno

cname

cpno

credit

1

數據庫

5

4

2

數學

 

2

3

信息系統

1

4

4

操作系統

6

3

5

數據結構

7

4

6

數據處理

 

2

7

C語言

6

4

要求查詢每門課的間接先修課:

Select first.cno, second.cpno from course first, course second where first.cpno=second.cno;

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久最新 | 日本中文字幕第一页 | 高清在线精品一区二区 | 亚洲第一免费视频 | 波多野结衣久久精品 | 黄色免费网址大全 | 亚州精品一区二区三区 | 亚洲人成综合在线播放 | 中文字幕精品视频在线 | 色中色在线视频 | 国产性夜夜春夜夜爽30 | 一本大道卡一卡二卡三视频 | 成人福利在线免费观看 | 99re热久久精品这里都是精品 | 欧美日韩国产高清 | 一区二区三区视频 | 久久三级影视 | 视频在线观看网站免费 | 日韩有码在线视频 | 午夜影院私人 | 国产精品久久久久久久久久一区 | 秋霞一级成人欧美理论 | 91免费福利| 伊人网网站| 亚洲国产精品久久久久久 | 在线精品国产成人综合第一页 | 日韩在线高清 | 亚洲成年网站在线777 | 欧美国产中文字幕 | 精品久久久久久久一区二区伦理 | 秋霞毛片| 欧美性色视频 | 精品亚洲456在线播放 | 亚洲欧美视频在线观看 | 亚洲精品专区 | 最近免费中文字幕大全免费 | 国产日本韩国不卡在线视频 | 国内自拍在线视频高清 | 久久精品国产一区二区 | 亚洲成人黄色网址 | 欧美肥老太太 |