數據庫基本概念數據庫
數據庫(Database, DB)
數據庫管理系統(Database Management System, DBMS)
數據庫管理員( Database Administrator, DBA )
數據庫系統( Database System, DBS )
關係型數據庫(Relationship Database, RDB)安全
關係型數據庫管理系統(RDBMS)
SQL語言(Structured Query Language)
使用關係模型的數據庫語言,用於和各種數據庫的交互,提供通用的數據管理和查詢功能:
改變數據庫結構
更改系統安全設置
設置用戶對數據庫或表的許可權限
在數據庫中檢索須要的信息
對數據庫的信息進行更新
經常使用SQL指令:
SELECT、INSERT、DELETE、UPDATE、CREATE、DR
當前流行的大型關係型數據庫: Oracle、IBM DB二、SQL Server、SyBase、Informix等。服務器
實體間聯繫:網絡
一對一關係(1:1)
兩個實體集A和B,若A中的每一個實體至多和B中的一個實體有聯繫,反之,B中的每一個實體至多和A中的一個實體有聯繫,稱A對B或B對A是一對一關係。
一對多關係(1:n)
兩個實體集A和B,若是A中的每一個實體能夠和B中的0~多個實體有聯繫,而B中的每一個實體至多和A中的一個實體有聯繫,則稱A對B爲一對多關係。
多對多關係(m:n)
兩個實體集A和B,若A中的每一個實體可與和B中的多個實體有聯繫,反之亦然,稱A對B或B對A是多對多關係。架構
關係型數據庫基本術語:oracle
關係:整個二維表
關係名:表格名稱
元組:行數據(記錄)
屬性:列數據(字段/份量)
屬性名:列名稱(字段名)
主鍵:惟一肯定元組的屬性組(關鍵字)
域:屬性的取值範圍
關係模式:關係名(屬性列表)
如:學生(學號,姓名,性別,系別,年齡,籍貫)
約束
域完整性約束
實體完整性約束
參照完整性約束
數據庫(Database)
是磁盤上存儲的數據的集合(包括配置文件、數據文件、日誌文件和控制文件等)
數據庫實例(Database Instance)
運行在數據庫文件上的一組Oracle後臺進程/線程以及一個共享內存區。數據庫能夠由實例裝載和打開。
Oracle實時應用集羣( RAC, Real Application Clusters)
Oracle並行服務器架構/RAC架構
數據庫服務名( Database Service_Name)
從oracle8i開始引入,數據庫客戶端與服務器端鏈接時建議指定其數據庫服務名,而不是數據庫實例名。
網絡服務名(Net Service Name)
數據庫在客戶端的邏輯表示,包含數據庫服務名和網絡地址兩方面信息
監聽器(Monitor)
SQL語句分類:
Select查詢語句
DML語句(數據操做語言)
Insert、Update、Delete、Merge
DDL語句(數據定義語言)
Create、Alter、Drop、Truncate
DCL語句(數據控制語言)
Grant、Revoke
事務控制語句
Commit 、Rollback、Savepoint
線程
SQL 語言大小寫不敏感。
SQL 能夠寫在一行或者多行
關鍵字不能被縮寫也不能分行
各子句通常要分行寫。
使用縮進提升語句的可讀性。
數字和日期使用的數學表達式。
SELECT last_name, salary, salary + 300
FROM employees;
乘除的優先級高於加減。
同一優先級運算符從左向右執行。
括號內的運算先執行。
空值是無效的,未指定的,未知的或不可預知的值。
空值不是空格或者0。
列的別名:
重命名一個列。
便於計算。
緊跟列名,也能夠在列名和別名之間加入關鍵字‘AS’,以便在別名中包含空格或特殊的字符並區分大小寫。 日誌
在emp表中查詢相關信息 orm
select * from emp;
select * from emp where ename like'%*_%' escape'*';
select * from emp where deptno=30;
select empno,ename from emp where job='manager';
select * from emp where comm>sal;
select sal+comm,ename from emp;
select * from emp where(deptno=10 and job='MANAGER')or(deptno=20 and job='CLERK');
select * from emp where deptno=10 and job not in('MANAGER','CLERK')and sal>=2000;
select distinct job from emp where comm is not null and comm>0;
select * from emp where comm<500 or comm is null;
select ename from emp order by hiredate;
emp表blog