MySQL是一個(gè)關(guān)系型
數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQLAB公司開發(fā),目前屬于Oracle旗下產(chǎn)品。MySQL是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,在 WEB 應(yīng)用方面,MySQL是最好的 RDBMS應(yīng)用軟件之一。mysql官網(wǎng)
下載就在本站
MySQL是一種關(guān)系數(shù)據(jù)庫管理系統(tǒng),關(guān)系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉庫內(nèi),這樣就增加了速度并提高了靈活性。
MySQL所使用的 SQL 語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MySQL 軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型
網(wǎng)站的開發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫。
由于其社區(qū)版的性能卓越,搭配
PHP 和 Apache 可組成良好的開發(fā)環(huán)境。
近期在工作中做數(shù)據(jù)庫部署,遇到很多奇奇怪怪的問題,導(dǎo)致數(shù)據(jù)表數(shù)據(jù)出現(xiàn)了許多問題。
在數(shù)據(jù)遷移中,我們經(jīng)常需要
比較兩個(gè)表,以便在一個(gè)表中標(biāo)志另一個(gè)表中沒有相應(yīng)記錄的記錄。
例如,我們有一個(gè)新的數(shù)據(jù)庫,其架構(gòu)與舊數(shù)據(jù)庫不同。我們的任務(wù)是將所有數(shù)據(jù)從舊數(shù)據(jù)庫遷移到新數(shù)據(jù)庫,并驗(yàn)證數(shù)據(jù)是否正確遷移。
要檢查數(shù)據(jù),我們必須比較兩個(gè)表,一個(gè)在新數(shù)據(jù)庫中,一個(gè)在舊數(shù)據(jù)庫中,標(biāo)記出不匹配的記錄。
本篇知識(shí)點(diǎn)
學(xué)習(xí)如何比較兩個(gè)表以找到不匹配的記錄。
數(shù)據(jù)表對比
假設(shè)有兩個(gè)表:t1 和 t2。
使用以下步驟比較兩個(gè)表,并確定不匹配的記錄:
就讓小編來告訴你mysql官網(wǎng)下載,找出表中差異數(shù)據(jù)的方法圖二
首先,使用 UNION 語句來組合兩個(gè)表中的行,僅包含需要比較的列,返回的結(jié)果集用于比較。
SELECT t1.pk,t1.c1 FROM t1UNION ALLSELECT t2.pk,t2.c1 FROM t2
第二步,根據(jù)需要比較的主鍵和列分組記錄。
如果需要比較的列中的值相同,則 COUNT(*) 返回 2,否則 COUNT(*) 返回 1。
請看下面的查詢語句:
SELECT pk,c1FROM( SELECT t1.pk,t1.c1 FROM t1 UNION ALL SELECT t2.pk,t2.c1 FROM t2) tGROUP BY pk,c1HAVING COUNT(*) = 1ORDER BY pk
如果比較中涉及的列中的值相同,則不返回任何行。
就讓小編來告訴你mysql官網(wǎng)下載,找出表中差異數(shù)據(jù)的方法圖三
MySQL 比較兩個(gè)表的例子
我們來看一個(gè)模擬上述步驟的例子。
首先,創(chuàng)建具有相似結(jié)構(gòu)的 2 個(gè)表:
USE testdb;CREATE TABLE t1(id int auto_increment primary key,title varchar(255) );CREATE TABLE t2(id int auto_increment primary key,title varchar(255),note varchar(255));
其次,在 t1 和 t2 表中插入一些數(shù)據(jù):
INSERT INTO t1 (title) VALUES ('row 1'),('row 2'),('row 3');INSERT INTO t2 (title,note) SELECT title,'data migration' FROM t1;
第三,比較兩個(gè)表的id和title列的值:
SELECT id,titleFROM (SELECT id,title FROM t1 UNION ALL SELECT id,title FROM t2) tblGROUP BY id,titleHAVING count(*) = 1ORDER BY id;
沒有行返回,因?yàn)闆]有不匹配的記錄。
12下一頁>
- 軟件性質(zhì):國外軟件
- 授權(quán)方式:免費(fèi)版
- 軟件語言:英文
- 軟件大。81268 KB
- 下載次數(shù):4452 次
- 更新時(shí)間:2019/12/29 22:32:18
- 運(yùn)行平臺(tái):WinXP,Win7...
- 軟件描述:MySQL是比較流行的關(guān)系數(shù)據(jù)庫管理系統(tǒng)之一。由于其使用C和C++編寫,還為多種... [立即下載]