MySQL 其實並不是完全免費,在它還是昇陽產品的時候,就有雙授權模式,如果使用 MySQL 的前端軟體是自由軟體,那 MySQL 也是自由軟體。但如果使用 MySQL 的前端軟體是封閉商業軟體,則 MySQL 要付費使用。只是很少人會去鳥那個雙授權,昇陽也沒強勢宣張它的版權。所以大家都認為 MySQL 就是免費。
後來 MySQL 變成甲骨文的之後,也是有這樣的雙授權模式。而甲骨文的態度沒有昇陽開放。所以自由社群就有人認為這樣下去不是辦法,原 MySQL 創始者,自己跳出來另創了MariaDB,以他女兒名字Maria瑪利亞為名,並宣告永久開放、永久免費。
Maria DB 在5版的時候,和 MySQL 沒有任何差別,骨子是完全一樣東西,語法也一樣,只是名稱不同。6版之後才漸漸有了分支差別,功能模組有了差異。
目前各大 Linux 發行版,官方套件庫收納的資料庫,都已經改為 Maria DB,以前是 MySQL。
有興趣學資料庫的話,可以去看下 WIKI 維基百科,了解一下各套 DB資料庫 的發展歷史、緣由。多少可作為選擇時的參考。
甲骨文自己也有一套同名的商業資料庫 Oracle DB,算是資料庫始祖一輩的,評價亦不錯,它的準確性非常高,受到銀行一類的青睞。但它就是徹頭徹尾商業軟體,要錢的,且很貴。其實這套很少人在用,有在用的也是很大間的企業。一般中小企業根本看不到的。
MS SQL 並不是一套稱得上很專業的資料庫,它缺乏了一些專業資料庫的特性或功能,只適合小規模使用,大規模的撐不住。而且不能跨平台,只能在 windows 下使用,這就限制很多超級電腦、叢集伺服器無法去用它。另外它也是商業軟體,價格亦不親民。
昇陽 MySQL 崛起後,因為免費,很快就成為最受歡迎的資料庫,使用率遠遠超過了 Oracle。後來被甲骨文被收購,因為 OpenOffice 一連串的事件,MySQL 的開放性受到質疑,就發生了上述的跑出一個 Maria DB。
另還有一套免費的也很受歡迎,PostgreSQL,LOGO圖案是隻大象。阿里巴巴集團(馬雲的掏寶)就是用這套。
Google 最初是用 MySQL,後來改用 MariaDB。
可以看到世界頂尖數一數二網路大數據服務公司,用的都是自由軟體。原因無它,就是成本問題,這些全球頂尖的大數據公司,如果軟體要付授權費,成本太高競爭力就會輸人,就不會有今日的飛黃騰達。
當然前提是軟體也要有一定品質啦,否則若不穩定,再便宜有何用。至於穩不穩定?Google、阿里巴巴....這些頂尖企業,每日處理連線查詢是幾百億條的,難道還不夠說服力。
關聯式資料庫,其實用法都大同小異,概念通就全通了。語法什麼的不過是小差異,最主要是關聯式的觀念。還有就是每套資料庫有它特性和功能,比如:安全性方面、線上同步方面、數據準確性確保.....等等的特性模組。
****************************
至於前端軟體程式方面
PHP 是網頁伺服器軟體,這就是說它很適合開發 WEB化 的軟體。
電腦、手機,作業系統繁多。手機有安卓和蘋果的,電腦也有 winodws、MAC、unix-like...等等的。這麼多的作業系統如果每種都要開發軟體,豈不累死。
WEB化 一個最大好處就是:跨平台。
任何智慧3C裝置,必有瀏覽器。有瀏覽器就能上網,就能連去網頁伺服器。
亦即:你寫一份在網頁伺服器的 PHP 程式碼,並且運作它(網站服務)。那任何裝置只要有瀏覽器,無論電腦、手機、甚至智慧電視....啥的,都可以用了。
Java 也是跨平台的,write once,run everywhere 寫一次任何地方運行。表面是這樣,但其實需要 JRE 運行環境。並不是所有作業系統平台都有 JRE 可用。
跨平台來講,JAVA 沒有 PHP 優秀。
但 JAVA 可以寫本地端軟體,視窗軟體,會比 PHP 只能用瀏覽器運行,性能與界面直覺性會優上許多。
此外安卓的軟體,母語也是 JAVA 的。如果會 JAVA 要再去開發安卓軟體會很容易。
而其它不能跨平台的程式語言,就不與置評了,聰明的都不會去選....
不能跨平台=沒前途
那 PHP 和 JAVA 選哪種好?
看你未來的興趣與打算在哪邊。
PHP 是偏網站的。
同時也會學到很多關於架設網站伺服器的知識。
JAVA 是偏視窗軟體、手機軟體。
雖然它也有 JSP(類似PHP的東西)但沒 PHP 流行。
要說最大差異就在:離線 或 必須連網。
PHP 必須連網才能使用
JAVA 可以離線單獨使用,也可以連網
前端界面的設計,美術設計,視覺傳達,那就看個人功力了。
一般來說,寫程式的不會去做美術設計,團隊中另有人負責。因為熟編程的,通常美術細胞都不太好。術業有專攻。總不可能樣樣都神。樣樣通,就會樣樣鬆,沒一項專精。
網頁並不是說就無法達到視窗軟體的程度,HTML5 有畫布功能,還有CSS3佈局...等等的,其實現在也不少網頁線上遊戲,也是美侖美奐的。終究都是功力問題而已。
fedora wrote:
MySQL 現在也...(恕刪)
小小更正
1. Microsoft被逼著走向Linux,目前最新的SQL 2017已經porting上Linux,也可以裝在docker環境上
2. MySQL已經是Oracle的東西,可預期總有一天Oracle會要求收費(如同Java),如果沒有包袱建議先走別條路
3. 個人是Oracle派的,但老實說MS SQL目前是市場第二大(最大是Oracle),在台灣這種中小企業居多的地方還算堪用
4. MS SQL從2016版起有免費的Developer edition可以免費下載使用,樓主可以試試
看起來很多人對MSSQL怨念很深..
其實MSSQL被詬病的效能問題, 無法重度負載, 高可用度(這其實是MSCS的原罪)這些問題
在2008版本後就大幅改善,
且微軟也抓住了機會, 在Oracle, IBM漲價又追補授權時
提供更多的附加功能(option), 如SSIS (免費的ETL, 有做ETL的大概知道這東西多貴)
SSRS (免費的report)
SSAS (免費的OLAP)
完全免費的Cluster, Replicate..(相信管Oracle知道Dataguard多少錢, RAC又多少錢)
在新一點的版本2016開始又加強資安, 如動態遮罩, 直讀HDFS的Polybase..
這些在其他商用資料庫都是"選購項目", 要加錢的..
此消彼漲之下, 會推著很多中小企業轉資料庫..
當然, 還是有很多轉不掉的(如AP綁DB, SAP..)
===================================================================
我不是那麼喜歡微軟, 但相對於Oracle, 我投MSSQL一票
沒錢就選M$,TW就業市場相對大,會的人也多一些,但機會也多一些.
也可選小眾市場JAVA寫APP,TW需求也不少
免費的一堆人號稱都會但精通的沒幾個,看個人功力,PHP .NET,MYSQL,MIRADB,MSSQL應屬此類
WEB是目前主流,前端PHP .NET後台MYSQL,MIRADB,MSSQL都要會一點,你光學DB是不夠的,還要會架站,老闆會要求統包,希望CASE又快又好,CMS必學,因為都是拿免費模板來改,一般要求是1週5個工作天要架好一個購物網站,至於你怎麼搞,不會管你,客戶滿意能收到錢就好,這部份算紅海.
T-SQL是標準資料庫語法,基本上可以說是通用的,個別資料庫會再有一些特別的功能,這些看說明就知道怎麼用了.
T-SQL學會,就可以去學前端的程式語言了.
挑什麼程式語言,取決於你之後到底想找什麼方面的工作.
因為各領域所用的程式語言都有個別特殊需求的地方.
像是WinForm視窗程式/Web Form網頁/Smart Device行動裝置
之後的世界各廣,有更多要學的,挑一個領域去學,不要像無頭蒼蠅的學,浪費錢,也浪費時間,每個領域都有非常多的東西要學.
會寫只是入門而已,接下來要學會處理效能,安全,穩定,資源有限,架構等問題.
我是先報名學MS SQL,之後Oracle跟Informix是工作中學的,遇到什麼就自己去找答案,只能說,現在Google很方便,我都是自己K網路上的說明.
如果是走.Net微軟這開發工具,未來應該會跟這個網頁很熟.
Microsoft Docs
註:
上課聽到SQL Injection時,耳朵張大一點,很多人常犯這個基本錯誤.
像是好市多跟部份房仲網站也有這個問題.
內文搜尋

X