MySQL数据表相关操作-创建与测试数据类型

来源:互联网 发布:淘宝店包邮怎么做 编辑:程序博客网 时间:2024/05/22 06:49

1.MySQL中的数据类型

mysql中的数据类型分为五种:整数类型、浮点类型、字符串类型、日期时间类型、二进制类型(较少用到)
每种数据类型查看范围和字节数即可,若不懂字节与大小关系的可以看看计算机基础的知识,下面只贴出数据类型作为参考和记忆,不做赘述

1.1整数类型


1.2浮点类型


1.3字符串类型


1.4日期时间类型



1.5选择数据类型时应该注意的问题

1.5.1整数类型与浮点数类型

1.如果要表示小数只能用浮点数类型,整数类型不能表示小数
2.浮点类型DOUBLE精度比FLOAT类型高,如果需要精确到10位以上,就应该选择DOUBLE类型

1.5.2浮点数与定点数类型

1.对于精度要求较高的时候需要使用定点数存,因为定点数内部是以字符串形式存储的
定点数计算机中采用的一种数的表示方法。参与运算的数的小数点位置固定不变(来自百度百科)

1.5.3CHAR类型和VARCHAR类型和TEXT类型

1.CHAR定长字符串,占用空间大,速度快
2.VARCHAR变长字符串,占用空间小,速度慢
3.TEXT类型是一种特殊的字符串类型。只能保存字符数据,而且不能有默认值
4.它们3个存储和检索数据的方式都不一样,数据检索的效率CHAR>VARCHAR>TEXT
5.CHAR在保存的时候,后面会用空格填充到指定的长度,在检索的时候后面的空格会去掉
6.VARCHAR在保存的时候,不进行填充。当值保存和检索时尾部的空格仍保留

1.5.4日期和时间类型类型

1.YEAR只保存年份,占用空间小
2.其它和日期时间有关的可以通过整型保存时间戳,方便计算

2.MySQL中的存储引擎

存储引擎:存储引擎就是指表的类型。数据库的存储类型决定了表在计算机中的存储方式。用户可以根据不同的存储方式、是否进行事务处理等来选择合适的存储引擎。
mysql中常用的存储引擎:InnoDB引擎  MyISAM引擎  MEMORY引擎
关于mysql中的存储引擎,可参考点击打开链接,知乎、百度、谷歌上一搜一大把,博客只作为学习,不进一步探讨

2.1对存储引擎的操作



3.MySQL数据表相关操作

3.1什么是表


3.2创建一个数据表

语法:CREATE TABLE [IF NOT EXISTS] tbl_name(
字段名称 字段类型 [完整性约束条件]
...
)ENGINE=引擎名称 CHARSET='编码方式';

创建数据表的语句与上一节创建数据库的操作基本类似,不做赘述,先进行最基本的创建操作

在创建一个表时,必须保证打开了一个数据库,不然会报错

提示:
1.在创建数据库和数据表时,名称可以用反斜线标注,防止与mysql关键字冲突,建议最好别起冲突的
2.当创建的数据表中包含中文时,要记得先在mysql中使用SET NAMES 'GBK',使得输出中文不报错
3.字段的注释可以用COMMENT来写注释

如图:

3.3查看数据表





3.4在数据表中测试数据类型

3.4.1测试整型和浮点型

PS:用到的语句有:
INSERT db_name VALUES();    可以给数据表的字段赋值
SELECT * FROM db_name   读取db_name中的数据

先创建一个数据表,如下:


此时我们进行INSERT db_name VALUES( -129,-32768,-8388608,-2147483648,-9223372036854775808)操作,请对比数据类型里各个数据类型的范围,那么这段语句中的-129超出了TINYINT的范围,所以不会被执行



如果我们在定义数据表时加上ZEROFILL,则会在type的数据类型的括号内没有数值的地方自动补上0



需要注意的是UNSIGNED,这个可以在定义数据表时单独加上,但是加了ZEROFILL后,会自动出现UNSIGNED,UNSIGNES表示为无符号位,则可以通过以下的操作报错和成功,对比数据类型表,会明白其中的体会





创建一个浮点数的数据表,并且依次得到不同数据类型的值,在指定了小数位后系统会自动的四舍五入,像需要高精度(银行、航天参数)时,尽量使用DECIMAL,它内部以字符串存储数据,准确



3.4.2测试字符串类型

PS:需要用到的语句:
SELECT  LENGTH(); 获得某个元素的长度
SELECT  CHAR_LENGTH();  获得字符串中字符个数

先创建一个数据表,如下:


创建成功后,向其中插入两个值



在插入数据时要注意不要超过创建时规定的字符串的长度,并观察下图


创建一个枚举类型的表


现在向数据表中插入数据,需要注意:
1.插入的元素必须是枚举类型中的,并且只能插入一个,不能插入多个
2.如果在插入时后面打了空格,则显示时会自动去掉
3.枚举类型在存储时是以序列存储的,不是以枚举类型的值存储的,所以可以以序列值来插入数据,序列以1开始
4.可以向枚举类型中插入NULL,但是不能插入空字符串

通过下图验证:




创建一个SET类型的表


现在向数据表中插入数据,需要注意:
1.SET每次可以插入多个值,多个值用逗号分隔
2.SET中的数据序号是以二进制存储,翻译为十进制为1 2 4 8 16,所以你向表中插入6时,表明插入4 和 2序列的元素
3.即使插入时元素没有按照创建时的顺序排列,在创建完成后,系统会自动的排列,并且SET可以插入NULL和空字符串
下面开始演示:




3.4.3测试时间日期类型

这里只测试YEAR,因为其他时间日期类型时间戳都基本用整型保存

创建一个YEAR类型的表


插入数据时应该注意:
1.插入时可以直接输入年份,也可以以字符串形式输入
2.输入01-69则会自动变成2001-2069中的年份,若输入70-99,则会变成1970-1999的年份
3.输入0,则会变成0000,输入‘0’,则会变成2000

进行演示:


参考于麦子学院mysql基础
0 0
原创粉丝点击