資料庫_庫的基本操作
阿新 • • 發佈:2019-01-10
關於資料庫的基本知識
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對多關係。由中間表維護該關係。