1. 程式人生 > >資料庫 表的連線操作

資料庫 表的連線操作

表的連線操作:

對於資料表的連線操作在資料庫之中一共定義了兩種:

         內連線:也稱為等值連線,是最早的一種連線。還可以被稱為普通連線或者自然連線,內連線是從結果表中刪除與其他被連線表中沒有匹配行的所有行,所以內連線可能會丟失資訊。WHERE子句中設定的消除笛卡爾積的條件就是使用了等值判斷的方式進行的;

外連結:內連線中只能夠顯示等值滿足條件的,如果不滿住條件的無法顯示,如果希望可以顯示特定表的全部資料,就用外連結:外連線分為三種:左外連線,右外連線,全外連線。

先擴充一下資料:emp表中增加一條沒有部門的僱員資訊。

       INSERT INTOemp(empno,ename,job,hiredate,sal,comm,deptno)

VALUES (8888'KING',7369SYSDATE,800,100,NULL);

查詢部門編號:

SELECT *

FROM emp e, dept d

WHERE e.deptno = d.deptno;

問題1.沒有部門的僱員沒有顯示;

問題2.有一個40部門沒有顯示;

想要顯示emp或dept中的表的資料顯示完整,就可以使用外部連結:

         左外連結:左關係屬性=右關係屬性(+),放在等號的右邊表示左連線;意思就是顯示左邊表中沒有顯示的資訊;

         右外連結:左關係屬性(+)=右關係屬性,放在等號的左邊表示右連線;意思就是顯示右邊表中沒有顯示的資訊;

相關推薦

Django對資料庫操作

一、單表操作 M  model.py  import pymysql config = { 'host': '127.0.0.1', 'user': 'fred_li', 'password': '835y1354',

mysql基本操作--資料庫SQL操作

2)MySQL中表的相關操作?(DDL) a)建立表(語法? create table) 1 create table if not exists pet( 2 id int primary key auto_increment, 3 name varchar(100) not null 4 );

Oracle資料庫(table)操作

資料型別 字元類 select lengthb('字') from dual; (可以在資料庫中查詢一個漢字站多少位元組) char(?) 長度固定,最多容納2000個字元。 例:char(10) ,UT8中一個漢字佔3個字,‘張三’前四個字元放‘張’,後添4個空格補全,如‘張三 ’ 注:ch

資料庫連線問題

一、交叉連線 交叉連線有兩種:顯示的和隱式的,不帶on子句,返回的是兩表的乘積,也叫笛卡爾積。 例如:下面語句1和語句2的結果是相同的。 語句1:隱式的交叉連線,沒有cross join. select o.id,o.order_number,c.id,c.name from orders

MySQL多連線操作

1 select * from userinfo ,dapartment where userinfo.part_id = dapartment.id; 2 --左連線: 左邊全部顯示 3 select * from userinfo left join dapartment on

Oracle連線操作——Nest Loop Join(巢狀迴圈)

關係型資料庫並不是最早出現的資料庫表現形式,之前還存在層次、網狀資料庫結構。隨著關係型資料庫的出現,以資料表的方式進行資訊留存的方案迅速發展起來。關係型資料庫的重要元素包括資料表和表連線,藉助各種型別的表連線,可以將平鋪直敘的資訊加以組裝拼接。在Oracle資料庫中,應對不同

不同伺服器資料庫連線查詢,修改

不同伺服器資料庫表連線查詢,修改 exec sp_addlinkedserver  'ERP','','SQLOLEDB','10.0.10.0' exec sp_addlinkedsrvlogin 'ERP','false',null,'sa','123456' 在伺服器端-連線伺服器可以看

SQL資料庫連線圖文詳解

總結:left join 以左表為準,查詢出左表的所有資料,右表中有對應的則顯示出來,沒有對應的則顯示為null.注:A left join B on  與  A,B where  有相同效果,如下:select student.* ,Score.* from student inner join Score

MapReduce連線操作之Reduce端join

一:背景 Reduce端連線比Map端連線更為普遍,因為輸入的資料不需要特定的結構,但是效率比較低,因為所有資料都必須經過Shuffle過程。 二:技術實現 基本思路 (1):Map端讀取所有的檔案,並在輸出的內容里加上標示,代表資料是從哪個檔案裡來的。 (2):在red

mysql 資料庫記錄操作

單表資料記錄插入insert    into    表名    values(值) ;                   值 必須對應列的順序依次新增insert    into    表名(列1,列3) values(列1值,列3值);insert    into   

在python中使用flask-sqlalchemy對資料庫進行連線操作

這裡使用的資料庫是mysql。 python和mysql是不沾邊的兩個東西,不能直接進行互通交流,想要這兩者之間能進行交流,就需要一箇中間件或者說驅動程式。 python2: 在window上 python2 連線mysql可以到網上下個驅動 MySQL_

如何將對資料庫兩個操作處於用一個事物下?同一個連線物件+事物攔截

需求: 我要儲存同時儲存一個學生資訊和這個學生購買的圖書資訊,當學生的資訊儲存失敗了,圖書資訊也不儲存了,反之也一樣,當某本書的資訊儲存失敗了,學生資訊也不儲存了。 正常情況下,如果兩個表的資訊分開儲存程式碼如下 所以我們可以看到兩個表是否儲存成功

資料庫 連線操作

表的連線操作: 對於資料表的連線操作在資料庫之中一共定義了兩種:          內連線:也稱為等值連線,是最早的一種連線。還可以被稱為普通連線或者自然連線,內連線是從結果表中刪除與其他被連線表中沒有匹配行的所有行,所以內連線可能會丟失資訊。WHERE子句中設定的消除笛卡

資料庫sql語句多連線查詢+group by分組的使用

參考自:https://blog.csdn.net/fly_fly_fly_pig/article/details/81325116 平時用sql查詢經常遇到的問題,這次搜到了一個博主的文章,解決了問題。但是其中的深層原因還沒有想清楚,本文需要完善。 更正前 CREATE VIE

Hive Shell命令之一(資料庫操作

//資料庫的有關操作 1、如果資料庫不存在的話建立資料庫,預設資料庫default: create database if not exists test; 2、檢視hive中所包含的資料庫: show databases; 3、如果資料庫非常多,可以用正則表示式匹配篩選出需要的資料庫名。 sh

關於更新結構時碰到的DDL鎖導致資料庫無法連線

記一次更新表結構時語句一直處於等待無法執行的解決辦法 我們在更新資料庫表結構的時候,當資料庫有連線正在進行中的事務時,那麼你的更新請求會處於一個等待的狀態,一直等待到當前未提交的事務完成之後才會進行更新操作,但是這個未提交的事務會需要多久時間完成對我們來講是一個未知數,(自己第一次碰到這個情況的時候,竟然以

python django建立資料庫連線mysql資料庫(附mysql 8.0.12安裝)

先寫下mysql zip安裝方式,在環境變數中加入mysql/bin路徑,把zip解壓到C:\program files下,在最外層資料夾建立my-default.ini 寫入內容: [mysqld]  basedir=C:\Program Files\MySQL data

Java Web 的金倉資料庫操作(一)--資料庫連線

從今天開始進行金倉資料庫的大作業。首先宣告,金倉資料庫與現在主流的Oracle、MySQL、SQL Server等資料庫相比,還是有差距的,所以,如果不是特別需要使用金倉資料庫去完成一些工作或者特意練習自己修正Bug的能力,而只是作為入門去學習資料庫的知識,還是強烈不推薦金倉資料庫。博主希望讀者在閱

HIVE簡明教程學習筆記(一)——資料庫操作HIVE DDL

1.建立資料庫 create database if not exists aa_db; 2.檢視資料庫定義 describe database aa_db; 3.檢視資料庫列表 show databases; 4.刪除資料庫 drop database if exists testdb casca