// by redice 2010.07.26
// [email protected]
為公司實習生寫的MYSQL學習提綱,總結了一下在項目開發中用到最多的知識點,可以作為MYSQL快速入門的教程。
1 MYSQL列(字段)數據類型:
(1)字符串類
VARCHAR 可變長度的字符串 高達255字符
適用於存儲用戶名,密碼,電話號碼,郵箱,地址等長度較短(小於255)的字符串
TEXT 沒有最大長度限制的可變長度的字符串
適用於存儲文章內容,產品描述,用戶留言等長度較大的(大於255)字符串
(2)整數類
TINYINT 這個類型最多可容納三位數
SMALLINT 最多可容納五位數
MEDIUMINT 最多可容納八位數
INT 可以容納十位數
BIGINT 最多可容納二十位數
(3)小數類
DECIMAL 適用於存儲含有小數的數字,例如,產品價格,銷售額
DECIMAL(5+3,3)或 DECIMAL(8,3) 表示整數部分最多5位數,小數部分3位數
(4)時間日期類
DATE 以 yyyy-mm-dd格式的日期
TIME 以 hh:mm:ss格式的時間
DATETIME 以yyyy-mm-ddhh:mm:ss格式結合日期和時間,支持的范圍為1000-01-01 00:00:00到9999-12-31 23:59:59,8個字節儲存,時區轉化(改變時區,顯示不改變)
TIMESTAMP 以yyyy-mm-ddhh:mm:ss格式結合日期和時間,值不能早於1970或晚於2037,4個字節儲存,與時區無關(改變時區,顯示自動調整)
說明:可將時間日期類當做特殊的字符串類看待。
2 MYSQL常用的內置函數
(1)字符處理類
ASCII(str) 返回字符串str的第一個字符的ASCII值(str是空串時返回0)
CHAR(N,...) 返回由參數N,...對應的ASCII代碼字符組成的一個字串(參數是N,...是數字序列,NULL值被跳過)
CONCAT(str1,str2,...) 把參數連成一個長字符串並返回(任何參數是NULL時返回NULL)
REPLACE(str,from_str,to_str) 用字符串to_str替換字符串str中的子串from_str並返回
UCASE(str) 或 UPPER(str) 返回大寫的字符串str
CHAR_LENGTH(str) 返回字符串str的字符數(對於多字節字符僅計算一次)
LENGTH(str)或OCTET_LENGTH(str) 返回字符串str的字節數(對於多字節字符按字節數計算)
(2)時間日期類
CURDATE() 以YYYY-MM-DD格式返回當前日期值,返回字符串值
CURTIME() 以HH:MM:SS格式返回當前時間值(根據返回值所處上下文是字符串或數字),返回字符串值
NOW() 以YYYY-MM-DD HH:MM:SS格式返回當前日期時間,返回字符串值
UNIX_TIMESTAMP(datetimestr) 返回一個Unix時間戳(從1970-01-01 00:00:00GMT開始的秒數,datetimestr默認值為當前時間),返回整數值
FROM_UNIXTIME(unix_timestamp) 以YYYY-MM-DD HH:MM:SS格式返回時間戳的值,返回字符串值
提示:為了加速查詢速度,大型系統通常把時間日期的時間戳值以INT(10)的格式存儲。
3 SQL語句
SQL語句中,單引號來環繞文本(字符串)值,例如 redice 文本中含有單引號需要轉義,例如 redices blog
如果是數值,不要使用引號
時間日期類型按文本(字符串)對待
(1)SELECT
SELECT 列名(字段名) FROM 表名稱 WHERE 查詢條件
聚合函數:
AVG(column),COUNT(column),MAX(column),MIN(column),SUM(column)
(2)DELETE
DELETE FROM 表名稱 WHERE 查詢條件
(3)INSERT
INSERT INTO 表名稱 (列1, 列2,...) VALUES (值1, 值2,....)
例如:
insert into user (name,pass,age,regtime) values (redice,123456,24,now())
(4)UPDATE
UPDATE 表名稱 SET 列1 = 值1,列2 = 值2,.... WHERE 查詢條件
本文參考了w3school的部分文章: asp">http://www.w3school.com.cn/sql/index.asp