MySQL入門1——數據類型和簡單數據表操作

MySQL是一種關係數據庫管理系統,關係數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。
MySQL所使用的 SQL 語言是用於訪問數據庫的最常用標準化語言。MySQL 軟件採用了雙授權政策,分爲社區版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL 作爲網站數據庫。

本文主要介紹一些MySQL的基礎知識。

一、對象
MySQL中有表,視圖,索引,約束等多種對象,在這裏就不詳細寫了,當用到的時候在進行具體的介紹。
二、數據類型
1.整數型
BIGINT。大整數,數值範圍爲-263 (-9 223 372 036 854 775 808)~263-1(9 223 372 036 854 775 807),其精度爲19,小數位數爲0,長度爲8字節。
INTEGER(簡寫爲INT)。整數,數值範圍爲-231(-2 147 483 648)~231-1(2 147 483 647),其精度爲10,小數位數爲0,長度爲4字節。

MEDIUMINT。中等長度整數,數值範圍爲-223(-8 388 608)~223-1(8 388 607),其精度爲7,小數位數爲0,長度爲3字節。

SMALLINT。短整數,數值範圍爲-215(-32 768)~215-1(32 767),其精度爲5,小數位數爲0,長度爲2字節。

TINYINT。微短整數,數值範圍爲-27(-128)~27-1(127),其精度爲3,小數位數爲0,長度爲1字節。
2.精確數值型
精確數值型由整數部分和小數部分構成,其所有的數字都是有效位,能夠以完整的精度存儲十進制數。

精確數值型包括decimal、numeric兩類。從功能上說兩者完全等價,兩者的唯一區別在於decimal不能用於帶有identity關鍵字的列。 聲明精確數值型數據的格式是numeric | decimal(p[,s]),其中p爲精度,s爲小數位數,s的默認值爲0。例如,指定某列爲精確數值型,精度爲6,小數位數爲3, 即decimal(6,3),那麼若向某記錄的該列賦值56.342 689時,該列實際存儲的是56.3 427。

3.浮點型

這種類型不能提供精確表示數據的精度。使用這種類型來存儲某些數值時,有可能會損失一些精度, 所以它可用於處理取值範圍非常大且對精確度要求不是十分高的數值量,如一些統計量。

4.位型

位字段類型,表示如下:

BIT[(M)]
其中,m表示位值的位數,範圍爲1~64。如果省略m,默認爲1。

5.字符型

字符型數據用於存儲字符串,字符串中可包括字母、數字和其他特殊符號(如#、@、&等)。在輸入字符串時,需將串中的符號用單引號或雙引號括起來,如’abc’、”AbcCde”。 MySQL字符型包括固定長度(char)和可變長度(varchar)字符數據類型。

6.文本型

當需要存儲大量的字符數據,如較長的備註、日誌信息等,字符型數據的最長65 535個字符的限制可能使它們不能滿足應用需求,此時可使用文本型數據。文本型數據對應ASCII字符,其數據的存儲長度爲實際字符數個字節。 文本型數據可分爲4種:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。

7.BINARY和VARBINARY型

BINARY和VARBINARY類型數據類似於CHAR和VARCHAR,不同的是它們包含的是二進制字符串,而不是非二進制字符串。也就是說,它們包含的是字節字符串,而不是字符字符串。這說明它們沒有字符集,並且排序和比較基於列值字節的數值。

●BINARY [(N)]。固定長度的N字節二進制數據。N取值範圍爲1~255,默認爲1。BINARY(N)數據的存儲長度爲N+4字節。若輸入的數據長度小於N,則不足部分用0填充;若輸入的數據長度大於N,則多餘部分被截斷。 輸入二進制值時,在數據前面要加上0x,可以用的數字符號爲0~9、A~F(字母大小寫均可)。例如,0xFF、0x12A0分別表示十六進制的FF和12A0。因爲每字節的 數最大爲FF,故在“0x”格式的數據每兩位佔1字節。

●VARBINARY[(N)]。N字節變長二進制數據。N取值範圍爲1~65535,默認爲1。VARBINARY(N)數據的存儲長度爲實際輸入數據長度+4字節。

8.BLOB類型

在數據庫中,對於數碼照片、視頻和掃描的文檔等的存儲是必須的,MySQL可以通過BLOB數據類型來存儲這些數據。BLOB是一個二進制大對象,可以容納可變數量的數據。有4種BLOB類型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。這4種BLOB數據類型的最大長度對應於4種TEXT數據類型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。不同的是BLOB表示的是最大字節長度,而TEXT表示的是最大字符長度

9.日期時間類型

DATE。date數據類型由年份、月份和日期組成,代表一個實際存在的日期。DATE的使用格式爲字符形式’YYYY-MM-DD‘TIME。TIME數據類型代表一天中的一個時間,由小時數、分鐘數、秒數和微秒數組成。格式爲’HH:MM:SS.fraction’,其中fraction爲微秒部分,是一個6位的數字,可以省略。 TIME值必須是一個有意義的時間,例如’10:08:34’表示10點08分34秒,而’10:98:10’是不合法的,它將變成’00:00:00’。DATETIME,TIMESTAMP。DATETIME和TIMESTAMP數據類型是日期和時間的組合,日期和時間之間用空格隔開,如’2008-10-20 10:53:20’。
YEAR。YEAR用來記錄年份值。MySQL以YYYY格式檢索和顯示YEAR值,範圍是1901~2155。

10.ENUM和SET類型

ENUM和SET是比較特殊的字符串數據列類型,它們的取值範圍是一個預先定義好的列表。ENUM或SET數據列的取值只能從這個列表中進行選擇。
ENUM和SET的主要區別是:ENUM只能取單值,它的數據列表是一個枚舉集合。ENUM的合法取值列表最多允許有65535個成員。

例如,ENUM(“N”, “Y”)表示該數據列的取值要麼是“Y”,要麼是“N”。SET可取多值。它的合法取值列表最多允許有64個成員。空字符串也是一個合法的SET值。

MySQL的數據類型雖然確實比較多,而且每一種都細化成了許許多多更小的類型,但在我們的實際操作中,接觸到的多了,便也就覺得不是那麼難記了。

三、基本操作

1、創建數據庫
語句:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name

例如:CREATE DATABASE Student,
即創建了一個名稱爲Stu 的數據庫。

2、創建表
語句: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
(列名1> <數據類型> [<列選項>],

<列名2> <數據類型> [<列選項>],

<表選項>)
例如:CREATE TABLE stu1
即創建了一個名爲stu1的表。

●TEMPORARY。該關鍵字表示用CREATE命令新建的表爲臨時表。

●列選項。列選項主要有以下幾種:

NULL或NOT NULL:表示一列是否允許爲空,NULL表示可以爲空,NOT NULL表示不可以爲空,如果不指定,則默認爲NULL。

DEFAULT default_value:爲列指定默認值,默認值default_value必須爲一個常量。

AUTO_INCREMENT:設置自增屬性,只有整型列才能設置此屬性。當插入NULL值或0到一個AUTO_INCREMENT列中時,列被設置爲value+1,

value是此前表中該列的最大值。AUTO_INCREMENT順序從1開始。每個表只能有一個AUTO_INCREMENT列,並且它必須被索引。

UNIQUE KEY | PRIMARY KEY:UNIQUE KEY和PRIMARY KEY都表示字段中的值是唯一的。PRIMARY KEY表示設置爲主鍵,一個表只能定義一個主鍵,

主鍵必須爲NOT NULL。

COMMENT ‘string’:對於列的描述,string是描述的內容。

3、修改表
語句:ALTER TABLE table_name

例如:ALTER TABLE stu
即修改表stu。

4、刪除表
語句:Drop [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name]

例如:Drop TABLE stu

發佈了53 篇原創文章 · 獲贊 11 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章