MySQL数据库(二)__2018.11.03

唯一性索引,一个表中可以有多个字段时唯一性的(unique)。

一个表只能有一个主键,且不能为空。

外键约束。

完整性约束条件。保证数据的完整性和一致性。

显示宽度

如果数据大于该字段数据类型所能表示的最大范围则发生截断。

显示宽度只有配合上零填充才能显示出效果。

--零填充测试

CREATE TABLE test_int1(
    a TINYINT ZEROFILL,
    b SMALLINT ZEROFILL,
    c MEDIUMINT ZEROFILL,
    d INT ZEROFILL,
    e BIGINT ZEROFILL
);

查看表结构

有了零填充,字段会自动加上无符号的属性。

浮点数(小数):float(M,D)M代表总长度,D代表浮点数占用的位数。

double(M,D)

decimal[(M,D)]内部以字符串形式存储数据的。

float、doubles在发生输入数据浮点数位数超过D时,自动进行四舍五入,但是decimal会产生警告。

CREATE TABLE test_float1(
	a FLOAT,
	b DOUBLE,
	c DECIMAL
);

不指定小数的位数,默认对小数部分进行四舍五入。

decimal精度高,适合处理精度高的。

char时定长0-255

varchar变长0-65535

char比较浪费空间。

char类型的检索速度比varchar快。以时间换空间

varchar里有一个字节记录存了多长的字符串。

CREATE TABLE test_str(
	a CHAR(5),
	b VARCHAR(5)
);

可以在当前会话中设置sql模式(暂时),修改配置文件(永久有效)。

select concat()

char类型的效率要高于varchar。char相当于那空间换时间,varchar是那时间换空间。char默认存储时,后面会用空格填充到指定的长度,而在检索的时候会去掉后面的空格,varchar在保存的时候不进行填充,尾部的空格会留下。

存储的长度大于255只能选择varchar或text。

text特殊的字符串类型。

text列不能有默认值。

--测试text不能有默认值。

CREATE TABLE test_str1(
	content TEXT DEFAULT 'THIS IS A TEST'
);

检索过程中不存在大小写转换(区分大小写)

ENUM:列出值,有序号按序号存,保存的编号,不是值。

列举出来的值。

--测试枚举类型

可以为空。

只能从列举出来的值中选择。

枚举类型会自动去除枚举值中的空格。

集合类型,

枚举类型只能从列表中的值中选一个,集合可选多个。

--测试集合set

CREATE TABLE test_set(
	a SET('A','B','C','D','E','F')
);
INSERT test_set(a)VALUES('A');
INSERT test_set(a)VALUES('C');
INSERT test_set(a)VALUES('C,D,E');
INSERT test_set(a)VALUES('C,F,A');

会自动进行排序。

--HH:MM:SS[D HH:MM:SS](TIME时间类型)D表示天数0~34

CREATE TABLE test_time(
	a TIME
);

data类型用3字节表示。

--测试data类型(YYYY-MM-DD YYYYMMDD)

CREATE TABLE test_date(
	a DATE
);

可以任意指定分隔符

--79~99转换成1970~1999 00~69转换成2000~2069

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值