SQL中的 join 可以根據(jù)相應(yīng)條件把指定的表給結(jié)合起來并將數(shù)據(jù)返回。
為嘉魚等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及嘉魚網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站制作、成都網(wǎng)站建設(shè)、嘉魚網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
內(nèi)連接是基于連接謂詞將倆張表(如A和B)的列組合到一起產(chǎn)生新的結(jié)果表,在表中存在至少一個匹配時,INNER JOIN 關(guān)鍵字返回行
左外連接Left join關(guān)鍵字會從左表那里返回所有的行,即使是在右表中沒有匹配到的行?
右外連接關(guān)鍵字Right join會從右表那里返回所有的行,即使是在左表中沒有匹配到的行?
全連接的關(guān)鍵字Full join,只要其中某個表中存在匹配,F(xiàn)ull join 就會返回行
交叉連接一般使用的比較少,交叉連接又稱笛卡爾連接或者叉乘連接,如果,A和B是倆個集合,他們的交叉連接就是A*B?
連接方法如下:
1.建立一個web項目
2.把數(shù)據(jù)庫驅(qū)動復(fù)制到lib目錄下。數(shù)據(jù)庫驅(qū)動有:mysql,sqlserver,oracle等 是什么樣類型的數(shù)據(jù)導(dǎo)入相應(yīng)驅(qū)動。
3.編寫一個連接數(shù)據(jù)庫的工具類,獲取一個連接。下面以mysql數(shù)據(jù)庫為例。
核心代碼:
public class DataUtils {
/**
* 從數(shù)據(jù)中獲取一個連接
* @return
*/
public static Connection getConn(){
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
//表為test,用戶名root,密碼admin。
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "admin");
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
}
4.獲取到與相應(yīng)數(shù)據(jù)庫的連接后,就可以做增刪改查操作了。記得做完操作后,關(guān)閉連接,釋放資源。
左連接:返回包括左表中的所有記錄和右表中聯(lián)結(jié)字段相等的記錄;
右連接:返回包括右表中的所有記錄和左表中聯(lián)結(jié)字段相等的記錄;
全連接:返回兩個連接表的所有記錄;mysql沒有全連接
內(nèi)連接:返回兩個連接表連接字段相同的記錄;
union:對兩個結(jié)果集進行并集,并去重,當(dāng)交換兩個select語句順序后,最終結(jié)果與不交換時無區(qū)別;
union all:對兩個結(jié)果集進行并集,不去重,當(dāng)交換兩個select語句順序后,最終結(jié)果與不交換時有區(qū)別;
舉個例子 有一個學(xué)生表 班級 姓名 一個成績表 姓名 成績 我們需要返回X班的所有學(xué)生的成績,但是班上有人缺考,也就是成績表里沒有姓名,我們先用on得到的就是有考試成績的名字,通過外連接,我們就可以得到全班人的名字以及成績。
mysql開啟遠程連接:
以 root用戶登入mysql
GRANT all privileges ON wang.* TO 'wang'@'%' identified by 'wang';
flush privileges;
請點擊輸入圖片描述
修改配置文件
vi /etc/mysql/my.cnf
把bind-address ? ? ? ? ? = 127.0.0.1 ?這行注掉
重啟數(shù)據(jù)庫
service mysql restart
請點擊輸入圖片描述
本地測試連接3306端口
telnet 192.168.1.77 3306 ? 若已連通
確定已安裝mysql客戶端which mysql
/usr/bin/mysql
然后mysql -uwang -h192.168.1.77 -p ?看能否登錄
請點擊輸入圖片描述
外網(wǎng)如何利用網(wǎng)絡(luò)輔助nat123實現(xiàn)訪問內(nèi)網(wǎng)mysql數(shù)據(jù)庫?
網(wǎng)絡(luò)環(huán)境:動態(tài)公網(wǎng)IP。
明確mysql數(shù)據(jù)庫內(nèi)網(wǎng)訪問地址端口,確保mysql數(shù)據(jù)庫服務(wù)正常,在內(nèi)網(wǎng)可以正常訪問連接。內(nèi)網(wǎng)使用nat123動態(tài)域名解析。內(nèi)網(wǎng)服務(wù)器安裝nat123客戶端,并使用它。登陸。進入主面板/域名解析列表/添加域名。選擇動態(tài)域名解析記錄,使用二級域名,或自己的域名。鼠標(biāo)放在輸入框有向?qū)崾尽?/p>
請點擊輸入圖片描述
路由器端口映射,路由映射mysql數(shù)據(jù)庫訪問端口。
因為公網(wǎng)IP是在路由器上的,外網(wǎng)訪問時,需要經(jīng)過路由,需要在路由器上做端口映射,將內(nèi)網(wǎng)mysql數(shù)據(jù)庫訪問端口打通。路由器端口映射位置:轉(zhuǎn)發(fā)規(guī)則/虛擬服務(wù)器/添加允許外網(wǎng)訪問端口和協(xié)議。我的mysql數(shù)據(jù)庫端口是默認(rèn)的3306,我內(nèi)網(wǎng)對應(yīng)mysql數(shù)據(jù)庫主機的內(nèi)網(wǎng)IP地址是192.168.1.22。
請點擊輸入圖片描述
外網(wǎng)訪問時,使用動態(tài)解析域名。
在外網(wǎng)訪問mysql數(shù)據(jù)庫時,使用動態(tài)解析域名進行連接訪問。域名是不變的,可以上網(wǎng)即可訪問,再也不擔(dān)心動態(tài)公網(wǎng)IP變化的問題。
請點擊輸入圖片描述
今天給大家演示如何在cmd命令端連接mysql數(shù)據(jù)庫。(windows操作系統(tǒng))
1.桌面左下角windows圖標(biāo)--搜索框內(nèi)輸入cmd,結(jié)果如圖所示,點擊cmd.exe
命令行連接mysql
2.啟動mysq數(shù)據(jù)庫,net start mysql;
命令行連接mysql
3.連接mysql數(shù)據(jù)庫,mysql-hlocalhost -uroot -p;回車;要求你輸入密碼,輸入后回車;
命令行連接mysql
4.連接成功后會出現(xiàn)如下界面;
命令行連接mysql
5.SHOW DATABASES;你的數(shù)據(jù)庫列表;
命令行連接mysql
6.如果要退出mysql數(shù)據(jù)庫,exit;回車;
命令行連接mysql
7.關(guān)閉mysql數(shù)據(jù)庫。代碼:net stop mysql;
命令行連接mysql