數據庫的一些概念
- 數據庫(Database,簡稱DB)是按照數據結構來組織、
存儲和管理數據的倉庫. -
數據庫管理系統(Database Management System,簡稱
DBMS):管理數據庫的軟件. -
數據庫引擎,數據庫範式(了解百科)
-
表的概念
一個關系數據庫由多個數據表(Tabe)組成,數據表是關系
數據庫的基本存儲結構
表是二維的,由行和列組成
表的行(Row)是橫排數據,也被稱作記錄(Record)
表的列(Column)是縱列數據,也被稱作字段(Field)
表和表之間存在關聯關系 - 主流關系型數據庫
-
Oracle是著名的Oracle(甲骨文)公司的數據庫產品
Sybase是美國Sybase公司的關系型數據庫系統
Microsoft SQL Server是微軟的產品,運行在WindowsNT服 務器上
MySQL是開發源代碼的小型關系數據庫管理系統,廣泛
應用在中小型網站中,(目前也屬於Oracle) -
SQL概述
SQL:結構化查詢語言
SQL是在關系數據庫上執行數據操作、檢索及維護所使
用的標準語言,可以用來查詢數據,操縱數據,定義數據,
控制數據
所有的數據庫都使用相同或者相似的語言 -
SQL可分為:
- 數據定義語言(DDL):Data Definition Language
- 數據操縱語言(DML):Data Manipulation Language
- 事務控制語言(TCL):Transaction Control Language
- 數據查詢語言(DQL):Data Query Language
- 數據控制語言(DCL):Data Control Language
-
DDL
Data Definition Language
用於建立、修改、刪除數據庫對象
包括:- CREATE:創建表或其他對象的結構
- ALTER:修改表或其他對象的結構
- DROP:刪除表或其他對象的結構
- TRUNCATE:刪除表數據,保留表結構
DDL:數據定義語言
DDL用於維護數據庫對象使用
數據庫對象:表,視圖,索引,序列.
-
DML
Data Manipulation Language
和事務相關,執行完後需要經過事務控制語句提交後才
真正的將改變應用到數據庫中
包括:- INSERT:將數據插入到數據表中
- UPDATE:更新數據表中已存在的數據
- DELETE:刪除數據表中的數據
-
TCL
Transaction Control Language
用來維護數據一致性的語句
包括:- COMMIT:提交,確認已經進行的數據改變
- ROLLBACK:回滾,取消已經進行的數據改變
- SAVEPOINT:保存點,使當前的事務可以退到指定的
保存點,便於取消部分改變
-
DQL
Data Query Language
用來查詢所需要的數據
SELECT語句 -
DCL
Data Control Language
用於執行權限的授予和收回操作
包括:- GRANT:授予,用於給用戶或角色授予權限
- REVOKE:用於收回用戶或角色有的權限
- CREATE USER:創建用戶
-
Oracle數據類型
NUMBER表示數字類型
經常被定義成NUMBER(P,S)形式,其中:- P 表示數字的總位數
- S 表示小數點後面的位數
CHAR表示固定長度的字符類型
經常被定義成CHAR(N)形式,N表示占用的字節數
最大長度是2000字節
VARCHAR2表示變長的字符類型
定義格式是VARCHAR2(N),N表示最多可占用的字節數
最大長度是4000字節
DATE用於定義日期時間的數據
長度是7個字節
默認格式是:DD-MON-RR,例如:11-APR-71
-
創建表
CREATE語句
CREATE TABLE 名字()
DESC語句(查看表的結構)
DESC table_name
DEFAULT語句
可以通過DEFAULT子句給列指定默認值
給gender列賦默認值 ‘M‘,如果沒有指定性別的員工,
默認是男性.
NOT NULL
非空是一種約束條件,用於確保字段值不為空
默認情況下,任何列都允許有空值
當某個字段被設置了非空約束條件,這個字段中必須 存在有效值
當執行插入數據的操作時,必須提供這個列的數據
當執行更新操作時,不能給這個列的值設置為NULL -
修改表
修改表名
在建表後如果希望修改表名,可以使用RENAME語句實 現
增加列
給表增加列可以使用ALTER TABLE的ADD子句實現
語法: ALTER TABLE table_name ADD
列只能增加在最後,不能插入到現有的列中
刪除列
使用ALTER TABLE table_name DROP(column);
刪除字段需要從每行中刪掉該字段占據的長度和數據,
並釋放在數據塊中占據空間,如果表記錄比較大,刪除 字段可能需要比較長的時間.
修改列
建表之後們可以改變表中列的數據類型、長度和默認值
修改僅對以後插入的數據有效
如果把長度由大改小,有可能不成功
語法:ALTER TABLE table_name MODIFY - DML語句
INSERT語句:給數據表增加記錄
語法如下:
INSERT INTO table_name[(column[,column...])]
VALUES(value[,value...]);
執行DML操作以後,需要在執行commit語句,才算真正
確認了此操作
如果插入的列有日期字段,需要考慮日期的格式
可以自定義日期格式,用TO_DATE函數轉換為日期類型的數據
UPDATE語句
更新表中的記錄
語法如下:UPDATE table_name
SET column = value[,column=value]..
[WHRER condition];
如果沒有WHERE子句,則全表的數據都會被更新,務必小心
DELETE語句
刪除表中的記錄
語法如下:DELETE[FROM] table_name[WHERE condition];
如果沒有WHERE子句,則全表的數據都會被刪除!
數據庫的一些概念