最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL表的內外連接和視圖使用實戰(zhàn)練習

 更新時間:2024年01月29日 09:57:46   作者:YoungMLet  
這篇文章主要給大家介紹了關于MySQL表的內外連接和視圖使用的相關資料,MySQL的內外連接查詢是用于將兩個或多個表中的數(shù)據進行關聯(lián)查詢的一種方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

一、表的內外連接

表的連接分為內連和外連。

1. 內連接

內連接實際上就是利用 where 子句對兩種表形成的笛卡爾積進行篩選,我們前面學習的查詢都是內連接,也是在開發(fā)過程中使用的最多的連接查詢。

語法:

			select 字段 from 表1 inner join 表2 on 連接條件 and 其他條件;

例如:

  • 顯示 JAMES 的名字和部門名稱

用前面的寫法直接用笛卡爾積:

			select ename, dname from emp, dept where emp.deptno=dept.deptno and ename='JAMES';

用標準的內連接寫法:

			select ename, dname from emp
			    -> inner join dept
			    -> on emp.deptno = dept.deptno
			    -> and ename = 'JAMES';

2. 外連接

外連接分為左外連接和右外連接。

(1)左外連接

如果聯(lián)合查詢,左側的表完全顯示,我們就稱作是左外連接。

語法:

			select 字段名 from 表名1 left join 表名2 on 連接條件;

例如,先創(chuàng)建兩張表:

學生表,并插入數(shù)據:

成績表,并插入數(shù)據:

接下來要做的:

  • 查詢所有學生的成績,如果這個學生沒有成績,也要將學生的個人信息顯示出來

我們使用左外連接,將學生表的信息在左邊顯示,當左邊表和右邊表沒有匹配時,也會顯示左邊表的數(shù)據:

			select * from stu left join exam on stu.id = exam.id;

(2)右外連接

如果聯(lián)合查詢,右側的表完全顯示我們就說是右外連接。

語法:

			select 字段 from 表名1 right join 表名2 on 連接條件;
  • 對 stu 表和 exam 表聯(lián)合查詢,把所有的成績都顯示出來,即使這個成績沒有學生與它對應,也要顯示出來

      		select * from stu right join exam on stu.id=exam.id;
    

接下來我們繼續(xù)使用員工表進行練習:

  • 列出部門名稱和這些部門的員工信息,同時列出沒有員工的部門

方法一:

			select d.dname, e.* from dept d left join emp e on d.deptno = e.deptno;

方法二:

			select d.dname, e.* from emp e right join dept d on d.deptno = e.deptno;

3. 練習

二、視圖

1. 視圖的使用

我們上面所使用的內外連接所生成的表都是一個臨時表,假設我們頻繁地使用該表,那么有沒有辦法將這個臨時表轉化為虛擬表呢?

視圖就是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數(shù)據。視圖的數(shù)據變化會影響到基表,基表的數(shù)據變化也會影響到視圖。

  • 創(chuàng)建視圖

      			create view 視圖名 as select語句;
    

例如我們使用內連接:

而創(chuàng)建視圖:

我們會發(fā)現(xiàn)多了一個表結構,我們查看該表:

如上,我們發(fā)現(xiàn)該表和我們用內連接的結果一樣。

  • 修改了視圖,對基表數(shù)據有影響

  • 修改了基表,對視圖有影響

  • 刪除視圖

      			drop view 視圖名;
    

2. 視圖規(guī)則和限制

  • 與表一樣,必須唯一命名(不能出現(xiàn)同名視圖或表名);
  • 創(chuàng)建視圖數(shù)目無限制,但要考慮復雜查詢創(chuàng)建為視圖之后的性能影響;
  • 視圖不能添加索引,也不能有關聯(lián)的觸發(fā)器或者默認值;
  • 視圖可以提高安全性,必須具有足夠的訪問權限;
  • order by 可以用在視圖中,但是如果從該視圖檢索數(shù)據 select 中也含有 order by ,那么該視圖中的 order by 將被覆蓋;
  • 視圖可以和表一起使用。

修改視圖中數(shù)據對原表中數(shù)據有影響,修改原表中數(shù)據對視圖中數(shù)據也有影響

例如:

針對actor表創(chuàng)建視圖actor_name_view,只包含first_name以及l(fā)ast_name兩列,并對這兩列重新命名,first_name為first_name_v,last_name修改為last_name_v:

CREATE TABLE IF NOT EXISTS actor (
actor_id smallint(5) NOT NULL PRIMARY KEY,
first_name varchar(45) NOT NULL,
last_name varchar(45) NOT NULL,
last_update timestamp NOT NULL DEFAULT (datetime(‘now',‘localtime')))

create view actor_name_view as 
select first_name  first_name_v,last_name  last_name_v from actor;

總結 

到此這篇關于MySQL表的內外連接和視圖使用的文章就介紹到這了,更多相關MySQL表內外連接和視圖內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • mysql5.7及mysql 8.0版本修改root密碼的方法小結

    mysql5.7及mysql 8.0版本修改root密碼的方法小結

    這篇文章主要介紹了mysql5.7及mysql 8.0版本修改root密碼方式 ,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-11-11
  • mysql字符集相關總結

    mysql字符集相關總結

    這篇文章主要介紹了Python 中刪除文件的幾種方法匯總,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-03-03
  • MySQL中存儲時間的最佳實踐指南

    MySQL中存儲時間的最佳實踐指南

    這篇文章主要給大家介紹了關于MySQL中存儲時間的最佳實踐,文中詳細介紹了哪種存儲時間的方式更好,對大家學習或者使用mysql具有一定的參考學習價值,需要的朋友可以參考下
    2021-07-07
  • mysql同步問題之Slave延遲很大優(yōu)化方法

    mysql同步問題之Slave延遲很大優(yōu)化方法

    這篇文章主要介紹了mysql同步問題之Slave延遲很大優(yōu)化方法,需要的朋友可以參考下
    2016-05-05
  • mysql root用戶的密碼修改和消除

    mysql root用戶的密碼修改和消除

    本文主要針對于Windows環(huán)境下root用戶密碼的修改以及密碼的消除
    2009-06-06
  • 解決MySQL錯誤碼:1054 Unknown column ‘**‘ in ‘field list‘的問題

    解決MySQL錯誤碼:1054 Unknown column ‘**‘ in&n

    這篇文章主要介紹了解決MySQL錯誤碼:1054 Unknown column ‘**‘ in ‘field list‘的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • mysql中profile的使用方法教程

    mysql中profile的使用方法教程

    這篇文章主要給大家介紹了關于mysql中profile的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-09-09
  • MySQL數(shù)據關聯(lián)之外鍵、表關系、聯(lián)表查詢實戰(zhàn)詳解

    MySQL數(shù)據關聯(lián)之外鍵、表關系、聯(lián)表查詢實戰(zhàn)詳解

    在MySQL中,外鍵是一種約束,用于維護兩個表之間的關系,外鍵是指在一個表中引用另一個表的主鍵值,以確保數(shù)據的完整性和一致性,這篇文章主要介紹了MySQL數(shù)據關聯(lián)之外鍵、表關系、聯(lián)表查詢實戰(zhàn)的相關資料,需要的朋友可以參考下
    2026-05-05
  • mysql如何獲取自增id

    mysql如何獲取自增id

    這篇文章主要介紹了mysql如何獲取自增id問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • mysql 不等于 符號寫法

    mysql 不等于 符號寫法

    今天在寫sql語句的時候,想確認下mysql的不等于運算符是用什么符號表示的
    2013-08-08

最新評論

凤山县| 临夏县| 平陆县| 华宁县| 类乌齐县| 新安县| 房产| 勃利县| 鹤壁市| 麟游县| 新建县| 郸城县| 新昌县| 张掖市| 大城县| 涞源县| 扶沟县| 晋江市| 哈尔滨市| 习水县| 高碑店市| 敦化市| 遂川县| 沛县| 定州市| 胶南市| 大理市| 星子县| 集安市| 六安市| 虎林市| 新化县| 玛纳斯县| 铜川市| 涞水县| 惠东县| 辽阳市| 涟源市| 申扎县| 顺平县| 黎城县|