1. 程式人生 > >資料庫_庫的基本操作

資料庫_庫的基本操作

關於資料庫的基本知識

1:資料庫簡史
2:為什麼需要使用資料庫?
3:資料庫底層實現細節
4:sql語法(最重要)

為什麼需要使用資料庫?

資料庫是什麼?

儲存資料的倉庫稱之為資料庫。
資料庫解決的問題:1:資料持久化問題。2解決傳統IO瓶頸問題。

資料庫的優勢?

大、檢索速度快、安全。

資料庫簡史

關係型結構: 物理結構--->二維表格。
關係型資料庫:
	sqlserver
	db2 
	sybase
	mysql
	oracle 
非關係型資料庫:
	mongeDB
	redis
	hbase

##資料庫底層實現細節
結構

sql

sql的分類

1:DCL 控制語言
2:DDL 定義語言
3:DML 管理語言
4:DQL 查詢語言

常見登陸命令:

a:sqlplus /nolog 口令作用:開啟資料庫服務
b:conn / as sysdba; 將/使用者 作為系統管理員登陸使用者。

注意事項:

a:oracle資料庫中的表時隸屬於使用者的。
b:當你需要檢視一個不是當前登陸使用者所屬的表時,表前要加所屬使用者。
   例子: select *from scott.emp; 通過系統管理員檢視scott使用者下的emp表中的所有資訊
c:sql語言的語法規則:
	i:sql語句不區分大小寫 (推薦大寫)
	ii:以';'結尾。
	iii: 換行,可以讓sql更加利於閱讀

###DCL 控制語言

檢視當前資料庫伺服器中所有的使用者:
select username from all_users;

1:建立使用者

create user 使用者名稱 identified by 密碼;
create user ls identified by 123;

2:授權(許可權高的給許可權低的授權)

grant 許可權1,許可權,.... to 使用者名稱 identified by 密碼;
grant connect to ls identified by 123;

3:鎖定賬戶

alter user 使用者名稱 account lock;

4:解鎖賬戶

alter user 使用者名稱 account unlock;

5:刪除賬戶

drop user 使用者名稱;

6:撤銷許可權

revoke 許可權1,許可權,.... from 使用者名稱;

###DDL 定義語言

表=行記錄(資料)+表結構

表結構 = 列名+列型別

資料型別

數值型:

number(5)---> 當前類儲存的時數值,該數值最大為99999
number(5,2)---> 當前類儲存的時數值,該數值最大為999.99 5個長度 保留小數點後2位

字串:

char(5)--->當前儲存的資料是字串型別 最多儲存5個長度的串。 定長
varchar2(5)--->當前儲存的資料是字串型別 最多儲存5個長度的串。變長 

日期:

date time timestamp

1:建立表

create table 表名 (列名 列型別,列名 列型別....);

2:刪除表

drop table 表名;

3:查看錶結構

desc 表名;

4:修改:alter table 表名:

i:修改表名
alter table 表名 rename to 新表名;

ii:修改列名
alter table 表名 rename column 原列名 to 新列名;

iii:修改列型別
alter table 表名 modify 列名 列型別;

iv:新增列
alter table 表名 add 列名 列型別;

v:刪除列
alter table 表名 drop column 列名;

三正規化( 很重要 )

1:表的原子性(列中不能存在多個值,不能存在重複列)
2:主鍵唯一(存在一列用來區分行記錄)
3:多張表如果存在關係,那麼通過主外來鍵維護。

如何構建表:

1:遵守三正規化
2:梳理表和表之間的關係。
	如何梳理關係: 說 一個老師可以教多個學生 一個學生可以被多個老師教
    如何維護關係:
	1對多關係中,關係由多的一方維護。(主外來鍵,多的一方通過獲取一的一方的主鍵在自己表中形成外來鍵)。
	多對多關係中,拆分中間表,讓中間表和其他兩張表存在1對多關係。由中間表維護該關係。