吳昊+王一冰+吳麗君
摘 要:DB(database)數(shù)據(jù)庫(kù)的簡(jiǎn)化縮寫(xiě),可以說(shuō)DB是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù),隨著信息技術(shù)和數(shù)據(jù)管理的需求,使得它出現(xiàn)于90年代,數(shù)據(jù)管理不僅需要存儲(chǔ)和管理數(shù)據(jù),而且要貼合用戶的需求,變成可以對(duì)各種數(shù)據(jù)進(jìn)行管理和操控的新方式。數(shù)據(jù)庫(kù)技術(shù)成為了管理系統(tǒng)、自動(dòng)化系統(tǒng)等各類使用信息保存內(nèi)庫(kù)的核心部分。
關(guān)鍵詞:DB;數(shù)據(jù)庫(kù);甲骨文
說(shuō)到數(shù)據(jù)庫(kù),我們就不得不提到DBMS數(shù)據(jù)庫(kù)管理軟件關(guān)系型數(shù)據(jù)庫(kù),其中按照公司分,市面上的數(shù)據(jù)庫(kù)可以大致分為以下幾類:
Oracle數(shù)據(jù)庫(kù)。具有性能穩(wěn)定、安全性高等優(yōu)點(diǎn),采用標(biāo)準(zhǔn)SQL語(yǔ)句,支持多種數(shù)據(jù)類型,提供面向?qū)ο蟮臄?shù)據(jù)支持,支持Unix、Windows,但價(jià)格稍貴,一般大公司大項(xiàng)目會(huì)用到,而甲骨文公司的Oracle產(chǎn)品也是世界上第一個(gè)商品化關(guān)系型數(shù)據(jù)庫(kù)關(guān)系系統(tǒng)。
DB2數(shù)據(jù)庫(kù),IBM公司的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。SQL Server數(shù)據(jù)庫(kù),微軟公司的產(chǎn)品。My SQL開(kāi)放性的源碼型數(shù)據(jù)庫(kù)是SUN公司基于用戶的開(kāi)放性的、免費(fèi)的數(shù)據(jù)庫(kù)操縱軟件,但不幸被Oracle收購(gòu)。
在數(shù)據(jù)庫(kù)中,所有的數(shù)據(jù)庫(kù)都是用相同或相似的結(jié)構(gòu)化查詢語(yǔ)言,SQL(Structured Query Language)結(jié)構(gòu)化查詢語(yǔ)言它又可以具體的分為以下幾類:
數(shù)據(jù)定義語(yǔ)言(DDL,Data Definition Language):用于建立、修改、刪除數(shù)據(jù)庫(kù)對(duì)象。
CREATE:用于創(chuàng)建表或其他數(shù)據(jù)對(duì)象結(jié)構(gòu)。
ALTER:修改表或其他數(shù)據(jù)對(duì)象結(jié)構(gòu)。
DROP:刪除表或其他數(shù)據(jù)對(duì)象的結(jié)構(gòu)。
TRUNCATE:刪除表數(shù)據(jù),保留表結(jié)構(gòu)。
數(shù)據(jù)操縱語(yǔ)言(DML,Data Manipulation Language):用于改變表中的數(shù)據(jù)。
INSERT:將數(shù)據(jù)插入到數(shù)據(jù)表中。
UPDATE:更新數(shù)據(jù)表中的已存在的數(shù)據(jù)。
DELETE:刪除數(shù)據(jù)表中的數(shù)據(jù)。
事物控制語(yǔ)言(TCL,Transaction Control Language): 用來(lái)維護(hù)數(shù)據(jù)的一致性語(yǔ)句。
COMMIT:提交,確認(rèn)已經(jīng)進(jìn)行的數(shù)據(jù)改變。
ROLLBACK:回滾,取消已經(jīng)進(jìn)行的數(shù)據(jù)改變。
SAVEPOINT:使當(dāng)前的事務(wù)可以回退到指定的保存點(diǎn),便于取消部分改變。
數(shù)據(jù)查詢語(yǔ)言(DQL,Data Query Language):用來(lái)查詢所需要的數(shù)據(jù)。
SELECT:語(yǔ)句
數(shù)據(jù)控制語(yǔ)言(DCL,Data Control Language):用于執(zhí)行權(quán)限的授予和收回的操作。
GRANT:授予用于給用戶或角色授予權(quán)限。
REVOKE:用戶收回用戶或角色已有的權(quán)限。
CREATE USER:用戶創(chuàng)建用戶。
NUMBER表示數(shù)字類型
經(jīng)常被定義成NUMBER(p,s)形式,其中p表示數(shù)字的總位數(shù),s表示小數(shù)點(diǎn)后面的位數(shù)。
CHAR類型表示字符串
表示固定長(zhǎng)度的字符類型,經(jīng)常被定義成CHAR(N)形式,N代表占用的字節(jié)數(shù),最大長(zhǎng)度是2000個(gè)字節(jié)。
VARCHAR2類型字符串
表示變長(zhǎng)字符類型,經(jīng)常被定義成VARCHAR2(N)形式,N代表占用的字節(jié)數(shù),最大長(zhǎng)度是4000個(gè)字節(jié)。
DATE日期類型:用于定義日期時(shí)間的數(shù)據(jù),長(zhǎng)度是7個(gè)字節(jié)。
CONCAT()函數(shù)表示字符串的拼接
例如:select CONCAT(CONCAT(‘A,':'),5000)from dual;
LENGTH()用于返回字符串的長(zhǎng)度,值得我們注意的是,如果字符類型是VARCHAR2返回字符的實(shí)際長(zhǎng)度,如果是CHAR返回固定長(zhǎng)度。
UPPER()轉(zhuǎn)成大寫(xiě)字母,LOWER()轉(zhuǎn)換成小寫(xiě)字母,INITCAP()首字符轉(zhuǎn)大寫(xiě)。
TRIM截取兩端字符串,LTRIM截取左端字符串,RTRIM截取右端字符串。
SUBSTR(char,m,n)用字符串的截取,用于獲取字符串的子串,返回char中會(huì)從m位開(kāi)始取n個(gè)字符,如果m=0則從首字符開(kāi)始截取;如果m為負(fù)數(shù),則從尾部開(kāi)始截?。蝗绻鹡沒(méi)有設(shè)置數(shù)值或者n的長(zhǎng)度超過(guò)char的長(zhǎng)度,則截取到字符串末尾為止,注意下標(biāo)從1開(kāi)始。INSTR(char1,char2,n)返回子串char2在源字符串char中的位置,從n的位置開(kāi)始搜索,沒(méi)有指定n的情況從第一個(gè)開(kāi)始搜索。
在DATE日期中,Oracle是經(jīng)常使用的一個(gè)日期類型,其與DATE的區(qū)別是不僅可以保存日期和時(shí)間,還可以保存小秒數(shù),最高精度可以到ns(納秒)。數(shù)據(jù)庫(kù)內(nèi)部用7或者11個(gè)字節(jié)存儲(chǔ),精度為零。當(dāng)用7個(gè)字節(jié)儲(chǔ)存的時(shí)候,與DATE功能相當(dāng)。精度大于0,則用11個(gè)字節(jié)存儲(chǔ)。SYSDATE獲取當(dāng)前數(shù)據(jù)庫(kù)所在服務(wù)器的系統(tǒng)時(shí)間包含毫秒數(shù)。如果有需要,我們將日期類型轉(zhuǎn)換成字符串類型會(huì)使用到TO_CHAR(),將字符串類型轉(zhuǎn)換成日期類型則會(huì)使用TO_DATE(‘2016-12-12,‘yyyy-mm-dd')。
查詢表中的數(shù)據(jù)時(shí)用到select * from表名,其中:
select*表示查詢表中的所有字段
select字段名表示查詢表中的指定字段
select+常量 例如1 ‘sdf'表示顯示對(duì)應(yīng)的常量值
select+函數(shù) 表示顯示函數(shù)運(yùn)行后的結(jié)果
from指要從哪個(gè)表中查詢
表查詢的時(shí)候可以為查詢結(jié)果加別名
使用時(shí)在列的后面as+別名(" ")直接寫(xiě) as關(guān)鍵字可加可不加
如果希望別名中區(qū)分大小寫(xiě)字符,或者別名中包含字符或空格,則必須用雙引號(hào)引起來(lái)
例句:select empno AS id,ename "Name",salary*12 "Annual Salary" from emp_chen;
與之相比,在查詢語(yǔ)句中我們需要使用比較操作,限制查詢的結(jié)果時(shí)就需要使用where 子句:
如果和數(shù)字比較,可以使用單引號(hào)括起來(lái),也可以不用。
如果是和字符串及日期類型比較數(shù)據(jù),則必須用單引號(hào)括起來(lái)。
例句:select * from emp_chen where deptno=10;
以上就為大家介紹這些Oracle數(shù)據(jù)庫(kù)的基本操作語(yǔ)言。
參考文獻(xiàn):
[1] 西爾伯沙茨(美),等.數(shù)據(jù)庫(kù)系統(tǒng)概念(第6版)[M].楊冬青,等,譯.北京:機(jī)械工業(yè)出版社,2012.
[2] Thomas Kyte,Darl Kuhn(美). Oracle編程藝術(shù)深入理解數(shù)據(jù)庫(kù)體系結(jié)構(gòu)(第3版)[M].北京:人民郵電出版社,2012.
[3] 厄茲敘(德),Valduriez.P(德).分布式數(shù)據(jù)庫(kù)系統(tǒng)原理(第3版)[M].周立柱,等,譯.北京:清華大學(xué)出版社,2014.