oracle連接分為:
創(chuàng)新互聯(lián)專注于企業(yè)成都營銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、敦煌網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站、商城網(wǎng)站開發(fā)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為敦煌等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
左外連接:左表不加限制,保留左表的數(shù)據(jù),匹配右表,右表沒有匹配到的行中的列顯示為null。
右外連接:右表不加限制,保留右表的數(shù)據(jù)。匹配左表,左表沒有匹配到的行中列顯示為null。
完全外連接:左右表都不加限制。即右外連接的結(jié)果為:左右表匹配的數(shù)據(jù)+左表沒有匹配到的數(shù)據(jù)+右表沒有匹配到的數(shù)據(jù)。
left/right/full outer join ...on
left/right/full join ...on
(+)號的作用:+號可以理解為補充的意思,加在那個表的列上就代表這個表的列為補充。加在右表的列上代表右表為補充,為左連接。加在左表的列上代表左表為補充,為右連接。注意:完全外連接中不能使用+號。
查看插入的數(shù)據(jù):
執(zhí)行結(jié)果
執(zhí)行結(jié)果
執(zhí)行結(jié)果
執(zhí)行結(jié)果
執(zhí)行結(jié)果
執(zhí)行結(jié)果
執(zhí)行結(jié)果
執(zhí)行結(jié)果
執(zhí)行結(jié)果
執(zhí)行結(jié)果
執(zhí)行結(jié)果
執(zhí)行結(jié)果
Oracle中,兩個表通過多個關(guān)連條件外連接的時候,如果多個條件中有沒有寫(+)的條件,則連接會自動變成內(nèi)連接,而不再是外連接。這種情況應(yīng)該是屬于寫SQL的失誤。遇到這種情況的時候一定要注意。
需要知道數(shù)據(jù)庫主機的IP地址,數(shù)據(jù)庫端口號,服務(wù)名稱,數(shù)據(jù)庫賬戶及密碼才可以連接。
1、首先在本地oracle的安裝目錄下找到找到tnsnames.ora文件。一般路徑為:~\oracle\product\10.2.0\db_1\network\ADMIN
2、用文本方式打開此路徑下的tnsnames.ora文件,并添加以下內(nèi)容:
本地實例名(可自定義應(yīng)為+數(shù)字)?=
(DESCRIPTION?=
(ADDRESS?=?(PROTOCOL?=?TCP)(HOST?=?IP地址)(PORT?=?數(shù)據(jù)庫端口號))
(CONNECT_DATA?=
(SERVER?=?DEDICATED)
(SERVICE_NAME?=?數(shù)據(jù)庫服務(wù)名)
)
)
3、保存上述內(nèi)容,然后打開第三方工具,如plsql。就會在數(shù)據(jù)庫的下拉列表中找到剛添加的數(shù)據(jù)庫實例。
4、用正確的賬戶名及密碼登錄,就可以連接成功。
public void testOracle()
{
Connection con = null;// 創(chuàng)建一個數(shù)據(jù)庫連接
PreparedStatement pre = null;// 創(chuàng)建預(yù)編譯語句對象,一般都是用這個而不用Statement
ResultSet result = null;// 創(chuàng)建一個結(jié)果集對象
try
{
? ?Class.forName("oracle.jdbc.driver.OracleDriver");// 加載Oracle驅(qū)動程序
? ?System.out.println("開始嘗試連接數(shù)據(jù)庫!");
? ?String url = "jdbc:oracle:" + "thin:@127.0.0.1:1521:XE";// 127.0.0.1是本機地址,XE是精簡版Oracle的默認(rèn)數(shù)據(jù)庫名
? ?String user = "system";// 用戶名,系統(tǒng)默認(rèn)的賬戶名
? ?String password = "147";// 你安裝時選設(shè)置的密碼
? ?con = DriverManager.getConnection(url, user, password);// 獲取連接
? ?System.out.println("連接成功!");
? ?String sql = "select * from student where name=?";// 預(yù)編譯語句,“?”代表參數(shù)
? ?pre = con.prepareStatement(sql);// 實例化預(yù)編譯語句
? ?pre.setString(1, "劉顯安");// 設(shè)置參數(shù),前面的1表示參數(shù)的索引,而不是表中列名的索引
? ?result = pre.executeQuery();// 執(zhí)行查詢,注意括號中不需要再加參數(shù)
? ?while (result.next())
? ? ? ?// 當(dāng)結(jié)果集不為空時
? ? ? ?System.out.println("學(xué)號:" + result.getInt("id") + "姓名:"
? ? ? ? ? ? ? ?+ result.getString("name"));
}
catch (Exception e)
{
? ?e.printStackTrace();
}
finally
{
? ?try
? ?{
? ? ? ?// 逐一將上面的幾個對象關(guān)閉,因為不關(guān)閉的話會影響性能、并且占用資源
? ? ? ?// 注意關(guān)閉的順序,最后使用的最先關(guān)閉
? ? ? ?if (result != null)
? ? ? ? ? ?result.close();
? ? ? ?if (pre != null)
? ? ? ? ? ?pre.close();
? ? ? ?if (con != null)
? ? ? ? ? ?con.close();
? ? ? ?System.out.println("數(shù)據(jù)庫連接已關(guān)閉!");
? ?}
? ?catch (Exception e)
? ?{
? ? ? ?e.printStackTrace();
? ?}
}
}
需要一些前提條件:
1、對方的主機能被連接(如在同一局域網(wǎng)內(nèi))
2、需要知道對方數(shù)據(jù)庫IP、端口號、服務(wù)名
3、需要知道對方提供的管理數(shù)據(jù)庫的用戶名及密碼
連接方法:
1、在本地的oracle安裝目錄,找到tnsnames.ora文件,一般在~\oracle\product\10.2.0\db_1\network\ADMIN目錄下,如圖:
2、用文本打開tnsnames.ora文件,添加以下內(nèi)容:
本地自定義實例名?=
(DESCRIPTION?=
(ADDRESS?=?(PROTOCOL?=?TCP)(HOST?=?數(shù)據(jù)庫IP或數(shù)據(jù)庫主機名)(PORT?=?數(shù)據(jù)庫端口號))
(CONNECT_DATA?=
(SERVER?=?DEDICATED)
(SERVICE_NAME?=?數(shù)據(jù)庫服務(wù)名)
)
)
3、保存文件即可。
4、打開第三方工具,如plsq,輸入對方提供的用戶名及密碼,選擇新建的數(shù)據(jù)庫鏈接即可。
具體的代碼如下:
/// summary
/// Oracle 的數(shù)據(jù)庫連接字符串.
/// /summary
private const String connString =
@"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.210)
(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)));User
Id=TEST;Password=TEST123";
192.168.1.210 是 Oracle?數(shù)據(jù)庫服務(wù)器的 IP 地址
1521 是 默認(rèn)的端口號
SERVICE_NAME=ORCL 意思是Oracle 數(shù)據(jù)庫服務(wù)是ORCL
后面就是用戶名密碼了。
擴展資料:
部分描述:
abstract:可以和類、方法、屬性、索引器及事件一起使用,標(biāo)識一個可以擴展但不能被實體化的、必須被實現(xiàn)的類或方法。
as:一個轉(zhuǎn)換操作符,如果轉(zhuǎn)換失敗,就返回null。
base:用于訪問被派生類或構(gòu)造中的同名成員隱藏的基類成員。
catch:定義一個代碼塊,在特定類型異常拋出時,執(zhí)行塊內(nèi)代碼。
checked:既是操作符又是語句,確保編譯器運行時,檢查整數(shù)類型操作或轉(zhuǎn)換時出現(xiàn)的溢出。
const:標(biāo)識一個可在編譯時計算出來的變量值,即一經(jīng)指派不可修改的值。
delegate:指定一個聲明為一種委托類型。委托把方法封裝為可調(diào)用實體,能在委托實體中調(diào)用。
enum:表示一個已命名常量群集的值類型。
event:允許一個類或?qū)ο筇峁┩ㄖ某蓡T,他必須是委托類型。
explicit:一個定義用戶自定義轉(zhuǎn)換操作符的操作符,通常用來將內(nèi)建類型轉(zhuǎn)換為用戶定義類型或反向操作,必須再轉(zhuǎn)換時調(diào)用顯示轉(zhuǎn)換操作符。
extern:標(biāo)識一個將在外部(通常不是c#語言)實現(xiàn)的方法。
參考資料來源:百度百科-c#
內(nèi)連接和外連接是SQL語句的標(biāo)準(zhǔn),不是oracle獨有的。
內(nèi)連接(inner join) 指兩個表關(guān)聯(lián)的時候,關(guān)聯(lián)字段全部匹配。
外連接有幾種(oracle支持3種,有些數(shù)據(jù)庫只支持1-2種):
左外連接(left outer join) 是關(guān)聯(lián)時,只要匹配到左邊的表中相關(guān)字段,不用關(guān)心右邊的表是否有匹配數(shù)據(jù)。
右外連接(right outer join) 是關(guān)聯(lián)時,只要匹配到右邊的表中相關(guān)字段,不用關(guān)心左邊的表是否有匹配數(shù)據(jù)。
全外連接 (full outer join)是關(guān)聯(lián)時,只要匹配到任意兩邊的表中相關(guān)字段就可以。