MySQL入門

jopen 9年前發布 | 9K 次閱讀 MySQL 數據庫服務器
 

1.1 MySQL的用途

本節描述的是MySQL數據庫系統的用途,具體描述了“MySQL可以干什么”,以及“它如何才能給你提供幫助”。如果你已經明白數據庫的用途(也許你正在思考某個問題,到這里來只是想要找出“如何使用MySQL來解決它”的答案),那么可以直接翻閱到1.2節。

數據庫系統在本質上是一種高效的管理大量列表信息的辦法。這些信息的來源可能多種多樣。它可能是研究數據、業務記錄、客戶需求、體育統計、銷售報告、個人信息、人事檔案、bug報告或者學生成績。發揮數據庫系統強大作用的時機在于:想要組織和管理的信息非常龐大或復雜,以至于所有記錄采用手工處理會變得異常繁重。對于每天處理上百萬條事務的大公司來說,數據庫是必不可少的。不過,即使只有一個人的小公司,也可能會維護很多的信息,甚至多到需要用一個數據庫來管理它。假設有下面這些情況。

  • 你在牙科診所工作,在那里需要管理好患者的跟蹤記錄:何人何時到訪、做了些什么、下次預約信息、保險信息等。
  • 你收集了多年的研究數據,為了發表而需要對它們進行分析。你要從大量原始數據里提煉出摘要性的信息,并取出選中的觀察子集進行詳細的統計分析。
  • 你是一名教師,需要跟蹤學生的成績和考勤。每次考試結束,你都需要記錄每一個學生的分數。雖然將成績記錄到成績冊上很簡單,但之后的成績分析卻很繁瑣。你很想避免為了確定分數曲線,而對每次考試的分數進行排序;也真的很不愿意在期末時為了確定最終成績,而把每個學生的成績都加起來。統計每個學生的考勤也很無趣。
  • 你在某個組織機構(可能是一個專業團體、一個俱樂部、一個交響樂團或者一個健身俱樂部)擔任秘書一職,具體負責維護機構成員名錄的工作。你每年都要為所有成員生成一份打印名錄,名錄是用文字處理軟件管理的,每當成員資料有變化時你都得編輯更新。你非常厭倦這種維護名錄的方式,因為它限制了你的發揮,主要表現在:很難對名錄條目按不同方式進行排序;無法輕松地選到每一條目的指定部分,如列出人名和電話號碼;更不能輕松地找出一組的成員,如需要盡快更新成員資格的成員。如果有辦法,就可以省卻每月通過翻閱這些條目來找出那些需要更新成員資格的成員的工作。你聽說過“無紙化辦公”,知道它是電子化記錄發展的結果,但你還未見過它所帶來的任何好處。雖然成員資格記錄是電子化的,但具有諷刺意味的是,它們記錄的形式除了能將名錄打印成紙質的以外,很難用作他途!

上面這些場景所涉及的信息量有大有小。但它們都有一個共同的特點,即這些工作都可以通過手工來完成,但使用數據庫系統來管理會更高效。

在使用像MySQL這樣的數據庫系統時,你希望從中獲得哪些具體好處呢?這取決于你的特殊需要和需求,并且,如同上面示例所示,具體的好處都各不相同。不過,在一般情況下,適合于用數據庫管理系統來處理任務的人群是那些不使用數據庫管理系統就要使用文件柜的人。事實上,數據庫系統就像一個內置了復雜文件系統的巨大文件柜。與手工管理記錄的方式相比,以電子化方式來管理記錄存在有許多優勢。下面來看看前面描述過的那個牙科診所的場景。在用于管理患者記錄的文檔系統能力方面,MySQL可以為你帶來下面這些幫助。

(1)縮短記錄歸檔時間。你不用在文件柜里挨個拉抽屜找存放新記錄的地方。你只需將它提交給MySQL,MySQL會為你找到正確的存放這條記錄地方。

(2)縮短記錄檢索時間。當進行記錄查找時,不必為了想要找到的記錄而親自動手去逐個搜索。為了給那些最近一段時間沒來做檢查的患者發個提醒信息,你可以讓MySQL來幫你找出這些記錄。當然,這與讓你告訴另一個人“請幫忙確認一下最近6個月哪些患者沒來參加檢查”的情況有所不同。事實上,你 “念出的”是一段奇怪的“咒語”:

SELECT last_name, first_name, last_visit FROM patient WHERE last_visit < DATE_SUB(CURDATE(), INTERVAL 6 MONTH);

如果你以前從沒見過類似的內容,那么它初看起來可能會相當嚇人。不過,它的效果卻是相當吸引人:你不用再花費一小時來翻看你的記錄,只需一兩秒即可得到想要的結果。不管怎樣,無需多久你就會習慣這種奇形怪狀的表達。等閱讀完本章,你便會明白它真正的含義。

(3)靈活的檢索排序。不用嚴格按照記錄存儲的順序(如按患者的名字排序)來檢索它們。MySQL可以按任何你想要的順序來提取記錄,如按名字、保險公司名字、上次就診時間等。

(4)靈活的輸出格式。在找到感興趣的記錄之后,你無需手動復制這些信息,MySQL會為你生成一個列表。有時,你可能只是想打印這些信息;有時,你可能會想在另一個程序里使用它們。例如,在生成了最近逾期未能復診的患者名單后,你便可以把這些資料輸送到某個文字處理軟件,讓它打印出你想要發送給那些患者的通知單。或許,你只是對如同“選中記錄統計”這樣的匯總信息比較感興趣。你不用親自來統計記錄,MySQL會替你生成匯總信息。

(5)多用戶同時訪問記錄。對于紙質記錄,如果有兩個人同時想要查看某個記錄,那么其中一個人就必須等待另一個人將這個記錄歸還之后才能查看。而MySQL則可以允許這兩個人同時訪問這個記錄。

(6)記錄的遠程訪問與電子傳輸。想用紙質記錄,就得親自跑到存放它們的地方,或者讓人將它們復印之后再發送給你。電子記錄則為遠程訪問記錄或者電子傳輸記錄提供了可能。如果你的牙科集團設有許多分支機構,那么這些機構里的人員便可以在當地訪問到你的資料。你完全不用再通過快遞來傳送這些副本。如果有人需要記錄,但卻又沒有與你一樣的數據庫軟件,那么你可以選擇那些所需的記錄,將其中的內容通過網絡發送給他。

如果你曾經用過數據庫管理系統,那么肯定對剛才描述的種種好處深有體會,而且可能也在思索如何才能超越常規“代替文件柜”應用程序的限制。有許多組織機構將數據庫與網站結合在一起使用,這就是一種很好的方式。假設貴公司有一個商品庫存數據庫,每當顧客打電話過來詢問倉庫里是否有貨、其價格是多少時,服務臺的員工便會用到它。這是一種比較傳統的數據庫使用方式。不過,如果貴公司搭建一個供顧客訪問的網站,那么就可以提供一項新的服務:創建一個搜索頁面,讓顧客可以查看條目,從而確定價格、可用性以及商品的庫存情況。如果支持在線訂購,那么顧客甚至不用離開家門便能購買到你的產品。這讓顧客獲得了他們想要的信息,而數據庫卻是根據提問自動搜索商品庫存信息來提供這些內容的。顧客立即獲得了所關心的信息,不用一邊聽著惱人的錄音,一邊傻等著;也不用受限于服務臺的上下班時間。并且,每當有一位顧客使用貴公司網站,就意味著會少一個電話,而這是需要由一個在服務臺拿工資的人來處理的事情。如此看來,該網站或許可以為自己買單。

不過,你還可以更進一步地發揮數據庫的作用。基于Web的庫存搜索請求,不僅可以把信息提供給顧客,也能提供給貴公司。這些查詢可以讓你了解到顧客正在查找哪些商品,而查詢結果則會讓你知道是否能夠滿足他們的需求。在某種程度上,如果你沒有顧客想要的東西,那么你可能會錯失這筆生意。因此,記錄下庫存搜索信息非常有意義,通過它可以了解到:顧客正在找尋什么商品,而你是否還有存貨。接著,就可以根據這些信息來調整庫存,并向顧客提供更好的服務。

說了半天,那么MySQL是如何工作的呢?找到答案的最好方式就是自己動手體驗一下。為此,我們需要有一個可以操作的數據庫。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!