MySQL數據庫基礎教程

數據庫從最初的數據文件的簡單集合發展到今天的大型數據庫管理系統已經成為我們日常生活中不可缺少的組成部分。如果不借助數據庫的幫助,許多簡單的工作將變得冗長乏味,甚至難以實現。尤其是象銀行、院校和圖書館這樣的大型組織更加依靠數據庫系統實現其正常的運作。再看互聯網上,從搜索引擎到在線商場,從網上聊天到郵件列表,都離不開數據庫。

  目前,市面上的數據庫產品多種多樣,從大型企業的解決方案到中小企業或個人用戶的小型應用系統,可以滿足用戶的多樣化需求。這裡,我們所要向大傢介紹的MySQL數據庫是眾多的關系型數據庫產品中的一個,相比較其它系統而言,MySQL數據庫可以稱得上是目前運行速度最快的SQL語言數據庫。除瞭具有許多其它數據庫所不具備的功能和選擇之外,MySQL數據庫是一種完全免費的產品,用戶可以直接從網上下載數據庫,用於個人或商業用途,而不必支付任何費用(推薦下載站點mysql.com/”>http://www.mysql.com)。

  總體來說,MySQL數據庫具有以下主要特點:

1. 同時訪問數據庫的用戶數量不受限制;

2. 可以保存超過50,000,000條記錄;

3. 是目前市場上現有產品中運行速度最快的數據庫系統;

4. 用戶權限設置簡單、有效。

  如今,包括Siemens和Silicon Graphics這樣的國際知名公司也開始把MySQL作為其數據庫管理系統,這就更加證明瞭MySQL數據庫的優越性能和廣闊的市場發展前景。

  本文將重點向讀者介紹MySQL數據庫的一些基本操作,包括如何與數據庫建立連接,如果設置數據庫,以及如何執行基本的命令等。希望能夠對讀者學習和掌握MySQL數據庫有所助益。

入門

  一般來說,我們訪問MySQL數據庫時,首先需要使用telnet遠程登錄安裝數據庫系統的服務器,然後再進入MySQL數據庫。MySQL數據庫的連接命令如下:

mysql -h hostname -u username -p[password]

或者:

mysql -h hostname -u username –password=password

  其中,hostname為裝有MySQL數據庫的服務器名稱,username和password分別是用戶的登錄名稱和口令。

  如果MySQL數據庫安裝和配置正確的話,用戶在輸入上述命令之後會得到如下系統反饋信息:

Welcome to the MySQL monitor. Commands end with ; or g.

Your MySQL connection id is 49 to server version: 3.2 3-beta-log

Type help for help.

mysql$#@62;

  這樣,用戶就成功進入瞭MySQL數據庫系統,可以在mysql$#@62;命令提示符之後輸入各種命令。下面,我們列出一些MySQL數據庫的主要管理命令供讀者參考,用戶也可以通過在命令符之後輸入help,h或?得到以下命令的簡單說明。

mysql$#@62; help

help (h) 顯示命令幫助

? (h) 作用同上

clear (c) 清除屏幕內容

connect () 重新連接服務器,可選參數為 db(數據庫)和 host(服務器)

exit () 退出mysql數據庫,作用與quit命令相同

go (g) 將命令傳送至mysql數據庫

print (p) 打印當前命令

quit (q) 退出mysql數據庫

status (s) 顯示服務器當前信息

use (u) 打開數據庫,以數據庫名稱作為命令參數

  上述命令主要用於MySQL數據庫的系統管理,如果用戶需要對某個具體的數據庫進行操作,可以使用use命令進入該數據庫,格式如下:

mysql$#@62; use dbname;

  這裡需要提醒讀者註意的一點就是MySQL數據庫要求使用者在所有命令的結尾處使用“;”作為命令結束符。

數據類型和數據表

  從本質上說,數據庫就是一種不斷增長的復雜的數據組織結構。在MySQL數據庫中,用於保存數據記錄的結構被稱為數據表。而每一條數據記錄則是由更小的數據對象,即數據類型組成。因此,總體來說,一個或多個數據類型組成一條數據記錄,一條或多條數據記錄組成一個數據表,一個或多個數據表組成一個數據庫。我們可以把上述結構理解為如下形式:

Database $#@60; Table $#@60; Record $#@60; Datatype

  數據類型分為不同的格式和大小,可以方便數據庫的設計人員創建最理想的數據結構。能否正確的選擇恰當的數據類型對最終數據庫的性能具有重要的影響,因此,我們有必要首先對數據類型的有關概念進行較為詳細的介紹。

MySQL 數據類型

  MySQL 數據庫提供瞭多種數據類型,其中較為常用的幾種如下:

CHAR (M)

  CHAR數據類型用於表示固定長度的字符串,可以包含最多達255個字符。其中M代表字符串的長度。

舉例如下:

car_model CHAR(10);

VARCHAR (M)

  VARCHAR是一種比CHAR更加靈活的數據類型,同樣用於表示字符數據,但是VARCHAR可以保存可變長度的字符串。其中M代表該數據類型所允許保存的字符串的最大長度,隻要長度小於該最大值的字符串都可以被保存在該數據類型中。因此,對於那些難以估計確切長度的數據對象來說,使用VARCHAR數據類型更加明智。VARCHAR數據類型所支持的最大長度也是255個字符。

  這裡需要提醒讀者註意的一點是,雖然VARCHAR使用起來較為靈活,但是從整個系統的性能角度來說,CHAR數據類型的處理速度更快,有時甚至可以超出VARCHAR處理速度的50%。因此,用戶在設計數據庫時應當綜合考慮各方面的因素,以求達到最佳的平衡。

舉例如下:

car_model VARCHAR(10);

INT (M) [Unsigned]

  INT數據類型用於保存從- 2147483647 到2147483648范圍之內的任意整數數據。如果用戶使用Unsigned選項,則有效數據范圍調整為0-4294967295。舉例如下:

light_years INT;

  按照上述數據類型的設置,-24567為有效數據,而3000000000則因為超出瞭有效數據范圍成為無效數據。

再例如:

light_years INT unsigned;

這時,3000000000成為有效數據,而-24567則成為無效數據。

FLOAT [(M,D)]

  FLOAT數據類型用於表示數值較小的浮點數據,可以提供更加準確的數據精度。其中,M代表浮點數據的長度(即小數點左右數據長度的總和),D表示浮點數據位於小數點右邊的數值位數。

舉例如下:

rainfall FLOAT (4,2);

  按照上述數據類型的設置,42.35為有效數據,而324.45和3.542則因為超過數據長度限制或者小數點右邊位數大於規定值2成為無效數據。

DATE

  DATE數據類型用於保存日期數據,默認格式為YYYY-MM-DD。MySQL提供瞭許多功能強大的日期格式化和操作命令,本文無法在此一一進行介紹,感興趣的讀者可以參看MySQL的技術文檔。

DATE數據類型舉例如下:

the_date DATE;

TEXT / BLOB

  TEXT和BLOB數據類型可以用來保存255 到65535個字符,如果用戶需要把大段文本保存到數據庫內的話,可以選用TEXT或BLOB數據類型。TEXT和BLOB這兩種數據類型基本相同,唯一的區別在於TEXT不區分大小寫,而BLOB對字符的大小寫敏感。

SET

  SET數據類型是多個數據值的組合,任何部分或全部數據值都是該數據類型的有效數據。SET數據類型最大可以包含64個指定數據值。

舉例如下:

transport SET (“truck”, “wagon”) NOT NULL;

  根據上述數據類型的設置,truck、wagon、以及truck,wagon都可以成為transport的有效值。

本新聞共2頁,當前在第1頁  1  asp”>2  

ENUM

  ENUM數據類型和SET基本相同,唯一的區別在於ENUM隻允許選擇一個有效數據值。例如:

transport ENUM (“truck”, “wagon”) NOT NULL;

  根據上述設置,truck或wagon將成為transport的有效數據值。

  以上,我們隻是對用戶使用MySQL數據庫的過程中經常用到的數據類型進行瞭簡單介紹,有興趣的讀者,可以參看MySQL技術文檔的詳細說明。

數據記錄

  一組經過聲明的數據類型就可以組成一條記錄。記錄小到可以隻包含一個數據變量,大到可以滿足用戶的各種復雜需求。多條記錄組合在一起就構成瞭數據表的基本結構。

數據表

  在我們執行各種數據庫命令之前,首先需要創建用來保存信息的數據表。我們可以通過以下方式在MySQL數據庫中創建新的數據表:

mysql$#@62; CREATE TABLE test (

$#@62; name VARCHAR (15),

$#@62; email VARCHAR (25),

$#@62; phone_number INT,

$#@62; ID INT NOT NULL AUTO_INCREMENT,

$#@62; PRIMARY KEY (ID));

系統反饋信息為:

Query OK, 0 rows affected (0.10 sec)

mysql$#@62;

  這樣,我們就在

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *