用c 在Access資料庫中建立新錶

2021-04-08 14:04:50 字數 4110 閱讀 7181

生成表newtable,該錶有文字欄位field1和整型欄位field2

private void createnewtable()

下面是轉貼的<用sql建立資料庫

>

首先說說怎麼用sql語句建立資料庫,建立資料庫的語句有如下幾種:

1. create table(建立新錶)

2. create index(增加索引)

3. drop index(刪除索引)

4. constraint(約束語句)

5. alter table(修改表)

6. drop table(刪除表)

create table語句:

在資料庫中生成新錶,表中字段的型別可以為:integer(整型)、long(長整型)、 single(單精度浮點數)、double(雙精度浮點數)、datetime(日期型,也可以寫成date)、bit(布林型)、 text(字串型,最大255個位元組)、memo(字串型,最大可達1.2g位元組)、 counter(自動遞增長整型,可確定記錄的唯一性)、currency(貨幣型,精確到小數點左邊15位,右邊4位)、 binary(位元組型,最大255個)、longbinary(用於ole物件)、guid(全域性唯一識別符號)。

生成表newtable,該錶有文字欄位field1和整型欄位field2,表名和欄位名可以隨便你取,不區分大小寫,但是,有些保留字不能用作表名欄位名,比如number

create table newtable(field1 text(30), field2 integer);

create index語句:

index是為了加快查詢記錄的速度,或者是為了增加字段約束關係而設定的。

建立索引語句執行前表中可以有記錄,但存在的記錄必須滿足該索引語句的約束關係,否則語句不能執行,另外要注意的是在同乙個資料庫中(而不僅僅是在同乙個表中),索引名不能相同,否則語句也會失敗。

生成欄位field1的索引欄位newindex,兩條語句作用相同

生成後field1欄位可以有相同的值,可以有空值(null)

create index newindex on newtable (field1);

create index newindex on newtable (field1) with ignore null;

生成欄位field1的索引欄位newindex,注意,每個表裡只能有乙個主索引(primary)。生成後field1欄位不能有相同的值,不能有空值(當然,如果是text型別,可以有乙個空串,但是空串不是空值)

create index newindex on newtable(field1) with primary;

欄位field1不能有相同的值,但可以有空值(兩個空值不算相同的值)

create unique index newindex on newtable(field1);

欄位field1可以有相同的值,但不能有空值

create index newindex on newtable(field2) with disallow null

可以在索引語句中加入asc(公升序)或desc(降序)來控制記錄排列順序如果不使用順序字,sql則預設使用asc順序

create index newindex on newtable(field1 asc, field2 desc);

drop index語句:

刪除表newtable中的索引newindex,語句執行前索引newindex必須存在

drop index newindex on newtable;

constraint語句:

constraint子句用於建立資料庫完整性的索引,它和index語句作用一樣,有些地方可以互相替代,它可以使用primary key(主關鍵字),unique(唯一)和foreign key(外部關鍵字),和index相比不能使用ignor null和disallow null,但多了foreign key(這也是它最強大的地方)。另外, constraint語句必須和create table或alter table語句一起使用。

生成表newtable,主關鍵字段是field1,主索引是newpk

create table newtable(field1 long constraint newpk primary key, field2 memo, field3 datetime);

生成索引為newuk的表newtable,field1不能有相同值,可以有空值

create table newtable(field1 integer constraint newuk unique);

生成多列的主索引,兩條記錄的field1和field2不能全部相同,也不能為空值

create table newtable(field1 integer, field2 currency, constraint newpk primary key(field1, field2));

生成多列的unique索引,兩條記錄的field1和field2不能全部相同注意,如果兩條記錄其中乙個字段相同而另乙個欄位都是空值,那也算兩個字段不同

create table newtable(field1 integer, field2 currency, constraint newuk unique(field1, field2));

要在幾個不同的表之間建立聯絡,就要使用foreign key references子句,它可以限定某個表的字段內容必須存在於另外乙個表中。

第乙個例子:

首先,生成主關鍵字段為field1的表newtable1

create table newtable1(field1 integer constraint newpk primary key);

然後,再生成外部索引,兩個表的field1必須型別相同,並且第乙個表的field1是主關鍵字段或unique欄位。生成外部索引後,表newtable2要增加記錄,它的field1字段值必須已經存在於表newtable1的field1欄位中。

下面兩條語句作用相同,因為field1是newtable1的主關鍵字段,可以省略不寫

create table newtable2(field1 integer constraint newfk references newtable1);

create table newtable2(field1 integer constraint newfk references newtable1(field1));

第二個例子:

首先,生成主關鍵字段為field1和field2的表newtable1

create table newtable1(field1 integer, field2 text(20), constraint newpk primary key(field1, field2));

然後,生成多列外部索引

create table newtable2(field1 integer, field2 text(20), constraint newfk foreign key(field1, field2) references newtable1(field1, field2));

alter table語句:

在表生成之後,如果想修改表的結構,就使用這條語句,它能增加或刪除字段以及約束關係。

給表newtable增加日期型字段field3,語句執行前表newtalbe必須沒有欄位field3

alter table newtable add column field3 date;

刪除表newtable中的字段field3,語句執行前欄位field3必須存在表newtable中

alter table newtable drop column field3;

給表newtable增加newuk約束關係

alter table newtable add constraint newuk unique(field1,field2);

刪除表newtable的newuk約束關係

alter table newtable drop constraint newuk;

drop table語句:

刪除表newtable,語句執行前表newtable必須存在

drop table newtable;

無需安裝access用C 建立資料庫,建立表

using adox using jro using system.io 然後編寫相關函式 建立資料庫 路徑 public void create string mdbpath 可以加上密碼,這樣建立後的資料庫必須輸入密碼後才能開啟 mdbpath provider microsoft.jet.ol...

用C 訪問Access資料庫

我編寫這個程式的動機是當我希望用c sharp訪問msaccess資料庫的時候我沒有辦法獲得任何資訊和參考材料.網上所能獲得的所有材料都是偏重於sql的,所以我們將分兩步來編寫這個應用程式,第一我們將展示如何連線到msaccess資料庫然後看看它有多複雜.最後,我們就這樣完成了這個程式.閒言少序,讓...

C 語言建立Access資料庫

首先新增引用 com元件 microsoft ado ext.2.8 for ddl and security 然後使用adox命令空間下catalogclass類的creat方法實現 string dbname d newaccess.mdb adox.catalogclass access ne...