欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL數(shù)據(jù)庫的多表操作

 更新時(shí)間:2022年08月03日 08:51:05   作者:面屏思過???????  
這篇文章主要介紹了MySQL數(shù)據(jù)庫的多表操作,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助

一、 數(shù)據(jù)庫的多表操作

數(shù)據(jù)庫的多表關(guān)系:

  • 一對(duì)一
  • 一對(duì)多
  • 多對(duì)一
  • 多對(duì)多

二,操作

一對(duì)一

建立數(shù)據(jù)表personcard,設(shè)置person數(shù)據(jù)表id為主鍵且自增,設(shè)置cardid為外鍵

// 創(chuàng)建person表
CREATE TABLE person (
id INT PRIMARY KEY AUTO_INCREMENT, // 主鍵 自增
NAME VARCHAR(20)
);

// 創(chuàng)建card表
CREATE TABLE card (
	id INT PRIMARY KEY AUTO_INCREMENT, // 主鍵 自增
	number VARCHAR(20) UNIQUE NOT NULL,// 不能為null
	pid INT UNIQUE,// pid唯一
	CONSTRAINT cp_fk1 FOREIGN KEY (pid) REFERENCES person(id) // 外鍵列
);

一對(duì)多

創(chuàng)建user數(shù)據(jù)表和orderlist數(shù)據(jù)表,這里不再設(shè)置uid為唯一值,因此是一對(duì)多的關(guān)系

// 創(chuàng)建user表
CREATE TABLE USER(
	id INT PRIMARY KEY AUTO_INCREMENT, // 主鍵 自增
	NAME VARCHAR(20)
);

// 添加數(shù)據(jù)
INSERT INTO USER VALUES (NULL, '張三'),(NULL, '李四');
//  創(chuàng)建orderlist表
CREATE TABLE orderlist(
	id INT PRIMARY KEY AUTO_INCREMENT,
	number VARCHAR(20),
	uid INT, // 這里沒有再設(shè)置唯一值
	CONSTRAINT out_fk1 FOREIGN KEY (uid) REFERENCES USER(id) // 外鍵列

);
-- 添加數(shù)據(jù)
INSERT INTO orderlist VALUES (NULL, 'hm001', 1), (NULL, 'hm002', 1),(NULL, 'hm003', 2),(NULL, 'hm004', 2);
  • 多對(duì)多 創(chuàng)建student數(shù)據(jù)表,設(shè)置主鍵,再創(chuàng)建course數(shù)據(jù)表,創(chuàng)建中間表將兩者關(guān)聯(lián)起來
// 創(chuàng)建student表
CREATE TABLE student(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20)

);
// 創(chuàng)建course表
CREATE TABLE course (
	id INT PRIMARY KEY AUTO_INCREMENT,
	NAME VARCHAR(10)
);

//  創(chuàng)建中間表
CREATE TABLE stu_course(
	id INT PRIMARY KEY AUTO_INCREMENT,
	sid INT,
	cid INT,
	CONSTRAINT sc_fk1 FOREIGN KEY (sid) REFERENCES student(id),// 設(shè)置外鍵
	CONSTRAINT sc_fk2 FOREIGN KEY (cid) REFERENCES course(id)// 設(shè)置外鍵
);

多表查詢-內(nèi)鏈查詢:

通過規(guī)定語法,進(jìn)行內(nèi)鏈查詢

// 標(biāo)準(zhǔn)語法: SELECT 列名 FROM 表名1 [INNER] JOIN 表名2 ON 關(guān)聯(lián)條件;
-- 查詢用戶信息和對(duì)應(yīng)的訂單信息
SELECT * FROM USER INNER JOIN orderlist ON orderlist.uid = user.id;
// 設(shè)置別名進(jìn)行查詢
SELECT u.name, u.age, o.number FROM USER u INNER JOIN orderlist o ON o.uid = u.id;

多表查詢-隱式內(nèi)連接:

// 標(biāo)準(zhǔn)語法: SELECT 列名 FROM 表名1,表名2 WHERE 關(guān)聯(lián)條件;
// 查詢用戶姓名,年齡。和訂單編號(hào)
SELECT u.name, u.age, o.number FROM USER u, orderlist o WHERE o.uid = uid;

多表查詢-左外連接:

標(biāo)準(zhǔn)語法: SELECT 列名 FROM 表名1 LEFT [OUTER] JOIN 表名2 ON 條件;

// 查詢所有用戶信息,以及用戶對(duì)應(yīng)的訂單信息

SELECT u.* o.number FROM USER u LEFT OUTER JOIN orderlist o ON o.uid = u.id;

多表查詢-右外連接:

標(biāo)準(zhǔn)語法: SELECT 列名 FROM 表名1 RIGHT [OUTER] JOIN 表名2 ON 條件;
//  查詢所有訂單信息,以及訂單所屬的用戶信息
SELECT o.*, u.name FROM USER u RIGHT OUTER JOIN orderlist o ON o.uid = u.id;

多表查詢-子查詢:

// 結(jié)果是單行單列的
// 標(biāo)準(zhǔn)語法: SELECT 列名 FROM 表名 WHERE 列名=(SELECT 列名 FROM 表名 [WHERE 條件]);

// 查詢年齡最高的用戶姓名
SELECT NAME,age FROM USER WHERE age=(SELECT MAX(age) FROM USER);

// 結(jié)果是多行單列的
// 標(biāo)準(zhǔn)語法:SELECT 列名 FROM 表名 WHERE 列名 [NOT] IN (SELECT 列名 FROM 表名 [WHERE 條件]); 

// 查詢張三和李四的訂單信息
SELECT * FROM orderlist WHERE uid IN (SELECT id FROM USER WHERE NAME IN ('張三','李四'));

// 結(jié)果是多行多列的
// 標(biāo)準(zhǔn)語法: SELECT 列名 FROM 表名 [別名],(SELECT 列名 FROM 表名 [WHERE 條件]) [別名] [WHERE 條件];

// 查詢訂單表中id大于4的訂單信息和所屬用戶信息
SELECT u.name, o.number FROM USER u, (SELECT * FROM orderlist WHERE id > 4) o WHERE o.uid=u.id;

到此這篇關(guān)于MySQL數(shù)據(jù)庫的多表操作的文章就介紹到這了,更多相關(guān)MySQL表操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql5.7.19 winx64解壓縮版安裝配置教程

    mysql5.7.19 winx64解壓縮版安裝配置教程

    這篇文章主要為大家詳細(xì)介紹了mysql5.7.19 winx64解壓縮版安裝配置教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • mysql數(shù)據(jù)庫插入速度和讀取速度的調(diào)整記錄

    mysql數(shù)據(jù)庫插入速度和讀取速度的調(diào)整記錄

    由于項(xiàng)目變態(tài)需求;需要在一個(gè)比較短時(shí)間段急劇增加數(shù)據(jù)庫記錄(兩三天內(nèi),由于0增加至4億)。在整個(gè)過程調(diào)優(yōu)過程非常艱辛
    2012-07-07
  • mysql手動(dòng)刪除BINLOG的方法

    mysql手動(dòng)刪除BINLOG的方法

    用于刪除列于在指定的日志或日期之前的日志索引中的所有二進(jìn)制日志。這些日志也會(huì)從記錄在日志索引文件
    2013-03-03
  • 分享很少見很有用的SQL功能CORRESPONDING

    分享很少見很有用的SQL功能CORRESPONDING

    這篇文章主要介紹了分享很少見很有用的SQL功能CORRESPONDING,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-08-08
  • MySQL8.0.24版本Release Note的一些改進(jìn)點(diǎn)

    MySQL8.0.24版本Release Note的一些改進(jìn)點(diǎn)

    這篇文章主要介紹了MySQL8.0.24版本Release Note的一些改進(jìn)點(diǎn),幫助大家更好的對(duì)新版本的MySQL進(jìn)行測(cè)試使用,感興趣的朋友可以了解下
    2021-04-04
  • Mysql表,列,庫增刪改查問題小結(jié)

    Mysql表,列,庫增刪改查問題小結(jié)

    下面是我總結(jié)的一些基礎(chǔ)的sql知識(shí),方便以后使用,需要的朋友參考可以參考下
    2017-07-07
  • Mysql5.7.18的安裝與主從復(fù)制圖文詳解

    Mysql5.7.18的安裝與主從復(fù)制圖文詳解

    這篇文章主要介紹了Mysql5.7.18的安裝與主從復(fù)制圖文詳解,需要的朋友可以參考下
    2017-08-08
  • DB為何大量出現(xiàn)select @@session.tx_read_only 詳解

    DB為何大量出現(xiàn)select @@session.tx_read_only 詳解

    這篇文章主要給大家介紹了關(guān)于DB為何大量出現(xiàn)select @@session.tx_read_only 的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • MySQL如何快速創(chuàng)建800w條測(cè)試數(shù)據(jù)表

    MySQL如何快速創(chuàng)建800w條測(cè)試數(shù)據(jù)表

    這篇文章主要介紹了MySQL如何快速創(chuàng)建800w條測(cè)試數(shù)據(jù)表,下面文章圍繞MySQL創(chuàng)建測(cè)試數(shù)據(jù)表的相關(guān)資料展開詳細(xì)內(nèi)容,具有一的的參考價(jià)值,需要的小伙伴可以參考一下
    2022-03-03
  • Mysql索引常見問題匯總

    Mysql索引常見問題匯總

    這篇文章主要介紹了Mysql索引常見問題匯總,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-10-10

最新評(píng)論