《Oracle Database 11g & MySQL 5.6開發手冊 》 試讀心得

《Oracle_Database_11g___MySQL_5.6開發手冊》 試讀心得

瞎掰:

作爲web開發者,是需要和數據庫打交道的。面試少不了會問數據庫的。
尤其最怕面試官刨根問底的問:你都用過那些數據庫?oracle,mysql,sqlserver 能不能介紹其中一些差異,和相關函數。。頓時能把你整懵了。。裏面函數一大把。皺眉都下乾飯了(忘記了) 更有換工作每次筆試少不了的 sql,一直用ORM的我,sql 很多都下乾飯了(忘記了).有一次筆試被數據庫坑了一次,決定好好惡補下sql。
看書名 oracle 11g mysql 大概講2種數據庫的一些知識點吧。開始 試讀...

 

題外話:
首先先了解下:mysql 的2個版本:
企業版:可靠,安全,有官方技術支持的
社區版: 沒有企業版安全。出現任何問題,Mysql官方概不負責。

 

前三章:

打開pdf目錄頁,啊你將看到15章知識點,15章都看完,我相信sql應該不錯了吧。
跳過前3章,(開篇第一章講了TCP/IP協議一下知識,作爲知識積累用。貌似前3章沒什麼關於sql的知識點樣的,之前會sql的可以跳過了,不會的應該照着做一邊了,比如新手)

 

第3 章 安 全 模 型
開始就把我整懵了
MySQL 並不支持例如傳統的Oracle 數據庫這樣的虛擬專用數據庫(Virtual Private Database ,VPD) 這個專業術語沒接觸過...

註釋了一個經驗:
Oracle Database 11g 可以給數據文件加密。這樣可以避免其他人通過讀取數據文件中的數據從而突破操作系統的安全屏障。目前的MySQL 5.5 尚不具備如此強大的安全功能。這個功能就好了。一般都在寫入和讀取有自己的規則實現比如:用戶名密碼加密。開篇都介紹了 oracle 和mysql 的細微的差異
一張圖,清晰的展示了 php多層網站架構

數據控制語言DCL 這個可是大的知識點,面試很有用處的用列表的形式說oracle 和mysql的 DCL 語句的差異這些都不是一般網上能整理全的。。

小知識點:
Mysql 支持通配符的形式授權用戶:
GRANT ALL ON lib.* TO 'student'@'%';
這個在其他數據庫 中貌似沒有這個功能樣的。
哎呦,沒看到後面還有15個習題的。。我看過的書很少有這個。估計這是本書的一大亮點。

 

第7 章 修改用戶和結構

這一章是重點了。。尤其是索引,在讀本書之前,我就知道什麼聚集索引非聚集索引,就知道索引能提高查詢速度,就不知道什麼情況下創建索引,平常都是添加主鍵自動生成的唯一索引,本章索引是我要讀重點。不知能不能看到。

開篇提到 創建用戶 平常很少用,但在一些電信bi,銀行bi系統有專門的用戶。。公司有專門的DBA 開章就詳細介紹了 用戶口令丟失情況,如何修改口令。


知識點:

1.用sql命令查詢出約束和列(一般都點開表一個個看,沒想到還有命令的,學習了)
2.UPPER() 函數將文字都改成大寫。
3.用一個列表的形式介紹; 約束規範代碼(C check約束,P PRIMARY 主鍵約束,R FOREIGN 外鍵約束 V是 唯一約束)看完發現V是唯一,平常都用U來表示唯一約束


開章就來了一大片的 alter table 語句規範。哎呦幸好下面有一個個解說的.看了一下里面有很多關鍵字沒見過的比如:MODIFY SORT

下面知識點多了

知識點:

1.Oracle 添加列 alter table tablename add(column_name type)可以添加多個的。書中又提到了一種添加列的寫法:
一般都:
alter   table   Tablename   add(column1   varchar2(20),column2   number(7,2)...)
第二種:需要注意到是 兩個ADD 子句之間並沒有逗
ALTER TABLE rental_item
 ADD (rental_item_price NUMBER)
 ADD (rental_item_type NUMBER);
又介紹了添加主鍵,和約束的語法。並舉例說明。

2.ALTER TABLE (表名) RENAME COLUMN (當前列名) TO (新列名);
3.MODIFY 修改列名的時候  如果存在數據則會失敗
4. MODIFY 的時候可以添加 約束的(這個學習了,平常都沒注意這些的)
ALTER TABLE calendar
 MODIFY (start_date DATE CONSTRAINT nn_calendar_1 NOT NULL);
上面的例子 修改列的類型,並添加了not null 約束並起了名字
5.oracle 和mysql 在刪除當一列有多列的UNIQUE 約束引用的時候會有差別的(這個平常哪有注意的,可見本書介紹的細了)
看到這,下面有介紹了 Mysql 添加列和刪除列的差異(哎呦,這個直接把oracle 和mysql 做了一個差異對比。。)
6.在添加列的過程中 Mysql 和Oracle 還是有差異的你要在ADD 子句之間
添加逗號,而且可以在已經存在行的列上分配NOT NULL 約束。MySQL 數據庫支持 PRIMARY KEY、NOT NULL、UNIQUE 和FOREIGN KEY 約束,但不支持CHECK 約束。(這些細節問題,平常不會留意的)
7. (筆者認爲這個change 沒用過) mysql change 用來修改列名
ALTER TABLE calendar
 CHANGE month_shortname short_month_name VARCHAR(3);
8.Oracle 在修改列的順序的時候,只能刪除列,在新建列,而Mysql有內置的函數。
mysql> ALTER TABLE rental_item
    MODIFY rental_item_price int unsigned AFTER item_id
    , MODIFY rental_item_type int unsigned AFTER rental_item_price;
解說下:
把列 rental_item_price修改在 item_id之後 mysql 神奇的函數
9. 這個絕對是高級部分了
拋棄MySQL 數據庫的列和約束 MySQL 數據庫允許你刪除表中的列或者約束。在拋棄列時是沒有恢復點的,因爲這是一條DDL 語句,被刪除的數據並不會被記錄在日誌中。而在另一方面,Oracle 數據庫則支持閃回(flashback)技術提供了恢復點。
10。哎呦又來一個高級部分:
Oracle CASCADE CONSTRAINTS 用於刪除有外鍵引用的表使用
drop table A cascade constraints;(其他表引用了A的主鍵作爲外鍵)
話說這個 purge 我第一次見,不得不百度下
當我們drop table A時,其實只是將table A 放到了回收站中,改了個系統的名字。如果想徹底刪除該表,需要 drop table A purge;
    drop table A; //將A送入回收站中
    purge table A;//將A從回收站中刪除
Mysql 就不能使用 CASCADE 來確保當前表有外鍵引用  使用  if exists 查找  sysforeignkey 表來判斷
if exists(select 1 from sys.sysforeignkey where role='FK_EMP_RELATIONS_DEPT') then
    alter table emp
       delete foreign key FK_EMP_RELATIONS_DEPT
end if
終於看到索引了。。

7.5小節詳細介紹了 oracle 和mysql 的索引差異
完了看完這一小章。就發現如何禁用索引,重建,創建聯合索引,修改使用已存在是索引。。完了。和我預期的不一樣。比如:什麼時候會用索引,那些查詢需要在注意地方,比如什麼查詢會走索引提高效率,什麼列需要重建索引
7.6 小節 介紹了 oracle 和mysql 的視圖的差異。也就是 oracle 能在drop的時候用 CASCADE CONSTRAINTS 而 mysql 只能用  IF EXISTS;

12章介紹了,導入(合併導入)導出數據 Oracle 和mysql 的使用。使用csv 文件
這一章代碼比較多,敲錯一個就坑爹(建議新手,或不熟悉命令的直接百度個可以用的,照書做個實驗,要對比這來就可以了) 希望 本書配有光盤。。

知識點:
mysql 和Oracle 都可以是用 外部csv文件導入數據 mysql 5.5可以用xml做數據源。看完12章發現 相對而言第七章還是很棒的。但對於介紹索引的地方就有點少了或許考慮到第七章前半部分佔用的篇幅太多了,還是寫書的人壓根對這個索引都不重視。希望深入索引的朋友,建議搜下資料。

 

酷讀後感:
這是一本介紹oracle 和mysql 一些語句差異的書
對有用過oracle 和mysql 的開發 深入oracle和mysql 知識梳理想到有幫助的,
新手買這本書的話 即學了oracle 有了解了mysql 當然最好是有是有用過其中之一的最好了。
這樣加深知識點的理解. 初級開發用來自己充電,高級開發,那天說不定你當面試官了,可以用來坑面試的(壞笑...)吐舌頭
結尾在來回顧開始場景:
面試官:你都用過那些數據庫?
應聘:用過oracle,mysql,sqlserver
面試官:能不能介紹其中一些差異,和相關函數。。
應聘:*&*#^$&^&^*&(^&^%^$%#

(你就把看完本書的內容 給面試官整上幾個經典的對比。。。跟你講絕對是亮點)

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章