mysql光速教程
// by redice 2010.07.26
// redice@163.com
为公司实习生写的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:00'GMT开始的秒数,datetimestr默认值为当前时间),返回整数值
FROM_UNIXTIME(unix_timestamp) 以'YYYY-MM-DD HH:MM:SS'格式返回时间戳的值,返回字符串值
提示:为了加速查询速度,大型系统通常把时间日期的时间戳值以INT(10)的格式存储。
3 SQL语句
SQL语句中,单引号来环绕文本(字符串)值,例如 'redice' 文本中含有单引号需要转义,例如 'redice's 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的部分文章: http://www.w3school.com.cn/sql/index.asp
// redice@163.com
为公司实习生写的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:00'GMT开始的秒数,datetimestr默认值为当前时间),返回整数值
FROM_UNIXTIME(unix_timestamp) 以'YYYY-MM-DD HH:MM:SS'格式返回时间戳的值,返回字符串值
提示:为了加速查询速度,大型系统通常把时间日期的时间戳值以INT(10)的格式存储。
3 SQL语句
SQL语句中,单引号来环绕文本(字符串)值,例如 'redice' 文本中含有单引号需要转义,例如 'redice's 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的部分文章: http://www.w3school.com.cn/sql/index.asp