登陸數據庫使用登陸命令:
shell>mysql [-h host] -u user -p [-D database]
Enter password:
-h指定的是遠程主機,登陸本地數據庫可以不用,-D 用於指定登陸之後選擇的數據庫,如果沒有指定數據庫,則不進行數據庫選擇。進入數據庫之後,每一條命令之前會有 mysql> 的提示符。mysql中的命令都嚴格以分號(;)作為命令結束。如果在一條命令沒輸入完之前換行,會出現 -> 的提示符。
退出數據庫的命令:
mysql>exit
或:
mysql>quit
這兩條後面可以不加分號
在mysql中創建數據庫的命令:
mysql>create database database_name;
在mysql中刪除數據庫的命令:
mysql>drop database database_name;
要明確使用(選擇)某個數據庫的命令:
mysql>use database_name;
每次使用某個數據庫前必須明確選擇使用它,也既是使用use命令。
在創建數據庫表格之前需要先了解mysql的數據類型。mysql主要有三類數據類型:數值類型、時間&日期類型、字符串類型。這個部分節選翻譯自第一條鏈接。
數值類型:
int,正常整型數值,分為signed和unsigned,范圍分別是 -2147483648 到 2147483647 和 0 到
4294967295 tinyint,超小整型數值,分為signed和unsigned,范圍分別是 -128 到 128 和 0 到 255 smallint,小型整型數值,分為signed和unsigned,范圍分別是 -32768 到 32768 和 0 到 65535 mediumint,中等整型數值,分為signed和unsigned,范圍分別是 -8388608 到 8388608 和 0 到
16777215 bignit,大號整型數值,分為signed和unsigned,范圍分別是 -9223372036854775808 到
9223372036854775808和 0 到 18446744073709551615 float(m, d),浮點型數值,不能為unsigned。可以設定顯示總長度m位數字和d位小數。默認情況下分別是10和2。 double(m,d),雙精度浮點型數值,不能為unsigned。可以設定顯示總長度m位數字和d位小數。默認情況下分別是16和4。 decimal(m,d),一種未包裝的小數,不能為unsigned。每一位小數都對應一個字節,需要明確定義總長度m位數字和d位小數。numeric和decimal是同義詞。
時間&日期類型:
date,yyyy-mm-dd格式,范圍從1000-01-01到9999-12-31 datetime,yyyy-mm-dd hh:mm:ss格式,范圍從1000-01-01 00:00:00到9999-12-31
23:59:59 timestamp,范圍從1970年1月1日0點0分0秒到2037年的某個時間,格式類似datetime,但是沒有連字符。例如1973年12月30日15點30分0秒對應19731230153000(yyyymmddhhmmss) time,hh:mm:ss格式存儲。 year(m),2位或4位格式。指定2位時,例如year(2),能夠存儲1970年到2069年(70-69)。指定4位時,能夠存儲1901年到2155年,默認4位長度。
字符串類型:
char(m),固定長度字符串,長度從1到255,左對齊右填充,默認長度為1 varchar(m),變長字符串,長度從1到255,定義式必須指定一個長度。實際上從官網解釋上看(第二條鏈接),從版本5.03及其以後,最大長度能到65535。長度小於等於255時,額外用一個字節存儲長度值,長度超過255時,額外用2個字節存儲長度值。
值
char(4)
存儲需求
varchar(4)
存儲要求
”
’ ‘
4字節
”
1字節
‘ab’
‘ab ‘
4字節
‘ab’
3字節
‘abcd’
‘abcd’
4字節
‘abcd’
5字節
‘abcdefg’
‘abcd’
4字節
‘abcd’
5字節
blob和text,最大存儲65535個字節。blob將數據當作二進制數組存儲,可以保存圖片、聲音等數據;text依然將數據當作字符存儲。無需為blob和text指定長度。具體參考第三條鏈接。 tinyblob和tinytext,最大存儲255個字節,其余特性和blob/text一致
mediumblob和mediumtext,最大存儲16777215個字節,其余特性和blob/text一致 longblob和longtext,最大存儲4294967295個字節,其余特性和blob/text一致 enum,枚舉類型,枚舉最多可以有65535個元素,枚舉型字段中除列舉字符串之外,可以為NULL,若插入非法字符串,將用空(”)字符串代替。關於枚舉類型,更多參見第四條鏈接
在數據庫中創建表格的命令:
mysql>create table table_name (cloumn_name colume_type, colunm_name colunm_type ...);
列項除了有數據類型,還可以添加一些別的屬性,例如 not null, auto_increment, default等。還可以指定主鍵,設置數據庫引擎,設置字符集等。例如:
mysql>create table hotel (
-> `id` int unsinged not null auto_increment,
-> `default test` int default 0,
-> `num` char(4) not null,
-> `price` varchar(5) not null,
-> `position` varchar(30) not null,
-> `describe` text,
-> `available` enum('y', 'n'),
-> primary key(`id`)
);
有幾點需要注意:
` 叫反引號,號是Esc下面的那個按鍵。在mysql語句中,如果創建表格時候表格的名字或屬性字段跟系統關鍵字重名,或者名字中間包括空白字符,可以利用反引號把名字括起來,mysql只保留反引號內的內容。同時要注意,用其他引號括起來都不對,因為mysql會認為引號是字段的起始字符,這不符合命名規則。 text類型不能有默認值。需要默認值的可以在字段後面用 default 注明。 利用 primary key(column_name, column) 來設置主鍵,多個列項之間用逗號隔開。
在數據庫中刪除表格的命令:
mysql>drop table table_name;
如果為了保證即使沒有表存在,也不至於語句出錯,可以使用下面的命令:
mysql>drop table if exists table_name;