一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

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

 佬總圖書館 2019-12-19

自定義View系列教程00–推翻自己和過往,重學(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–滑動沖突的產(chǎn)生及其處理


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


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


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


版權(quán)聲明


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

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

多對一

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

多對多

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

一對一

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

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

DROP TABLE IF EXISTS student;DROP TABLE IF EXISTS class;-- 創(chuàng)建班級表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é)生表和班級表
  • 學(xué)生表中有一個(gè)classid字段,該字段的值參照于班級表的cid字段
  • 為學(xué)生表添加外鍵

添加數(shù)據(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

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

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

查詢數(shù)據(jù)

請查詢Java班的所有學(xué)生。

代碼如下:

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

把如上兩句代碼合寫,代碼如下:

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

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

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

-- 刪除Java班級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)建班級表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);-- 向班級表插入數(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);-- 查詢Java班的所有學(xué)生SELECT * FROM student WHERE classid=(SELECT cid FROM class WHERE cname='Java');-- 刪除Java班級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

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    亚洲国产色婷婷久久精品| 大香蕉久草网一区二区三区| 韩日黄片在线免费观看| 国产免费自拍黄片免费看| 国产又大又黄又粗又免费| 国产水滴盗摄一区二区| 亚洲一区二区欧美在线| 亚洲中文字幕高清视频在线观看| 日本加勒比中文在线观看| 国内九一激情白浆发布| 冬爱琴音一区二区中文字幕| 午夜小视频成人免费看| 日韩精品第一区二区三区| 自拍偷拍福利视频在线观看 | 日本不卡片一区二区三区| 色综合伊人天天综合网中文| 亚洲一区二区三区中文久久| 91精品蜜臀一区二区三区| 国产在线成人免费高清观看av| 肥白女人日韩中文视频| 亚洲视频一区自拍偷拍另类| 日韩精品你懂的在线观看| 国产成人av在线免播放观看av| 在线懂色一区二区三区精品| 在线观看那种视频你懂的| 日本大学生精油按摩在线观看| 日韩成人h视频在线观看| 国产精品久久三级精品| 亚洲国产日韩欧美三级| 日本东京热视频一区二区三区| 精品国产亚洲一区二区三区| 五月婷婷综合缴情六月| 精品国模一区二区三区欧美| 亚洲一区二区三区日韩91| av在线免费播放一区二区| 爱在午夜降临前在线观看| 亚洲中文字幕在线观看四区| 青青操在线视频精品视频| 亚洲精品美女三级完整版视频| 能在线看的视频你懂的| 国产不卡在线免费观看视频|