偶然看到了國產數據庫——達夢數據庫。頓時起了興趣,搗鼓了一番。
下面這段簡介摘自百度百科
達夢數據庫是武漢華工達夢數據庫有限公司推出的具有完全自主知識產權的高性能數據庫產品。它采用“三權分立”的安全管理機制,安全級別達到B1級,並在大數據量存儲管理、並發控制、數據查詢優化處理、事務處理、備份與恢復和支持SMP系統等諸多方面都有突破性進展和提高。更多介紹:http://baike.baidu.com/view/581717.htm
達夢數據庫有免費版和收費版(感覺國人就是有點急功近利)。
免費版下載地址:http://www.dameng.com/dmweb/article.do?type=category&articleid=57021
有Windouws版和Linux版。
我這里選擇Windows版下載,當前版本6.2,UI還是做得很漂亮的。
安裝過程很簡單,一路“下一步”就行了:
2.1) 選擇語言版本
2.2) 選擇驗證Key文件,免費版的下載包里提供了驗證文件。
2.3)設置初始化參數
2.4)修改數據庫口令(密碼),當然也可以無視它。默認密碼是: SYSDBA
3.1) 打開管 “理工具Manager”登陸
輸入安裝時設置的口令,如果安裝時沒有修改口令,則輸入初試默認口令“SYSDBA”
3.2) 登陸進去后看到系統默認有兩個數據庫“SYSTEM”、“BOOKSHOP”。這里我自己新建了一個叫“Cnblogs”的數據庫。新建很簡單,和操作SQLServer差不多。
3.3) 點開“cnblogs”節點,會發現,它不像SQLServer那樣,下面直接是“表”、“視圖”等。
它下面是“模式”,一個數據庫可以有多個模式,模式下面才會有“表”、“視圖”等等。
模式用來代表特定數據庫中的一個對象集,在概念上可將其看作是包含表、視圖、索引和權限定義的對象集合。一個模式只作用於一個數據庫,不同的數據庫可以有同名模式。
我在模式“SYSDBA”下面建了個“Users”表。
3.4) 達夢SQL
因為達夢數據庫有一個“模式”的概念,因此它的查詢語句和SQLServer 也有所不同,要在“表”前加上“模式”。如:
當然你也可以不加,直接像在SQLServer 里那樣,寫成
這時它會默認使用SYSDBA模式。
達夢數據庫提供了很多驅動,包括.Net 。在達夢數據的安裝目錄找到 \dmdbms\bin\ DmProvider.dll 程序集,這就是.Net 操作達夢數據庫的驅動程序。我們用VS建個Demo 引用這個dll。增刪改查的演示代碼如下:
/// <summary>
/// 獲得數據庫鏈接
/// </summary>
/// <returns></returns>
public DmConnection GetConn()
{
string strconn = " server=localhost;database=Cnblogs;User Id=SYSDBA;PWD=SYSDBA ";
DmConnection conn = new DmConnection(strconn);
conn.Open();
return conn;
}
// 插入數據
public void Insert()
{
DmConnection conn = GetConn();
string strCmd = " Insert into SYSDBA.Users(Name,Sex,Age)values('xumingxiang','man',25) ";
DmCommand cmd = new DmCommand(strCmd, conn);
int effect = cmd.ExecuteNonQuery();
conn.Close(); // 關閉數據庫鏈接
}
/// <summary>
/// 刪除數據
/// </summary>
public void Update()
{
DmConnection conn = GetConn();
string strCmd = " update SYSDBA.Users set Age=100 where Id=1 ";
DmCommand cmd = new DmCommand(strCmd, conn);
int effect = cmd.ExecuteNonQuery();
conn.Close();
}
/// <summary>
/// 刪除數據
/// </summary>
public void Delete()
{
DmConnection conn = GetConn();
string strCmd = " delete from SYSDBA.Users where Id=1 ";
DmCommand cmd = new DmCommand(strCmd, conn);
int effect = cmd.ExecuteNonQuery();
conn.Close();
}
/// <summary>
/// 用ExecuteReader查詢數據
/// </summary>
public void QueryByExecuteReader()
{
DmConnection conn = GetConn();
string strCmd = " select * from SYSDBA.Users ";
DmCommand cmd = new DmCommand(strCmd, conn);
DmDataReader dr = cmd.ExecuteReader();
int id;
string name;
string sex;
int age;
while (dr.Read())
{
id = dr.GetInt32( 0);
name = dr.GetString( 1);
sex = dr.GetString( 2);
age = dr.GetInt32( 3);
}
}
/// <summary>
/// 用DataAdapter 查詢數據,返回DataSet
/// </summary>
public DataSet QueryByDataAdapter()
{
DmConnection conn = GetConn();
string strCmd = " select * from SYSDBA.Users ";
DmDataAdapter da = new DmDataAdapter(strCmd,conn);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
在上面的代碼中,我們可看到對達夢數據庫進行增刪改查和操作SQLServer 差不多。要說區別,那就是多個“模式”的概念。
由於只是興趣使然,只是簡單的嘗嘗鮮,我沒有對其性能、負載等方面做測試,也沒打算用它做實際項目。等以后有空了在繼續搗鼓它吧。不說他好也不說他壞,在精神上支持一下國貨吧!
原文地址:http://www.cnblogs.com/xumingxiang/archive/2012/04/11/2442271.html
出處: http://www.cnblogs.com/xumingxiang
版權:本文版權歸作者和博客園共有
轉載:歡迎轉載,為了保存作者的創作熱情,請按要求【轉載】,謝謝
要求:未經作者同意,必須保留此段聲明;必須在文章中給出原文連接;否則必究法律責任