取別名&表連接
JOIN ON
多表連接必須有一個(gè)關(guān)鍵字段
- 如下圖,學(xué)生表和成績(jī)表有sno
- 成績(jī)表和課程表有cno
- 課程表和老師表有tno
SELECT u.*,v.*
FROM t_user_user u,t_cst_account v
WHERE u.cst_id=v.cst_id AND u.user_name='chendj123';
-- 取別名 join on 連接兩張表格
SELECT *
FROM t_user_user bb JOIN t_cst_customer dd ON bb.`cst_id`= dd.`cst_id`;
-- 查詢chendj123的密碼和手機(jī)號(hào)
SELECT bb.`pwd`,dd.`phone`
FROM t_user_user bb JOIN t_cst_customer dd ON bb.`cst_id`=dd.`cst_id`
WHERE bb.user_name='chendj123';
-- 根據(jù)各自用戶名 查詢賬戶余額
SELECT b.`user_name`,d.`balance`
FROM t_user_user b JOIN t_cst_account d ON b.`cst_id`=d.`cst_id`
WHERE b.`user_name`='chendj123';
-- 查詢手機(jī)號(hào)是131開頭的用戶,顯示該用戶的用戶名和密碼
SELECT d.`phone`,b.`user_name`,b.`pwd`
FROM t_user_user b JOIN t_cst_customer d
ON b.`cst_id`=d.`cst_id`
WHERE d.`phone` LIKE '131%';
-- 查詢真實(shí)姓名 馬超2 的用戶,密碼,凍結(jié)狀態(tài)
SELECT d.`user_name`,d.`pwd`,b.`status`
FROM t_cst_customer b JOIN t_user_user d
ON b.`cst_id`=d.`cst_id`
WHERE b.`cst_name`='馬超2';
-- 查詢?cè)A的學(xué)習(xí)成績(jī)
SELECT bb.`degree`
FROM scores bb JOIN students dd
ON bb.`sno`=dd.`sno`
WHERE dd.`sname`='曾華';
-- 計(jì)算機(jī)導(dǎo)論的老師是
SELECT te.`tname`
FROM courses co JOIN teachers te
ON co.`tno`=te.`tno`
WHERE co.`cname`='計(jì)算機(jī)導(dǎo)論';
-- 查詢課程表,教師信息,使用右連接
SELECT co.*,te.*
FROM courses co RIGHT JOIN teachers te
ON co.`tno`=te.`tno`;
-- 查詢成績(jī)表,課程表,使用左連接
SELECT *
FROM scores sc LEFT JOIN courses co
ON sc.`cno`=co.`cno`;
-
周末練習(xí)題
1灸异、 查詢Student表中的所有記錄的Sname悔雹、Ssex和Class列。
2蛹磺、 查詢教師所有的單位即不重復(fù)的Depart列汇在。
3、 查詢Student表的所有記錄。
4器净、 查詢Score表中成績(jī)?cè)?0到80之間的所有記錄。
5当凡、 查詢Score表中成績(jī)?yōu)?5山害,86或88的記錄。
6沿量、 查詢Student表中“95031”班或性別為“女”的同學(xué)記錄浪慌。
7、 以Class降序查詢Student表的所有記錄朴则。
8权纤、 以Cno升序、Degree降序查詢Score表的所有記錄乌妒。
9汹想、 查詢“95031”班的學(xué)生人數(shù)。
10撤蚊、查詢Score表中的最高分的學(xué)生學(xué)號(hào)和課程號(hào)古掏。
嵌套查詢
20、查詢score中選學(xué)一門以上課程的同學(xué)中分?jǐn)?shù)為非最高分成績(jī)的記錄侦啸。
-- 找出選修多門課程 的學(xué)生
select sno
from scores
group by sno
having count(sno)>1
-- 判斷不等于最大的分?jǐn)?shù)
SELECT
FROM scores
WHERE degree !=
-- 找出最大分?jǐn)?shù)的
SELECT MAX(degree)
FROM scores
select *
from scores
where degree !=(SELECT MAX(degree)
FROM scores) and sno in (SELECT sno
FROM scores
GROUP BY sno
HAVING COUNT(sno)>1)
21槽唾、查詢成績(jī)高于學(xué)號(hào)為“109”席镀、課程號(hào)為“3-105”的成績(jī)的所有記錄。
22夏漱、查詢和學(xué)號(hào)為108的同學(xué)同年出生的所有學(xué)生的Sno豪诲、Sname和Sbirthday列。
23挂绰、查詢“張旭“教師任課的學(xué)生成績(jī)屎篱。
24、查詢選修某課程的同學(xué)人數(shù)多于5人的教師姓名葵蒂。
25交播、查詢95033班和95031班全體學(xué)生的記錄。
26践付、查詢存在有85分以上成績(jī)的課程Cno.
27秦士、查詢出“計(jì)算機(jī)系“教師所教課程的成績(jī)表。
28永高、查詢“計(jì)算機(jī)系”與“電子工程系“不同職稱的教師的Tname和Prof隧土。
29、查詢選修編號(hào)為“3-105“課程且成績(jī)至少高于選修編號(hào)為“3-245”的同學(xué)的Cno命爬、Sno和Degree,并按Degree從高到低次序排序曹傀。
30、查詢選修編號(hào)為“3-105”且成績(jī)高于選修編號(hào)為“3-245”課程的同學(xué)的Cno饲宛、Sno和Degree.
31皆愉、查詢所有教師和同學(xué)的name、sex和birthday.
32艇抠、查詢所有“女”教師和“女”同學(xué)的name幕庐、sex和birthday.
33、查詢成績(jī)比該課程平均成績(jī)低的同學(xué)的成績(jī)表家淤。
34异剥、查詢所有任課教師的Tname和Depart.
35 查詢所有未講課的教師的Tname和Depart.
36、查詢至少有2名男生的班號(hào)媒鼓。
37届吁、查詢Student表中不姓“王”的同學(xué)記錄。
38绿鸣、查詢Student表中每個(gè)學(xué)生的姓名和年齡。
39暂氯、查詢Student表中最大和最小的Sbirthday日期值潮模。
40、以班號(hào)和年齡從大到小的順序查詢Student表中的全部記錄痴施。
41擎厢、查詢“男”教師及其所上的課程究流。
42、查詢最高分同學(xué)的Sno动遭、Cno和Degree列芬探。
43、查詢和“李軍”同性別的所有同學(xué)的Sname.
44厘惦、查詢和“李軍”同性別并同班的同學(xué)Sname.
45偷仿、查詢所有選修“計(jì)算機(jī)導(dǎo)論”課程的“男”同學(xué)的成績(jī)表