1.字符/字节/位
(1)字符
一个字、字母、数字、符号等都是一个字符,其和字节、位不是一种概念,他是相对于我们所见的长度来说的,而另外两个是按照计算机存储分配来说的
(2)字节
byte,存储空间的计量单位,每种数据单位一般都是规定占几个字节
(3)位
bit,最小的单位,也就是0和1,一个字节等于8位
2.数据类型
(1)整数型
(范围从小到大)
- TINYINT:有符号值:-128到127;无符号值:0到255
-SMALLINT:有符号值:-32768到32767;无符号值:0到65535
-MEDIUMINT:有符号值:-2^23到2^23-1;无符号值:0到2^24-1
-INT:有符号值:-2^31到2^31-1;无符号值:0到2^32-1
-BIGINT:有符号值:-2^63到2^63-1;无符号值:0到2^64-1
(2)小数型
①浮点型:
-FLOAT:非精确数,单精度(8位精度),可以设置格式:float(总个数,小数位),但通常可以不用设置
-DOUBLE:非精确数,双精度(16位精度),格式要求同上
②定点型:
-DECIMAL:精确数,不会四舍五入数据,像记录金钱啥的数据不允许四舍五入的用这个,通常需要设定长度,格式为:DECIMAL(总长,小数位),比如:decimal(4,2),那么最大就是99.99
(3)字符型
-CHAR:定长字符串,0到255字节,超过规定长度将无法存储,少于长度会用空格补上,比如:char(5),括号里的数字代表字符长度,所以超过5个数据就无法存储,如果存”abc”,就会变成”abc “,一般可以用于存储像md5加密后一定会是32位的定长字符串
-VARCHAR:变长字符串,会根据你输入的字符串来自动调节长度,相当于char去掉空格补全,所以更节省空间,但是性能没有char高,适合长度不定的情况
-TINYTEXT:短文本字符串,0到255字节
-TEXT:长文本数据,0到65535,一般文章内容用这个就行,文章标题用VARCHAR就行
-MEDIUMTEXT:中长文本,0到2^24
-LONGTEXT:极长文本,0到2^32
-ENUM:枚举,1/2字节
-SET:1/2/3/4/8个字节
注:常用的是1/2/4这三个
(4)时间
-DATE:格式:YYYY-MM-DD,日期值
-TIME:格式:HH:MM:SS,时间值
-YEAR:格式:YYYY,年份
-DATETIME:格式:YYYY-MM-DD HH:MM:SS,时间日期混合,范围从1000年开始
-TIMESTAMP:格式:跟上面格式一样,但是时间范围是从1970年开始的
注:实际上存时间可能更多不用这上面五种,而是通过int型存时间戳,即一个10位的整数,代表1970年01月01日00时00分00秒到现在总秒数,python的time函数输出的就是时间戳
注2:时间戳可以参考这里:http://tool.chinaz.com/Tools/unixtime.aspx
3.字段修饰
(1)unsigned:无符号
(2)auto_increment:自增,比如ID一般都会自增
(3)default:默认值
(4)comment:对字段进行解释说明
(5)null:空
(6)not null:非空,基本都是这个
(7)unique:唯一索引
(8)index:普通索引,这两个索引可以加快查询速度
(9)primary key:主键,一般auto increment必须设为主键
4.运算符
(1)=:赋值和等于都有,会自动帮你判断
(2)!=/<>:都是不等于
(3)>=/>/<=/<
(4)or/||:或
(5)and/&&:与
(6)between and:在多少之间,比如:between 5 and 10,相当于5~10
(7)in/not in:是否在…里面,比如:in(1,2,3,4),假如在这里面,返回就是True