- char:固定长度字符串类型,范围0~255个字节
- varchar:可变字符串类型,范围0~255
- int:允许从-2,147,483,648到2,147,483,647的所有数字
- text:可变长度,主要存放非二进制的文本
- datetime :MySQL检索并且以’YYYY-MM-DD HH:MM:SS’格式显示,日期范围比较大
- timestamp:占存储空间比较小。受时区timezone的影响
timestamp有两个属性,分别是CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP两种,使用情况分别如下
1,CURRENT_TIMESTAMP
当要向数据库执行insert操作时,如果有个timestamp字段属性设为
CURRENT_TIMESTAMP,则无论这个字段有没有set值都插入当前系统时间
2,ON UPDATE CURRENT_TIMESTAMP
当执行update操作是,并且字段有ON UPDATE CURRENT_TIMESTAMP属性。则字段无论值有没有变化,它的值也会跟着更新为当前UPDATE操作时的时间。
索引的最简单的理解:
如果你给一个唯一性的字段加上索引,比如一个字段是房间号,你不设置字段的情况下去搜索RoomNumber=101,那么数据库会去一条一条的搜索数据库中的RoomNumber字段,直到找到101给你返回,但如果你把RoomNumber设置为索引,那么数据库就会直接找到RoomNumber=101这条信息给你返回。所以索引的作用是加快数据库搜索的效率,但是同样的,你给一个字段设置为索引,是要消耗资源的。
- 普通索引(INDEX):最基本的索引,没有任何限制。
- 唯一索引(UNIQUE):与"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。
- 主键索引(PRIMARY):它 是一种特殊的唯一索引,不允许有空值。
- 全文索引(FULLTEXT ):仅可用于 MyISAM 表, 用于在一篇文章中,检索文本信息的,针对较大的数据,生成全文索引很耗时耗空间。
MySQL函数
concat(str1,str2,…) :
- 把参数连成一个长字符串并返回(任何参数是null时返回null)
dayofweek(date)
- 返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准) mysql> select
dayofweek(‘1998-02-03’); -> 3
weekday(date)
- 返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
mysql> select weekday(‘1997-10-04 22:23:00’);
-> 5
mysql> select weekday(‘1997-11-05’);
-> 2
dayofmonth(date)
- 返回date是一月中的第几日(在1到31范围内)
mysql> select dayofmonth(‘1998-02-03’);
-> 3
dayofyear(date)
- 返回date是一年中的第几日(在1到366范围内)
mysql> select dayofyear(‘1998-02-03’);
-> 34
month(date)
- 返回date中的月份数值
mysql> select month(‘1998-02-03’);
-> 2
dayname(date)
- 返回date是星期几(按英文名返回)
mysql> select dayname(“1998-02-05”);
-> ‘thursday’
monthname(date)
- 返回date是几月(按英文名返回)
mysql> select monthname(“1998-02-05”);
-> ‘february’