Mysql 登陸&退出、創建&刪除&選擇數據庫、基本數據類型、創建&刪除表格

登陸數據庫使用登陸命令:

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;

參考鏈接:
http://www.tutorialspoint.com/mysql/mysql-data-types.htm
https://dev.mysql.com/doc/refman/5.0/en/char.html
https://dev.mysql.com/doc/refman/5.0/en/blob.html
https://dev.mysql.com/doc/refman/5.0/en/enum.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章