程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL學習筆記_2_SQL數據模型和數據類型

MySQL學習筆記_2_SQL數據模型和數據類型

編輯:MySQL綜合教程

MySQL創建數據表(上)

一、創建數據表的SQL語句模型【弱類型】

CREATE TABLE [IF NOT EXISTS] 表名稱(

字段名1 列的類型 [屬性][索引],

字段名2 列的類型 [屬性][索引],

字段名n 列的類型 [屬性][索引],

)[表屬性][表字符集];

【表名稱,字段名需要自己來命名】

【SQL語句並不區分大小寫,但是一個文件名:在Windows下不區分大小寫,但是在 Linux/UNIX下是區分大小寫的】

【命名規則: 1、有意義(英文,英文組合或英文縮寫)

2、自己定的名稱最好小寫。

3、SQL語句最好大寫。】

1、 CREATE TABLE users(

id INT,

name CHAR(32)

);

2、 SHOW TABLES;

3、 DESC users;

4、 SELECT * FROM users;

二、數據值與列類型

都以空間大小來細分,能夠存下即可!

1、數值型

整型(整數):

非常小整數型 1字節 -128~127 0~255(無符號) TINYINIT

較小整數型 2字節 -32768~32767 SMALLINIT

中等大小整數型 3字節 0~16777215 MEDIUMIINT

標准整數型 4字節 -2147483648~2147483647 INT

大整數型 8字節 BIGINT

【可以添加屬性:UNSIGNED】

浮點型(小數):

FLOAT(M,N) 4字節 【長度M,保留小數點後N位】

DOUBLE(M,N) 8字節

DECIMAL(M,N) M+2字節 【定點數,以字符串形式存儲數據, 更精確的保存數據,但是效率會有所折扣。】

【浮點數會存在誤差,因此在對數字敏感的時候,需要用定點數來存儲!】

2、字符型

MySQL支持以單引號與雙引號表示字符串類型。

如 “MySQL” 與 'MySQL' 相同

char(M) 最大255 固定長度字符串

varchar(M) 最大255 可變長度字符串

char(4) varchar(4) // 永遠比字符多一個字節

'' 4 '' 1字節

'a' 4 'a' 2字節

'abcd' 4 'abcd' 5字節

'abcdefg' 4 'abcdefgh' 5字節

char 類型會截取尾部的空格;

示例: CREATE TABLE IF NOT EXISTS tab(v varchar(4),c char(4));

INSERT INTO tab(v,c) VALUES(“ab ”,”ab ”);

SELECT CONCAT(v,”#”),CONCAT(c,”#”) FROM tab;

最佳實踐:

固定長度,推薦使用char類型(可能會浪費一定空間)。

可變長度,推薦使用varchar類型(可能會付出一些性能損耗)

text 文本數據:文章,日志 長度:2^16 -1

MEDIUMTEXT

LONGTEXT

blob 二進制數據:照片,電影 長度:2^16 -1

MEDIUMBLOB

LONGBLOB

【雖然沒法通過SQL語句將照片,電影,壓縮包等二進制文件插入到數據庫中, 但是我們可以通過C++/Java等編程語言將二進制文件讀成二進制數據流,然 後保存到數據庫中】

ENUM 枚舉 1~2字節

ENUM(“one”,”two”,”three”,”four”)~65535

一次只能有一個值

SET 集合 1,2,3,4,8字節

SET(“one”,”two”,”three”,”four”)~64

一次可以有多個值,用“,”隔開。

3、日期型

DATE YYYY-MM-DD //如果位數充足,可以不用加‘-’

TIME hh:mm:ss //位數充足,可以忽略‘:’,位數不足,從後面截取

DATETIME YYYY-MM-DD hh:mm:ss

TIMESTAMP YYYYMMDDhhmmss //位數不足時,不可忽略前導0

YEAR YYYY

【創建數據表時,最好不要使用這些時間值,最好使用C++/Java等編程語言中的整數來保存 時間,這樣更方便計算,如C++中的int,PHP中時間戳 1970-1-1 0:0:0】

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved