MySQL-数据库的基本概念

数据库的列类型

数值

  • tinyint(十分小的数据,占用1个字节)
  • smallint ( 较小的数据,占用2个字节)
  • mediumint(中等大小的数据,占用3个字节)
  • int(标准的整数,占用4个字节,也是最常用的)
  • bigint(较大的数据,占用8个字节)
  • float(单精度浮点数,占用4个字节)
  • double(浮点数,占用8个字节,存在精度问题)
  • decimal(字符串形式的浮点数,在金融计算的时候,一般都是使用decimal)

字符串

  • char(固定大小的字符串 0~255)
  • varchar(可变字符串 0~65535 常用的变量)
  • tinytext (微型文本 2^8)
  • text(文本串 2^16-1 用于保存大文本)

时间日期

  • data(YYYY-MM-DD 年月日)
  • time(HH:mm:ss 时分秒)
  • datatime(YYYY-MM-DD HH:mm:ss 也是目前为止最常用的时间格式)
  • timetamp(时间戳 1970.1.1到现在的毫秒数 也较为常用)
  • year(年份表示)

null

  • 没有值,未知
  • 注意:不要使用NULL来进行运算,结果为NULL!

数据库的字段属性

unsigned

  • 无符号的整数
  • 声明了该列不能为负数

zerofill

  • 0填充的
  • 不足的位数将会使用0填充,例如三位数的int类型数据,数值为5,会自动填充为005

auto increment

  • 通常理解为自增,默认为自动在上一条记录的基础上+1
  • 通常来设计唯一的主键,例如index,且必须为整数
  • 可以自定义设置主键自增的起始值和步长

非空

  • 假设设置为not null,如果不给其赋值,就会报错
  • NULL,如果不填写值,那默认为null!

默认

  • 设置默认的值
  • 假设有sex,设置默认值为男,如果不指定该列的值,则会有默认的值!

题外话:每一个表都必须存在以下五个字段,未来做项目的时候会用到,表示一个记录存在的意义!

/*	id 主键
	`version` 乐观锁
	is_delete 伪删锁
	gmt_create 创建时间
	gmt_updata 修改时间		*/

数据库的类型

数据库引擎

早些年(5.1版本之前)一般使用MyISAM,现如今一般默认为InnoDB!

MyISAMInnoDB
事物支持不支持支持
数据行锁定不支持支持
外键约束不支持支持
全文索引支持不支持
表空间的大小较小较大(为MyISAM的两倍)

从常规使用操作的角度来看,MyISAM相比起InnoDB,体积更小,节约空间,速度较快,而InnoDB则是安全性高,支持事物的处理,并且可以多表多用户操作。

物理空间存在的位置

所有的数据库文件都存放在data目录下,可以很粗暴地理解为每一个文件夹都对应这一个数据库,本质上还是以文件的格式储存。

MySQL引擎在物理文件上的区别:

  • InnoDB在数据库表中只有一个*.frm文件(表的定义结构文件),以及上级目录下的ibdata1文件

  • MyISAM对应的文件一共有三份:

    • *.frm
    • *.MYD(表的数据文件data)
    • *.MYI(索引文件index)

设置数据库表的字符集编码

CHARSET=utf8

MySQL的默认字符集编码为Latin1,并不支持中文!所以我们一般会设置为utf8编码格式!

也可以通过修改my.ini配置文件来修改默认的字符集编码(并不建议):

character-set-server=utf8
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值