Oracle 數(shù)據(jù)庫(一)

1.數(shù)據(jù)庫

DB(database) 用來存儲數(shù)據(jù)的倉庫
DBS(數(shù)據(jù)庫系統(tǒng)) 一套軟件 包括DB 和DBS
DBMS(數(shù)據(jù)庫管理系統(tǒng))

主流數(shù)據(jù)庫:
主流數(shù)據(jù)庫

2.sql->structs query lanagues(結(jié)構(gòu)化的查詢語言)

任何數(shù)據(jù)庫都支持的語言標(biāo)準(zhǔn)sql
不同數(shù)據(jù)庫
1:數(shù)據(jù)類型會存在一些差異
2:函數(shù)存在一些差異
3:存儲過程 plsql.一些差異

3.Oracle 定義

1) oracle版本

oracle7 – oracle8 -> oracle8i -> oracle9i -> oracle10g -> oracle11g -> oracle12c
i->internet 支持網(wǎng)絡(luò)訪問操作
g-> grid 支持網(wǎng)格的數(shù)據(jù)庫 (支持分布式應(yīng)用)
c->cloud 支持云計算的數(shù)據(jù)庫

2)oracle數(shù)據(jù)類型
  • 字符類型
    char 是一個定長的字符類型 最大存儲空間是2000字符
    char(10) “a”, -> a ,
    varchar 是一個變長的字符類型最大存儲空間是4000字符
    varchar(10) “a” -> a,
    varchar2 是一個變長的字符類型最大存儲空間是4000字符,是oracle 10g新推出的數(shù)據(jù)類型在varchar上面改正的數(shù)據(jù)類型,在性能上比varchar高
  • 數(shù)值類型
    number 可以存儲任意的數(shù)據(jù) 包括帶小數(shù)位的
    number(n) n代表整數(shù)位數(shù)
    number(3)->存儲范圍 -999 -999
    number(n,m) n代表有效值的總位數(shù) m小數(shù)位數(shù)
    number(5,2) ->存儲范圍 -999.99 -999.99
  • 時間類型
    date 時間 可以存儲到 年月日 時分秒
    timestamp 時間 可以存儲到 年月日 時分秒 毫秒
  • 大數(shù)據(jù)類型
    clob 以字符存儲的大數(shù)據(jù) 最大值是4G (文章)
    blob 以二進(jìn)制存儲的大數(shù)據(jù) 最大值是4G (視頻 照片)
3) oracle 表 列命名規(guī)范

必須只能是 字母 數(shù)字 _ - $ 組成
首字母必須不能是數(shù)字
命名不能是oracle的關(guān)鍵字 number char varchar….
命名的長度不能超出 30個字符
數(shù)據(jù)庫中 表名 列名 關(guān)鍵字 都不區(qū)分大小寫,但數(shù)據(jù)值區(qū)分大小寫

4、數(shù)據(jù)庫定義語言 DDL(database defined language)

1)創(chuàng)建表:
   create table 表名(
     列名1  數(shù)據(jù)類型1,
     ………,
     列名n  數(shù)據(jù)類型n
)
2) 修改表結(jié)構(gòu)
  • 添加列
    alter table 表名 add (字段名 字段類型 默認(rèn)值 是否為空,....);
  • 修改列
    alter table 表名 modify (列名 新的數(shù)據(jù)類型,….. 列名 新的數(shù)據(jù)類型)
  • 刪除列
    alter table 表名 drop column 列名;
  • 字段重命名
    alter table 表名 rename column 老列名 to 新列名
  • 表的重命名
    alter table 表名 rename to 新表名
3) 刪除表
drop table 表名;
/*刪除閃回為刪除oracle10g中的數(shù)據(jù)庫實體提供了一個安全機(jī)制,當(dāng)用刪除一個表時,oracle10g 
會將該表放到回收站中,回收站中的對象一真會保留,直到用戶決定永久刪除它們或出現(xiàn)表空間的空間不足
時才會被刪除?;厥照臼且粋€虛擬容器,用于存儲所有被刪除的對象*/
flashback table 表名  to before drop;
4)截斷表

truncate table 表名;//刪除數(shù)據(jù),保留表結(jié)構(gòu)

5、數(shù)據(jù)庫操縱語言 DML(database manipulate language)

  • 向數(shù)據(jù)庫表里面插入記錄
insert  into 表名 (列名1,。。。。。列名n) values (列名1值,…. 列名n值);
 數(shù)據(jù)僅僅插入數(shù)據(jù)庫的緩沖器  要進(jìn)入數(shù)據(jù)庫 必須啟動事務(wù)操縱
       Commit ;或者  rollback;
  • 刪除表里面的記錄
delete from表名   刪除表里面的所有記錄 保留表結(jié)構(gòu)
也需要  Commit ;或者  rollback; 

drop table 刪除表 刪除表數(shù)據(jù)與表結(jié)構(gòu) 不能回滾 會釋放空間
truncate table 刪除表數(shù)據(jù) 保留表結(jié)構(gòu) 不能回滾 會釋放空間
delete table 刪除表數(shù)據(jù) 保留表結(jié)構(gòu)可以回滾 不釋放空間

  • 修改表里面的數(shù)據(jù)
 Update 表名 set 屬性1=值1,….. 屬性1=值1 where 屬性=值;

6、數(shù)據(jù)庫的規(guī)范(范式)

第一范式 :表的列不可再分
第二范式: 在滿足第一范式的基礎(chǔ)上,行數(shù)據(jù)可以唯一區(qū)分
可以考慮給表加上唯一可以區(qū)分的 不能重復(fù)的列(主鍵)
第三范式:在滿足第二范式的基礎(chǔ)上,外鍵要依賴其他表的主鍵

7、表的約束

constraint 約束名 約束類型(列名)

創(chuàng)建表的時候添加約束:

Create table xxx(
 列1 數(shù)據(jù)類型1,
...,
Constraint 約束名  約束類型 (列名)
)

創(chuàng)建完表之后添加約束:
alter table ttss_user add constraint ttss_user_pk primary key(id);

  • 主鍵約束(primary key)
  • 唯一約束(unique):只可以有一個null
  • 檢查約束(check):常用于范圍檢查
    constraint sex_check check(sex='女')
  • 默認(rèn)值約束(default ):寫法不一樣
    alter table 表名 modify 列名 default 默認(rèn)值
  • 外鍵約束(foreign key):值可以是null
    constraint 約束名 foreign key(列名) references 外表名(列名)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容