文章目录
MySQL数据库创建表
Create Table table_name
(
field1 datatype;
filed2 datatype;
filed3 datatype;
...
)character set 字符集 collate 校对规则 engine 引擎/存储引擎
#field:指定列名 datatype: 指定列类型(字段类型)
#character set:如不指定则为所在数据库字符集
#collate:如不指定则为所在数据库校对规则
#engine:引擎(这个涉及内容较多,后面另做分析笔记)
创建表时,要根据需保存的数据创建相应的列,并根据数据的类型定义相应的列类型。
图形化案例
DOS案例
打开数据库目录bin -> 进入dos -> 进入终端 -> 指定数据库(use 数据库名) ->创建表(字段),注意关键字引起来
Mysql常用数据类型(列类型)表格
分类 | 数据类型 | 说明 |
---|---|---|
数值类型 | BIT(M) TINYINT[UNSIGNED]占1个字节 SMALLINT[UNSIGNED]2个字节 MEDIUMINT[UNSIGNED]3个字节 INT[UNSIGEND]4个字节 BIGNT[UNSIGNED]8个字节 FLOAT[UNSIGNED] DOUBLE[UNSIGNED] DECIMAL(M,D)[UNSIGNED] | 位类型。M指定位数,默认值1,范围1-64 带符号的范围是-128到127.无符号0到255。默认是有符号 带符号是负的2^15 到 2^15-1 ,无符号0 到 2^16 -1 带符号是负的2^23 到 2^23-1,无符号0 到 224-1<br>带符号是负的231 到 231-1,无符号0到232-1 带符号是负的263到263-1,无符号0到2^64 -1 占用空间4个字节 表示比float精度更大的小数,占用空间8个字节 定点数M指定长度,D表示小数点的位数, |
文本,二进制类型 | CHAR(size) char(20) VARCHAR(size) varchar(20) BLOB LONGBLOB TEXT LONGTEXT | 固定长度字符串最大255 可变长度字符串0~65535[即:2^16-1] 二进制数据BLOB 0~2^16-1 LONGBLOB 0~2^32-1 文本Text O~2^16 LONGTEXT 0~2^32 |
时间日期 | DATE/DATETIME/TimeStamp | 日期类型(YYYY-MM-DD) YYYY-MM-DD HH:MM:SS),TimeStamp表示时间戳,它可用于自动记录insert、update操作的时间 |
数值型(整数)
使用规范
在能够满足需求的情况下,尽量选择占用空间小的类型
应用实例
数值型(小数)
基本使用
-
FLOAT/DOUBLE[UNSIGNED]Float 单精度精度,Double 双精度
-
DECIMAL[M,D] [UNSIGNED]
- 可以支持更加精确的小数位,M是小数位数(精度)的总数,D是小数点(标度)后面的位数。
- 如果D是0,则值没有小数点或分数部分。M最大是65。D最大是30.如果D被省略,默认是0.如果M被省略,默认是10.
- 建议:如果希望小数的精度高,推荐使用decimal
应用实例
DECIMAL案例(适合超大超长的数,比如"大数据"需要)
字符串
基本使用
- CHAR(size)
固定长度字符串 最大255 字符
- VARCHAR(size) 0~65535
可变长度字符串 最大65532字节【utf8编码最大21844字符 1-3个字节用于记录大小】
注意:要看编码是什么,比如编码为gbk的话,那么范围就是(65535 - 3)/2
使用细节总结
char(4) //这个4表示字符数(最大255),不是字节数,不管是中文还是字母都是放四个,按字符计算
.varchar(4)//这个4表示字符数,不管是字母还是中文都以定义好的表的编码来存放数据.(看上面笔记)
不管是中文还是英文字母,都是最多存放4个,是按照字符来存放的.
细节2
char是定长(固定的内容空间),就是说,即使你插入 ‘aa’,也会占用4的字符空间
varchar(4)是变长,就是说,如果你插入了‘aa’,实际占用空间大小并不是4个字符,而是按照实际占用空间来分配(varchar本身还需要占用1-3个字节来记录存放内容长度)
varchar L = (实际数据大小) + (1-3)字节
细节3
什么时候使用char,什么时候使用varchar
- 如果数据是定长,推荐使用char,比如md5的密码,邮编,手机号,身份证号码等.char(32)
- 如果一个字段的长度是不确定,我们使用varchar,比如留言,文章
- 查询速度:char > varchar
·
细节4
在存放文本时,也可以使用Text 数据类型.可以将TEXT列视为VARCHAR列,注意Text不能有默认值.大小0-2^16字节
如果希望存放更多字符,可以选择
MEDIUMTEXT0-2424 或者LONGTEXT 0~2432