小白测试笔记-数据库2
列类型(字段类型)
1.整数类型
Tinyint:迷你整形,用一个字节保存的整形:一个字节=8位,最大表示数值是0-255,实际上表示-128-127;
Smallint:小整形,2个字节,
int:4个字节
无标识符合设定:在字段类型后加unsigned
如 alter table student add age2 tinyint unsigned;
显示长度:指整形数据在数据显示的时候,到底可以显示多长为。
Tintint(3)unsigned 表示可以显示3位,0-255
Tintint(4)表示最长表示4位,-128-127,符合占一位
2.小数类型
浮点型:精度类型,是一种可能丢失精度的素具类型,数据有可能不那么准确
Float:单精度,系统用4个字节存储数据 Float(M,D)表示一共存储M个有效数字,其中小数部分占D位
Double:双精度 系统用8个字节存储数据 Float(M,D)表示一共存储M个有效数字,其中小数部分占D位
定点数:能保证数据精确的小数,整数部分一定精确
Decimal定点数:系统自动根据存储的数据来分配存储空间
Decimal(M,D)M表示总长度,D表示小数部分长度
3.时间日期类型:
Date:日期类型,系统用3个字节存储数据。格式为YYYY-mm-dd
Time:时间类型,3个字节存储,格式为HH:ii:ss
Datetime:日期时间类型,用8个字节存储数据,格式为:YYYY-mm-dd HH:ii:ss
Timestamp:时间戳类型,格式和上面一样,当对应的数据(不是自己)被修改时,会自动更新
Year:年类型,1个字节保存
4.字符串型
Char:定长字符:指定长度之后,系统一定会分配指定的空间用于存储数据
Char(L),L代表字符数,长度0-255(utf8 一个字符都会占有3个字节)
Varchar:变长字符,指定长度之后,系统根据存储数据来计算长度,分配合适长度,系统会在数据
后面增加1-2个字节的额外开销,用来保存数据所占有的空间长度,长度0-65535
Text:文本类型,存储普通的字符文本,有4中类型
Tinytext:系统使用一个字节来保存,能存的数据为2^8+1
Text:两个字节保存
Mediumtext:3个字节
Longtext:4个字节
Enum:枚举类型:在数据插入之前,先设定几个项
如果确定某个字段的数据只有几个值:如性别,男,女,系统可以在设定字段时规定当前字段只能存放固定的几个值
enum(数值1,数值2…)系统提供1到2个来存储枚举数据,极大节省了空间
Set:集合,将多个数据选项可以同时保存的数据类型,本质是将指定的项按照对应的二进制位
来进行控制:1.表示该选项被选中,0表示没有被选中
set(‘值1’,‘值2’,…)最多64个值,一个字节存8个值
Set和Enum一样,最终存进去的依然是数字,而不是字符
如insert into 表名 values(‘值1,值2…’);数值为11…,真实值为二进制数颠倒后转为十进制
在mysql中,记录长度总长度不能超过65535个字节
列属性
Null属性:代表字段为空,对应值为yes表示该字段可以为空
默认值(Default):
如 create table my_default(
name varchar(10) NOT NULL comment’注释不能为空’,–表示不能为空
age int(11)default 18 --表示当前字段在进行数据插入时没有提供,就用18
)charset utf8;
列描述:comment,注释说明,语法comment’字段描述’
查看Comment:show create table 表名;
主键:主要的键,primary key,一张表中有且只有一个字段,里面的值具有唯一性
创建主键:
1.随表创建:直接在需要当做主键的字段之后,增加primary key 属性来确定主键
如create table my_default(
name varchar(10) primary key
)charset utf8;
2.
create table my_default(
name varchar(10), primary key(name)
)charset utf8;
表后增加:alter table 表名 add primary key(字段名);
查看主键:
1.查看表结构:desc 表名;
2.查看表的创建语句:show create table 表名;
删除主键:alter table 表名 drop primary key(字段名);
复合主键:有多个主键
主键约束:主键一旦增加,那么对应字段有数据要求:
1.字段对应数据不能为空
2.字段对应数据不能重复
自动增长:字段后增加一个属性 auto_increment
修改:alter table 表名 auto_increment = 值;
唯一键:unique key,用来保证对应的字段中的数据唯一,在一张表中可以有多个,不为空情况下数据不能重复
创建唯一键:和主键一样
index 关键字:索引,唯一键是索引一种
删除的基本语法:alter table 表名 drop index 唯一键名字;
表关系:
一对一:一张表中的一条记录与另外一张表中最多有一条明确的关系,通常保证两张表中使用同样的主键即可