(二)資料庫的建立和操作

2021-10-01 16:08:36 字數 4687 閱讀 5388

以oracle為例

create

table

[《使用者方案名》.]

《表名》

(《列名1

>

《資料型別》

[default

《預設值》][

《列約束》

]《列名2

>

《資料型別》

[default

《預設值》][

《列約束》][

,…n]

《表約束》

[,…n])[

as《子查詢》

]

(1)《使用者方案名》:使用者方案是指該錶所屬的使用者,如果省略則預設為當前登入的使用者。

(2)default:關鍵字default指定某一列的預設值。預設值的資料型別必須與該列的資料型別相匹配,列的長度必須足以容納這一表示式值。

(3)《列約束》:定義乙個完整性約束作為列定義的一部分,該子句的語法為:

[not] null

[unique]

[ primary key] 例如:primary key(《列名1>, 《列名2>[,…n])

[ references [《使用者方案名》.] 《表名》(《列名》)]

[check(《條件表示式》)]

(4)《表約束》:定義乙個完整性約束作為表定義的一部分。

(5)as 《子查詢》:表示將由子查詢返回的行插入到所建立的表中

/*例子*/

create

table xsb

( 學號 char(6

)not

null

primary

key,

姓名 char(8

)not

null

, 性別 char(2

)default

'男'not

null

, 出生時間 date

notnull

, 專業 char(12

)null

, 總學分 number(2)

null

, 備註 varchar2(

200)

null);

/*建立xsb表中計算機專業學生的記錄備份表,表名為xs_jsj*/

create

table xs_jsj

asselect

*from xsb

where 專業=

'計算機'

;

alter

table

[《使用者方案名》.]

《表名》

[add

(《新列名》

《資料型別》

[default

《預設值》

][列約束]

,…n)

]/*增加新列*/

[modify([

《列名》

[《資料型別》][

default

《預設值》

][列約束]

,…n)

]/*修改已有列屬性*/

[<

drop子句》

]

說明:

(1)add子句:用於向表中增加乙個新列,新的列定義和建立表時定義列的格式一樣,一次可新增多個列,中間用逗號隔開。

(2)modify子句:用於修改表中某列的屬性(資料型別、預設值等)。在修改資料型別時需要注意,如果表中該列所存資料的型別與將要修改的列型別衝突,則會發生錯誤。例如,原來char型別的列要修改為number型別,而原來列值中有字元型資料「a」,則無法修改。

(3)drop子句:該子句用於從表中刪除指定的字段或約束,語法格式為:

drop

alter

table xs_jsj

add(獎學金等級 number(1)

, 等級說明 varchar2(40)

default

'獎金1000元');

alter

table xs_jsj

add(constraint

"pk_jsj"

primary

key(學號));

alter

table xs_jsj

modify

(等級說明 default

'獎金800元');

alter

table xs_jsj

drop

column 獎學金等級;

alter

table xs_jsj

drop

column 等級說明;

drop

table

[《使用者方案名》.]

《表名》

/*刪除表*/

drop

table xs_jsj;

1、insert語句

/*1、*/

insert

into

《表名》[(

《列名1

>

,《列名2

>

,…n)

]values

(《列值1

>

,《列值2

>

,…n)

insert

into xsb(學號, 姓名, 性別, 出生時間, 專業, 總學分)

values

('151114'

,'周何駿'

,'男'

,to_date(

'19980925'

,'yyyymmdd'),

'計算機',90

);/*2、*/

create

table test

( 姓名 char(20

)not

null

, 專業 varchar2(30)

default

('計算機'),

年級 number not

null);

//用insert向test表中插入一條記錄:

insert

into test(姓名, 年級)

values

('周何駿',3

);/*3、*/

insert

into

《表名》

《結果集》

/*例子*/

insert

into xsb1

select 學號, 姓名, 專業

from xsb

where 姓名=

'王林'

;

2、merge語句

在oracle 12c中有merge語句,用於根據與源表聯接的結果,對目標表執行插入、更新或刪除操作。例如,根據在乙個表中找到的差異在另乙個表中插入、更新或刪除行,這種方法可以對兩個表進行資訊同步。

merge

into

《目標表名》

using

《源表名》on(

《條件表示式》

)when

matched

then

when

notmatched

then

insert

(…)values

(…)merge

into a

using xsb on

(a.xh=xsb.學號)

when

matched

then

update

set a.xm=xsb.姓名, a.xb=xsb.性別, a.cssj=xsb.出生時間,

a.zy=xsb.專業, a.zxf=xsb.總學分, a.bz=xsb.備註

when

notmatched

then

insert

values

(xsb.學號,xsb.姓名,xsb.性別,xsb.出生時間,xsb.專業,xsb.總學分, xsb.備註)

;

1、delete語句

該語句的功能為從指定的表中刪除滿足條件的行,若省略where子句,表示刪除所有行。

delete

from

《表名》

[where

《條件表示式》

]/*例子*/

delete

from xsb

where zxf <

50;

2、trancate table語句

如果確實要刪除乙個大表裡的全部記錄,可以用truncate table語句,它可以釋放占用的資料塊表空間,此操作不可回退。【謹慎使用!】

truncate

table

《表名》

update語句可以用來修改表中的資料行

update

《表名》

set《列名》= [

,…n]

[where

《條件表示式》

]update xsb

set 備註=

'輔修計算機專業'

where 學號=

'151114'

;

資料庫實驗二 資料庫 表的建立和維護

建立資料庫 create database hisdb 選擇當前資料庫 use hisdb 建立doctor表 create table doctor did varchar 6 not null primary key,dname varchar 10 not null title varchar...

建立和使用資料庫

建立和使用資料庫 建立資料庫 create database 資料庫名 資料庫名在伺服器中必須是唯一的,並且符合識別符號規則 連線到資料庫 use 資料庫名 刪除資料庫 drop database 資料庫名 整數資料型別 tinyint型 使用tinyint資料型別時,儲存資料的範圍是從0到255....

建立和檢視資料庫

建立和檢視資料庫 一 建立資料庫 建立資料庫的基本語法 create database 資料庫名稱 例 建立乙個名稱為itcast的資料庫,sql語句如下所示 create database itcast 執行結果如圖 二 檢視資料庫 檢視是否建立了名稱為itcast的資料庫 檢視資料庫,sql語句...