MySQL---数据类型、字段属性

数据类型

数值

请添加图片描述

	int
		整型
			
			Signed(默认为有符号)
				有符号数
					+ -
			Unsigned
				无符号数
	tinyint
	smallint
	mudiemint
	bigint
	bit
float
		浮点型
double
decimal
		定点型

函数

length()  查询存储空间的大小
char_length() 查看字符的长度--》字符的个数

字符串

请添加图片描述

	char
	varchar
		
	text
		longtext
	blob
		二进制的文本
			图片
			音频
			视频
		tinyblob
		MEDIUMBLOB
		LONGBLOB
		blob
	enum
		枚举
	set
		集合
	binary和varbinary
		The BINARY and VARBINARY types are similar to CHAR 
		and VARCHAR, except that they store binary 
		strings rather than nonbinary strings.

日期和时间

	时间戳 timestamp
		注册账号时间
		交易
		下订单
		
	date
		生日
	time
	datetime
		考勤
	year

json

spatial data

	空间数据类型

详情请看官网
https://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html

字段属性

zerofill
	填充0
unsigned
	无符号整数
signed
	有符号整数
not null
	不能为空
auto_increment
	自增

存储引擎

InnoDB 默认

innodb之所以取代是因为他有三个特点 外键,支持事务,行级别锁提高性能,三个特点

            t1.frm
				表结构
			t1.ibd
				索引和数据
					innodb  data

拓展

关系型数据库:

二维表:
表和字段有关系
表和表有关系

非关系型数据库redis、mongodb

key:value
如同:{
1{name:xu},
2{name:x},
}

结构性数据:

数据库,有表,按照某种结构,有规律可行

非结构性数据:

日志文件,杂乱

MyISAM

内存,适合cu
		    t1.frm
				表结构
			t1.MYI
				索引文件
					index,相当于书的目录,方便查询
			t1.MYD
				数据文件
					data

SHOW engines;

csv


CSV storage engine  做过处理的数据,如提取指定的内容  
				以逗号作为分割的文件
				数据分析
					数据处理
					数据清洗
					数据仓库
						软件

blackhole

			黑洞
解决了主从复制架构里,让很多的从服务器直接到配置了blackhole存储引擎
的master上拿二进制日志,让最上层的master的负载降低
			其实就是帮忙主从架构传递二进制日志,自己不执行二进制日志,只是传递

memory

			数据保存在内存里,特别适用于适用临时表的场景
							临时表:只有创建它的的session才能看,并且退出就删除
存储引擎和表绑定   
		ENGINE=InnoDB

字段属性2

foreign key

	外键的好处: 直接引用别的表里的字段,自己的表里就不需要再创建相同的数据了,可以避免数据的冗余。
		命运共同体--》表和表之间互相引用
		供应链
外键: 其实在另外表里是主键
A表里的主键被引用到B表里做一个字段,这个字段就是B表里的外键

primary key

	等同于not null+unique
				null 不能为空
				空值  ' '
	主键
		不允许为空,而且也不需要重复

comment

	注释
	  sqlyog查看,终端使用desc查看

default

	默认值

unique

	唯一性
	允许为null
	空值只能出现一次

字符集

rpm方式安装默认字符集

latin1

编译安装的默认字符集

			utf8
			在配置文件里添加配置
				character-set-server=utf8  --》指明mysql 服务器的 server 字符集是utf8

如何指定字符集
SHOW CHARACTER SET,查询你的mysql支持哪些字符集
SHOW variables like '%CHARACTER%',查看你正在使用哪些字符集
继承问题,不指定使用哪种字符集
服务器>库>表>列
CREATE TABLE t1 (
c1 CHAR(1) CHARACTER SET latin1,
c2 CHAR(1) CHARACTER SET ascii
);

根据已有的表来创建新表

方式一:create table new_tbl like orrg_tbl
这种语法会复制源表的列名、数据类型、大小、非空约束、索引,而表的内容
和其他约束不会复制,新表是一张空表

方式二:create table new-tbl [as] select {*|column|…} from org_tbl
新表的结构由select的列决定,同时把查询结果集中的行插入到目标表中,这种复杂同样只能复制非空约束,也不会复制索引

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值