一、使用方法
1、使用SHOW語句找出在伺服器上當前存在什麼資料庫:
mysql> SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test | +----------+ 3 rows in set (0.00 sec) |
2、建立一個資料庫abccs mysql> CREATE DATABASE abccs; 注意不同作業系統對大小寫敏感。 3、選擇你所建立的資料庫 mysql> USE abccs Database changed 此時你已經進入你剛才所建立的資料庫abccs. 4、 建立一個資料庫表 首先看現在你的資料庫中存在什麼表: mysql> SHOW TABLES; Empty set (0.00 sec) 說明剛才建立的資料庫中還沒有資料庫表。下面來建立一個資料庫表mytable: 我們要建立一個你公司員工的生日表,表的內容包含員工姓名、性別、出生日期、出生城市。
mysql> CREATE TABLE mytable (name VARCHAR(20), sex CHAR(1), -> birth DATE, birthaddr VARCHAR(20)); Query OK, 0 rows affected (0.00 sec) |
由於name、birthadd的列值是變化的,因此選擇VARCHAR,其長度不一定是20。可以選擇從1到255的任何長度,如果以後需要改變它的字長,可以使用ALTER TABLE語句。);性別只需一個字元就可以表示:"m"或"f",因此選用CHAR(1);birth列則使用DATE資料類型。 建立了一個表後,我們可以看看剛才做的結果,用SHOW TABLES顯示資料庫中有哪些表:
mysql> SHOW TABLES; +---------------------+ | Tables in menagerie | +---------------------+ | mytables | +---------------------+ |
建立一個學生表: CREATE TABLE Student ( id int NOT NULL auto_increment, username varchar(200) NOT NULL, password varchar(20) NOT NULL, age int, PRIMARY KEY (id) ) ENGINE=MyISAM DEFAULT CHARSET=GBK 這個是MySQL資料庫的建表語句。這個表有一個自增的ID列作為主鍵,還有用 戶名,密碼和年齡三個列,最後一句ENGINE=MyISAM DEFAULT CHARSET=GBK指定了 表的預設字元集是GBK中文字元,這一句是MySQL特有的文法。 5、顯示表的結構:
mysql> DESCRIBE mytable; +-------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+-------+ | name | varchar(20) | YES | | NULL | | | sex | char(1) | YES | | NULL | | | birth | date | YES | | NULL | | | deathaddr | varchar(20) | YES | | NULL | | +-------------+-------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) |
6、 往表中加入記錄 我們先用SELECT命令來查看錶中的資料: mysql> select * from mytable; Empty set (0.00 sec) 這說明剛才建立的表還沒有記錄。 加入一條新記錄:
mysql> insert into mytable -> values (′abccs′,′f′,′1977-07-07′,′china′); Query OK, 1 row affected (0.05 sec) |
再用上面的SELECT命令看看發生了什麼變化。我們可以按此方法一條一條地將所有員工的記錄加入到表中。 7、用文本方式將資料裝入一個資料庫表 如果一條一條地輸入,很麻煩。我們可以用文字檔的方式將所有記錄加入你的資料庫表中。建立一個文字檔“mysql.txt”,每行包含一個記錄,用定位器(tab)把值分開,並且以在CREATE TABLE語句中列出的列次序給出,例如:
abccs f 1977-07-07 china mary f 1978-12-12 usa tom m 1970-09-02 usa |
使用下面命令將文字檔“mytable.txt”裝載到mytable表中:mysql> LOAD DATA LOCAL INFILE "d:/mytable.txt" INTO TABLE 資料庫名.表名 再使用如下命令看看是否已將資料輸入到資料庫表中:mysql> select * from mytable; |
二、資料類型
CHAR (M)
CHAR資料類型用於表示固定長度的字串,可以包含最多達255個字元。其中M代表字串的長度。
VARCHAR (M)
VARCHAR是一種比CHAR更加靈活的資料類型,同樣用於表示字元資料,但是VARCHAR可以儲存可變長度的字串。其中M代表該資料類型所允許儲存的字串的最大長度,只要長度小於該最大值的字串都可以被儲存在該資料類型中。因此,對於那些難以估計確切長度的資料對象來說,使用VARCHAR資料類型更加明智。VARCHAR資料類型所支援的最大長度也是255個字元。
這裡需要注意的一點是,雖然VARCHAR使用起來較為靈活,但是從整個系統的效能角度來說,CHAR資料類型的處理速度更快,有時甚至可以超出VARCHAR處理速度的50%。因此,使用者在設計資料庫時應當綜合考慮各方面的因素,以求達到最佳的平衡。
INT (M) [Unsigned]
INT資料類型用於儲存從- 2147483647 到2147483648範圍之內的任意整數資料。如果使用者使用Unsigned選項,則有效資料範圍調整為0-4294967295
FLOAT [(M,D)]
FLOAT資料類型用於表示數值較小的浮點數據,可以提供更加準確的資料精度。其中,M代表浮點數據的長度(即小數點左右資料長度的總和),D表示浮點數據位於小數點右邊的數值位元。
DATE
DATE資料類型用於儲存日期資料,預設格式為YYYY-MM-DD。
TEXT / BLOB
TEXT和BLOB資料類型可以用來儲存255 到65535個字元,如果使用者需要把大段文本儲存到資料庫內的話,可以選用TEXT或BLOB資料類型。TEXT和BLOB這兩種資料類型基本相同,唯一的區別在於TEXT不區分大小寫,而BLOB對字元的大小寫敏感。
SET
SET資料類型是多個資料值的組合,任何部分或全部資料值都是該資料類型的有效資料。SET資料類型最大可以包含64個指定資料值。
ENUM
ENUM資料類型和SET基本相同,唯一的區別在於ENUM只允許選擇一個有效資料值。
四、建立表
可以先建立一個專門的測試資料庫
mysql> create database tmp; #建立一個資料庫 tmp
mysql> show databases; #顯示現在所有的資料庫
mysql> use tmp; #使用該資料庫
mysql> show tables; #顯示該資料庫裡的表
mysql> create table test ( name varchar(20), id int not null auto_increment,primary key(id));
mysql> show tables;
mysql> drop database tmp; #消除該資料庫,同時表test也被銷毀
Primary Key
具有Primary Key限制條件的欄位用於區分同一個資料表中的不同記錄。因為同一個資料表中不會存在兩個具有相同值的Primary Key欄位,所以對於那些需要嚴格區分不同記錄的資料表來說,Primary Key具有相當重要的作用。
Auto_Increment
具有Auto_Increment限制條件的欄位值從1開始,每增加一條新記錄,值就會相應地增加1。一般來說,我們可以把Auto_Increment欄位作為資料表中每一條記錄的識別欄位。
NOT NULL
NOT NULL限制條件規定使用者不得在該欄位中插入空值。