国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
MySQL數(shù)據(jù)庫(kù)實(shí)操教程(15)——表的關(guān)聯(lián)關(guān)系

自定義View系列教程00–推翻自己和過(guò)往,重學(xué)自定義View
自定義View系列教程01–常用工具介紹
自定義View系列教程02–onMeasure源碼詳盡分析
自定義View系列教程03–onLayout源碼詳盡分析
自定義View系列教程04–Draw源碼分析及其實(shí)踐
自定義View系列教程05–示例分析
自定義View系列教程06–詳解View的Touch事件處理
自定義View系列教程07–詳解ViewGroup分發(fā)Touch事件
自定義View系列教程08–滑動(dòng)沖突的產(chǎn)生及其處理


探索Android軟鍵盤(pán)的疑難雜癥
深入探討Android異步精髓Handler
詳解Android主流框架不可或缺的基石
站在源碼的肩膀上全解Scroller工作機(jī)制


Android多分辨率適配框架(1)— 核心基礎(chǔ)
Android多分辨率適配框架(2)— 原理剖析
Android多分辨率適配框架(3)— 使用指南


Android程序員C語(yǔ)言自學(xué)完備手冊(cè)
講給Android程序員看的前端系列教程(圖文版)
講給Android程序員看的前端系列教程(視頻版)


版權(quán)聲明


關(guān)聯(lián)關(guān)系

在實(shí)際開(kāi)發(fā)中數(shù)據(jù)表之間存在著各種關(guān)聯(lián)關(guān)系。在此,介紹MySQL中數(shù)據(jù)表的三種關(guān)聯(lián)關(guān)系。

多對(duì)一

多對(duì)一(亦稱(chēng)為一對(duì)多)是數(shù)據(jù)表中最常見(jiàn)的一種關(guān)系。例如:?jiǎn)T工與部門(mén)之間的關(guān)系,一個(gè)部門(mén)可以有多個(gè)員工;而一個(gè)員工不能屬于多個(gè)部門(mén)只屬于某個(gè)部門(mén)。在多對(duì)一的表關(guān)系 中,應(yīng)將外鍵建在多的一方否則會(huì)造成數(shù)據(jù)的冗余。

多對(duì)多

多對(duì)多是數(shù)據(jù)表中常見(jiàn)的一種關(guān)系。例如:學(xué)生與老師之間的關(guān)系,一個(gè)學(xué)生可以有多個(gè)老師而且一個(gè)老師有多個(gè)學(xué)生。通常情況下,為了實(shí)現(xiàn)這種關(guān)系需要定義一張中間表(亦稱(chēng)為連接表)該表會(huì)存在兩個(gè)外鍵分別參照老師表和學(xué)生表。

一對(duì)一

在開(kāi)發(fā)過(guò)程中,一對(duì)一的關(guān)聯(lián)關(guān)系在數(shù)據(jù)庫(kù)中并不常見(jiàn);因?yàn)橐赃@種方式存儲(chǔ)的信息通常會(huì)放在同一張表中。

接下來(lái),我們來(lái)學(xué)習(xí)在一對(duì)多的關(guān)聯(lián)關(guān)系中如果添加和刪除數(shù)據(jù)。先準(zhǔn)備一些測(cè)試數(shù)據(jù),代碼如下:

DROP TABLE IF EXISTS student;DROP TABLE IF EXISTS class;-- 創(chuàng)建班級(jí)表CREATE TABLE class( cid int(4) NOT NULL PRIMARY KEY, cname varchar(30) ); -- 創(chuàng)建學(xué)生表CREATE TABLE student( sid int(8) NOT NULL PRIMARY KEY, sname varchar(30), classid int(8) NOT NULL);-- 為學(xué)生表添加外鍵約束ALTER TABLE student ADD CONSTRAINT fk_student_classid FOREIGN KEY(classid) REFERENCES class(cid);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 創(chuàng)建學(xué)生表和班級(jí)表
  • 學(xué)生表中有一個(gè)classid字段,該字段的值參照于班級(jí)表的cid字段
  • 為學(xué)生表添加外鍵

添加數(shù)據(jù)

-- 向班級(jí)表插入數(shù)據(jù)INSERT INTO class(cid,cname)VALUES(1,'Java');INSERT INTO class(cid,cname)VALUES(2,'Python');-- 向?qū)W生表插入數(shù)據(jù)INSERT INTO student(sid,sname,classid)VALUES(1,'tome',1);INSERT INTO student(sid,sname,classid)VALUES(2,'lucy',1);INSERT INTO student(sid,sname,classid)VALUES(3,'lili',2);INSERT INTO student(sid,sname,classid)VALUES(4,'domi',2);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

先為班級(jí)表中插入數(shù)據(jù)在為學(xué)生表插入數(shù)據(jù)。

思考:為什么不先向?qū)W生表中插入數(shù)據(jù)再向班級(jí)表插入數(shù)據(jù)?
因?yàn)椋簩W(xué)生表中有的classid字段的值參照于班級(jí)表的cid字段。
所以:必須要先向班級(jí)表中插入數(shù)據(jù)。

查詢(xún)數(shù)據(jù)

請(qǐng)查詢(xún)Java班的所有學(xué)生。

代碼如下:

-- 先查詢(xún)出Java班的cid為1SELECT cid FROM class WHERE cname='Java';-- 再依據(jù)cid去查詢(xún)學(xué)生信息SELECT * FROM student WHERE classid=1;
  • 1
  • 2
  • 3
  • 4

把如上兩句代碼合寫(xiě),代碼如下:

-- 查詢(xún)Java班的所有學(xué)生SELECT * FROM student WHERE classid=(SELECT cid FROM class WHERE cname='Java');
  • 1
  • 2

刪除數(shù)據(jù)

請(qǐng)從班級(jí)表中刪除Java班級(jí)。在此,請(qǐng)注意:班級(jí)表和學(xué)生表之間存在關(guān)聯(lián)關(guān)系;要?jiǎng)h除Java班級(jí),應(yīng)該先刪除學(xué)生表中與該班相關(guān)聯(lián)的學(xué)生。否則,假若先刪除Java班那么學(xué)生表中的cid就失去了關(guān)聯(lián)。代碼如下:

-- 刪除Java班級(jí)DELETE FROM student WHERE classid=(SELECT cid FROM class WHERE cname='Java');DELETE FROM class WHERE cname='Java';
  • 1
  • 2
  • 3

附錄

在此,附錄本節(jié)教程的源碼,如下所示:

DROP TABLE IF EXISTS student;DROP TABLE IF EXISTS class;-- 創(chuàng)建學(xué)生表CREATE TABLE class(    cid int(4) NOT NULL PRIMARY KEY,    cname varchar(30) ); -- 創(chuàng)建班級(jí)表CREATE TABLE student(    sid int(8) NOT NULL PRIMARY KEY,    sname varchar(30),    classid int(8) NOT NULL);-- 為學(xué)生表添加外鍵約束ALTER TABLE student ADD CONSTRAINT fk_student_classid FOREIGN KEY(classid) REFERENCES class(cid);-- 向班級(jí)表插入數(shù)據(jù)INSERT INTO class(cid,cname)VALUES(1,'Java');INSERT INTO class(cid,cname)VALUES(2,'Python');-- 向?qū)W生表插入數(shù)據(jù)INSERT INTO student(sid,sname,classid)VALUES(1,'tome',1);INSERT INTO student(sid,sname,classid)VALUES(2,'lucy',1);INSERT INTO student(sid,sname,classid)VALUES(3,'lili',2);INSERT INTO student(sid,sname,classid)VALUES(4,'domi',2);-- 查詢(xún)Java班的所有學(xué)生SELECT * FROM student WHERE classid=(SELECT cid FROM class WHERE cname='Java');-- 刪除Java班級(jí)DELETE FROM student WHERE classid=(SELECT cid FROM class WHERE cname='Java');DELETE FROM class WHERE cname='Java';
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
經(jīng)常用到的 SQL語(yǔ)句查詢(xún)
MySQL(學(xué)生表、教師表、課程表、成績(jī)表)多表查詢(xún)
SELECT中的多表連接
數(shù)據(jù)庫(kù)筆試題
SQL簡(jiǎn)單查詢(xún)
小程序云開(kāi)發(fā)聯(lián)表數(shù)據(jù)查詢(xún)lookup以及云函數(shù)中的應(yīng)用
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服