MySQL數據庫基礎教程

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

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

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

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

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

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

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

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

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


入門

  一般來說,我們訪問MySQL數據庫時,首先需要使用te.net遠程登錄安裝數據庫系統的服務器,然后再進入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.21.23-beta-log
Type 'help' for help.
mysql>

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

mysql> help

help (\h) 顯示命令幫助
? (\h) 作用同上
clear (\c) 清除屏幕內容
connect (\r) 重新連接服務器,可選參數為 db(數據庫)和 host(服務器)
exit (\) 退出mysql數據庫,作用與quit命令相同
go (\g) 將命令傳送至mysql數據庫
print (\p) 打印當前命令
quit (\q) 退出mysql數據庫
status (\s) 顯示服務器當前信息
use (\u) 打開數據庫,以數據庫名稱作為命令參數

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

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


數據類型和數據表

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

Database < Table < Record < 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的有效值。

ENUM

  ENUM數據類型和SET基本相同,唯一的區別在于ENUM只允許選擇一個有效數據值。例如:
transport ENUM ("truck", "wagon") NOT NULL;

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

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

數據記錄

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

數據表

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

mysql> CREATE TABLE test (
> name VARCHAR (15),
> email VARCHAR (25),
> phone_number INT,
> ID INT NOT NULL AUTO_INCREMENT,
> PRIMARY KEY (ID));

系統反饋信息為:

Query OK, 0 rows affected (0.10 sec)

mysql>

  這樣,我們就在數據庫中創建了一個新的數據表。注意,同一個數據庫中不能存在兩個名稱相同的數據表。

  這里,我們使用CREATE TABLE命令創建的test數據表中包含name,email,phone_number和ID四個字段。MySQL數據庫允許字段名中包含字符或數字,最大長度可以達到64個字符。

  下面,我們來看一看創建數據表時所用到的幾個主要的參數選項。

Primary Key
  具有Primary Key限制條件的字段用于區分同一個數據表中的不同記錄。因為同一個數據表中不會存在兩個具有相同值的Primary Key字段,所以對于那些需要嚴格區分不同記錄的數據表來說,Primary Key具有相當重要的作用。

Auto_Increment
  具有Auto_Increment限制條件的字段值從1開始,每增加一條新記錄,值就會相應地增加1。一般來說,我們可以把Auto_Increment字段作為數據表中每一條記錄的標識字段。

NOT NULL
  NOT NULL限制條件規定用戶不得在該字段中插入空值。

其它數據表命令

  除了創建新的數據表之外,MySQL數據庫還提供了其它許多非常實用的以數據表作為操作對象的命令。

顯示數據表命令
mysql> show tables;

  該命令將會列出當前數據庫下的所有數據表。

顯示字段命令
mysql> show columns from tablename;

  該命令將會返回指定數據表的所有字段和字段相關信息。


數據操作

  對MySQL數據庫中數據的操作可以劃分為四種不同的類型,分別是添加、刪除、修改和查詢,我們將會在本節中對此進行介紹。但是,首先我們需要強調的一點就是MySQL數據庫所采用的SQL語言同其它絕大多數計算機編程語言一樣,對命令的語法格式有嚴格的規定。任何語法格式上的錯誤,例如不正確的使用括號、逗號或分號等都可能導致命令執行過程中的錯誤。因此,建議用戶在學習時一定要多留心語法格式的使用。

添加記錄

  用戶可以使用INSERT命令向數據庫中添加新的記錄。
例如:

mysql> INSERT INTO test VALUES
mysql> ('John', 'carrots@mail.com',
mysql> 5554321, NULL);

  上述命令正確執行后會返回以下信息:

Query OK, 1 row affected (0.02 sec)
mysql>

  對上述命令有幾點我們需要說明。首先,所有的字符類型數據都必須使用單引號括起來。其次,NULL關鍵字與AUTO_INCREMENT限制條件相結合可以為字段自動賦值。最后,也是最重要的一點就是新記錄的字段值必須與數據表中的原字段相對應,如果原數據表中有4個字段,而用戶所添加的記錄包含3個或5個字段的話都會導致錯誤出現。

  MySQL數據庫的一個非常顯著的優勢就是可以對整數、字符串和日期數據進行自動轉換。因此,用戶在添加新記錄時就不必擔心因為數據類型不相符而出現錯誤。

查詢數據

  如果我們無法從數據庫中查找和讀取數據的話,數據庫就喪失了其存在和使用的價值。

  在MySql數據庫中,用戶可以使用SELECT命令進行數據的查詢。

例如:

mysql> SELECT * FROM test

mysql> WHERE (name = "John");

上述命令會返回如下結果:

name
email
phone
ID

John
carrots@mail.com
5554321
1

刪除數據

  用戶除了可以向數據表中添加新的記錄之外,還可以刪除數據表中的已有記錄。刪除記錄可以使用DELETE命令。

例如:

mysql> DELETE FROM test
mysql> WHERE (name = "");

  該命令將會刪除test數據表中name字段的值為John的記錄。同樣,

mysql> DELETE FROM test
mysql> WHERE (phone_number = 5554321);

  將會從數據表中刪除phone_number字段值為5554321的記錄。

修改數據

  MySQL數據庫還支持用戶對已經輸入到數據表中的數據進行修改。修改記錄可以使用UPDATE命令。

例如:

mysql> UPDATE test SET name = 'Mary'

mysql> WHERE name = "John";

上述命令的執行結果如下:

name
email
phone
ID

Mary
carrots@mail.com
5554321
1

  到此為止,我們對MySQL數據庫數據操作的核心概念,即數據的添加、刪除、修改和查詢進行了簡單的介紹。事實上,MySQL數據庫所支持的SQL語言具有非常豐富和強大的數據操作功能,感興趣的讀者可以參看網頁陶吧欄目內的相關文章。我們在這里就不重復介紹了。



原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97