国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

3.表操作&&事務(wù)

2024-07-21 02:53:00
字體:
供稿:網(wǎng)友

表操作

常見的數(shù)據(jù)庫對象

對象 描述
基本的數(shù)據(jù)存儲集合,由行和列組成。
視圖 從表中抽出的邏輯上相關(guān)的數(shù)據(jù)集合。
序列 提供有規(guī)律的數(shù)值。
索引 提高查詢的效率
同義詞 給對象起別名

數(shù)據(jù)類型

數(shù)據(jù)類型 描述
VARCHAR2(size) 可變長字符數(shù)據(jù)
CHAR(size) 定長字符數(shù)據(jù)
NUMBER(p,s) 可變長數(shù)值數(shù)據(jù)
DATE 日期型數(shù)據(jù)
LONG 可變長字符數(shù)據(jù),最大可達(dá)到2G
CLOB 字符數(shù)據(jù),最大可達(dá)到4G
RAW (LONG RAW) 原始的二進(jìn)制數(shù)據(jù)
BLOB 二進(jìn)制數(shù)據(jù),最大可達(dá)到4G
BFILE 存儲外部文件的二進(jìn)制數(shù)據(jù),最大可達(dá)到4G
ROWID 行地址

表的常見操作

產(chǎn)看已經(jīng)創(chuàng)建的所有表

select table_name from user_tables;

創(chuàng)建表

創(chuàng)建table_01的表格,包含字段,id,name,salary,hire_date。

SQL> create table table_01( 2 id number(10) not null, 3 name varchar2(10), 4 salary number(10,2), 5 hire_date date 6 ); ```### 查詢方式創(chuàng)建表把查詢的結(jié)果作為一個新表,并創(chuàng)建` create table emp as (select * from employees where salary>10000);``desc emp;`輸出:

alter修改表

修改表明

rename [舊表名] to [新表名]

刪除表

drop table [表名]

清空表的內(nèi)容

truncate table [表名] 該操作不能回滾 但是使用delete from [表名]之后使用rollback可以撤回操作

增加一個列

alter table [表名] add ([字段名] [字段類型]);

修改現(xiàn)有的列

alter table [表名] modify ([字段名] [字段類型]);

為新追加的列定義默認(rèn)值

alter table [表名] modify ([字段名] [字段類型] default [默認(rèn)值]);

刪除一個列

alter table [表名] drop column [字段名] ;

重命名表的一個列

alter table [表名] [列名] rename column [舊字段名] to [新字段名] ;

表的增刪改查

增加數(shù)據(jù)到表格

1. 直接插入

insert into [表名](column[,column...]) values (values[,values...]) 示例:向 emp2 表中插入一行數(shù)據(jù)

SQL> insert into emp2 values(1,'bart',13000.89,to_date('2017-3-21','yyyy-mm-dd'));

2. 創(chuàng)建腳本,按照提示輸入數(shù)據(jù)并插入到表格:

SQL> insert into emp2(id,name,salary,hire_date) values(&id,'&name',&salary,&hire_date);Enter value for id: 3Enter value for name: maggieEnter value for salary: 16000Enter value for hire_date: to_date('2017-6-6','yyyy-mm-dd')old 1: insert into emp2(id,name,salary,hire_date) values(&id,'&name',&salary,&hire_date)new 1: insert into emp2(id,name,salary,hire_date) values(3,'maggie',16000,to_date('2017-6-6','yyyy-mm-dd'))1 row created.

從其它表格拷貝數(shù)據(jù)

把B表數(shù)據(jù)拷貝到A表

insert into [表A] select * from [表B] 注意: 前提是A表必須存在而且表結(jié)構(gòu)和B表一樣

更新表格數(shù)據(jù)

更新 update [表名] set [字段名]=[更新的值] where [條件]

[更新的值]可以是一個子查詢

注意約束導(dǎo)致數(shù)據(jù)完整性錯誤UPDATE employeesSET department_id = 55WHERE department_id = 110;

導(dǎo)致錯誤

UPDATE employees *ERROR at line 1:ORA-02291: integrity constraint (HR.EMP_DEPT_FK) violated - parent key not found

原因是,employees對應(yīng)department中沒有55號這個部門所以導(dǎo)致失敗。

刪除數(shù)據(jù)

delete from [表名] where [條件]

如果不加條件則就是刪除所有的表記錄

[條件]可以作為一個子查詢

事務(wù)

一組邏輯操作單元,使數(shù)據(jù)從一種狀態(tài)變換到另一種狀態(tài)。

數(shù)據(jù)庫事務(wù)由以下的部分組成:

一個或多個DML 語句一個 DDL(Data Definition Language – 數(shù)據(jù)定義語言) 語句一個 DCL(Data Control Language – 數(shù)據(jù)控制語言) 語句

commit和rollback

對一個表進(jìn)行操作完畢后,使用commit表示保存做的操作,保存完畢之后如果在次對標(biāo)進(jìn)行操作,而沒使用commit此時使用rollback會使得表的修改恢復(fù)到上一次commit之后

舉個例子:創(chuàng)建一個表,并插入了數(shù)據(jù),如果插入完數(shù)據(jù)之后沒有使用commit,那么表格內(nèi)容雖然是修改了的,但是并沒有保存,此時如果使用rollback表格會恢復(fù)到?jīng)]插入內(nèi)容之前的狀態(tài)。也就是空表格。。。

對表操作的時候,相當(dāng)于數(shù)據(jù)庫給表加了一把鎖,當(dāng)使用commit之后,鎖才會釋放,其他用戶才能對表進(jìn)行操作


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 景泰县| 花莲县| 贡觉县| 开封县| 方山县| 临潭县| 大同县| 大石桥市| 仲巴县| 双辽市| 陕西省| 雷州市| 侯马市| 隆回县| 元阳县| 新巴尔虎右旗| 民县| 莱州市| 临朐县| 新安县| 舞钢市| 仪征市| 修水县| 台北市| 太湖县| 德庆县| 含山县| 南雄市| 石台县| 吴川市| 黔西县| 台南县| 日土县| 三穗县| 炉霍县| 石屏县| 上高县| 南江县| 海宁市| 钟祥市| 怀柔区|