mysql怎么多表操作,mysql 多表連接

mysql 如何多表查詢

CREATE TABLE A

創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括立山網(wǎng)站建設(shè)、立山網(wǎng)站制作、立山網(wǎng)頁(yè)制作以及立山網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,立山網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到立山省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

(`id` int, `title` varchar(2));

INSERT INTO A

(`id`, `title`)

VALUES

(1, 'ab'),

(2, 'cd') ;

CREATE TABLE B

(`id` int, `author` varchar(5));

INSERT INTO B

(`id`, `author`)

VALUES

(1, 'zhang'),

(2, 'rui'),

(3, 'gang');

查詢下面的語(yǔ)句:

select * from A ,B where A.ID=B.ID;

mysql數(shù)據(jù)庫(kù),多個(gè)表的查詢操作

要點(diǎn):left

join,right

join,inner

join

首先有如下兩個(gè)表:

student:

id(int)

name(nvarchar)

1

a

2

b

3

c

4

d

5

e

6

f

quiz:

id(int)

score(int)

1

60

2

70

4

80

6

90

8

100

9

30

內(nèi)連接:(inner

join)包括連接表的匹配行

select

student.name,quiz.score

from

quiz

inner

join

student

on

student.id=quiz.id

name

score

a

60

b

70

d

80

f

90

左連接:(left

join)包括連接表匹配行以及左連接表的所有行

select

student.name,quiz.score

from

student

left

join

quiz

on

student.id=quiz.id

name

score

a

60

b

70

c

null

d

80

e

null

f

90

右連接:(right

join)結(jié)果包括連接表的匹配行以及右連接表的所有行

select

student.name,quiz.score

from

student

right

join

quiz

on

student.id=quiz.id

name

score

a

60

b

70

d

80

f

90

null

100

null

30

當(dāng)然,也可以看出左連接也可以寫(xiě)成右連接的形式:

select

student.name,quiz.score

from

student

right

join

quiz

on

student.id=quiz.id等價(jià)于

select

student.name,quiz.score

from

quiz

left

join

student

on

student.id=quiz.id

mysql多表查詢并創(chuàng)建視圖

MySQL在多個(gè)數(shù)據(jù)表上創(chuàng)建視圖

在MySQL中,使用CREATE VIEW語(yǔ)句也可以在兩個(gè)或兩個(gè)以上的數(shù)據(jù)表上創(chuàng)建視圖。

實(shí)例

在department表和worker表上創(chuàng)建一個(gè)名為worker_view1的視圖。

1. 創(chuàng)建視圖的代碼如下:

CREATE ALGORITHM=MERGE VIEW

worker_view1(name,department,sex,age,location)

AS SELECT name,department.d_name,sex,birthday,address

FROM worker,department WHERE worker.d_id=department.d_id

WITH LOCAL CHECK OPTION;

在DOS提示符窗口中查看MySQL在多個(gè)數(shù)據(jù)表上創(chuàng)建視圖的操作效果。如下圖所示:

在DOS提示符窗口中查看MySQL在多個(gè)數(shù)據(jù)表上創(chuàng)建視圖的操作效果

從上圖中可以看出,代碼的執(zhí)行結(jié)果顯示視圖創(chuàng)建成功。

2. 使用DESC語(yǔ)句查詢虛擬表的結(jié)構(gòu)。如下圖所示:

使用DESC語(yǔ)句查詢虛擬表的結(jié)構(gòu)

從上圖中可以看出,視圖worker_view1的屬性分別為name、department、sex、age和location。

視圖指定的屬性列表對(duì)應(yīng)著兩個(gè)不同的表的屬性列(字段)。

視圖的屬性名與屬性列表中的屬性名相同。

該實(shí)例中的SELECT語(yǔ)句查詢出了department表的d_name字段,還有worker表的name、sex、birthday和address。其中,department表的d_name字段對(duì)應(yīng)視圖的department字段;worker表的birthday字段對(duì)應(yīng)視圖的age字段。

同時(shí),視圖worker_view1的ALGORITHM的值指定為MERGE。還增加了WITH LOCAL CHECK OPTION約束。

本示例說(shuō)明,視圖可以將多個(gè)表上的操作簡(jiǎn)潔的表示出來(lái)。

提示

同時(shí)在多個(gè)表上創(chuàng)建視圖是非常有用的。比如,系統(tǒng)中有student表、department表、score表和grade表,分別存儲(chǔ)學(xué)生的信息、院系信息、課程信息和成績(jī)信息??梢栽谶@4個(gè)表上創(chuàng)建一個(gè)視圖,用來(lái)顯示學(xué)生姓名、學(xué)號(hào)、班級(jí)、院系、所選課程和課程成績(jī)。

MySQL怎么用1個(gè)語(yǔ)句對(duì)多張表執(zhí)行批量操作(多張表是相同結(jié)構(gòu),內(nèi)容不同)

寫(xiě)存儲(chǔ)過(guò)程函數(shù)(如function cleanTable),在函數(shù)中寫(xiě)50條delete語(yǔ)句,或者在函數(shù)中弄個(gè)循環(huán)都可以。然后在客戶端執(zhí)行call cleanTable()就可以了。

文章題目:mysql怎么多表操作,mysql 多表連接
轉(zhuǎn)載注明:http://www.muchs.cn/article36/hssisg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版網(wǎng)站設(shè)計(jì)、自適應(yīng)網(wǎng)站Google、網(wǎng)頁(yè)設(shè)計(jì)公司用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)