数据库表管理的操作包括创建数据库表、修改数据库表、查看数据库表属性、删除数据库表。为了能够创建出一张合理的数据表,必须先学习MySQL的数据类型,因此本小节首先讲解MySQL的数据类型。
17.4.1 MySQL数据类型
MySQL的数据类型分为数值类型、字符串类型和日期和时间类型。数值类型用于表示各种数字,而数字又可以分为整数、定点数、浮点数。下面的表17-1展示了MySQL的各种数值类型
表17-1MySQL数值类型
类型 | 大小 | 范围 | 意义 |
TINYINT | 1 Bytes | [-128,127] | 微小整数值 |
SMALLINT | 2 Bytes | [-32 768,32 767] | 小整数值 |
MEDIUMINT | 3 Bytes | [-8 388 608,8 388 607] | 中整数值 |
INT或INTEGER | 4 Bytes | [-2 147 483 648,2 147 483 647] | 整数值 |
BIGINT | 8 Bytes | [-9,223,372,036,854,775,808,9223372036854 775807] | 大整数值 |
FLOAT | 4 Bytes | (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) | 单精度 |
DOUBLE | 8 Bytes | (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 双精度 |
DECIMAL | DECIMAL(M,D)如果M>D,为M+2否则为D+2 | 依赖于M和D的值 | 定点数值 |
MySQL的字符串类型也有很多,如表17-2所示。
表17-2 MySQL字符串类型
类型 | 大小 | 意义 |
CHAR | 0-255 bytes | 定长字符串 |
VARCHAR | 0-65535 bytes | 变长字符串 |
TINYBLOB | 0-255 bytes | 不超过 255 个字符的二进制字符串 |
TINYTEXT | 0-255 bytes | 短文本字符串 |
BLOB | 0-65535 bytes | 二进制形式的长文本数据 |
TEXT | 0-65535 bytes | 长文本数据 |
MEDIUMBLOB | 0-16777215 bytes | 二进制形式的中等长度文本数据 |
MEDIUMTEXT | 0-16777215 bytes | 中等长度文本数据 |
LONGBLOB | 0-4294967295 bytes | 二进制形式的极大文本数据 |
LONGTEXT | 0-4294967295 bytes | 极大文本数据 |
注意:char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储30个字符。CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。
TEXT类型有4种:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。
实际开发过程中,很多情况下都需要向数据库中存储日期、时间等类型的数据,MySQL定义了很多关于日期时间的数据类型,如表17-3所示。
表17-3 日期和时间类型
类型 | 大小 | 范围 | 格式 | 意义 |
DATE | 3 bytes | 1000-01-01-9999-12-31 | YYYY-MM-DD | 日期 |
TIME | 3 bytes | -838:59:59-838:59:59 | HH:MM:SS | 时间值或时间段 |
YEAR | 1 bytes | 1901-2155 | YYYY | 年份值 |
DATETIME | 8 bytes | 1000-01-01 00:00:00- 9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 日期和时间值 |
TIMESTAMP | 4 bytes | 1970-01-01 00:00:00- 2038-01-19 03:14:07 | YYYYMMDD HHMMSS | 日期和时间值 |
每个时间类型有一个有效值范围和一个“零”值,当指定不合法的MySQL不能表示的值时使用“零”值。
17.4.2创建数据表
使用Workbench创建数据表是非常简单的操作,程序员只需要在视图窗格中先双击已经创建好的数据库,数据库就会被打开。当打开数据库之后,在数据库下方右键单击“Tables”,之后在弹出的右键菜单中单击“Create Table”菜单项,如图17-27所示。
图17-27创建数据表菜单项
当单击了“Create Table”菜单项后,右边的主视图区中就会出现一个创建数据表的界面,如图17-28所示。
图17-28创建数据表界面
在图17-28所示界面中,填写好数据表名称并选择数据表的字符集、排序规则,之后在下方填写第一个列的名称并选择这一列数据的类型。如果希望再增加一个列,可以在第一个列名称的下方继续添加新列的名称并选择其数据类型,这个操作与添加第一个列的步骤是相同的。当给该数据表添加完所有的列之后,单击界面下方的“Apply”按钮,将会进入一个确认界面,这界面主要是让程序员确认刚才所创建的数据表是否正确,并给出创建数据表的SQL语句,该界面如图17-29所示。
图17-29 数据表确认界面
如果程序员发现自己的表格设计的有问题,则单击“Cancel”按钮返回前一界面重新设计,否则单击“Apply”按钮进入一个数据表创建完成的提示界面,如图17-30所示。
图17-30数据表已创建完成
在这个界面上单击“Finish”按钮,对话框即可关闭,并且可以看到右边视图窗格中“Tables”下面出现了刚创建的数据表的名称。
17.4.3修改数据表
程序员在创建数据表之后,如果发现数据表的创建有问题还可以再次修改数据表。修改数据表时先在视图窗格中用右键单击要修改表的名称,之后在弹出的右键菜单中单击“Alter Table”菜单项,如图17-31所示。
图17-31修改数据表菜单项
单击了“Alter Table”菜单项后,会打开创建数据表的界面,只不过界面中已经有了之前表格的各种信息,程序员在这个界面中可以修改数据表的表名称、字符集以及进行为表格新增、修改或删除列等各项操作,修改完成后单击“Apply”按钮,之后的步骤与创建表格是完全一样的,都是先确认,再单击“Finish”按钮结束修改表格的操作。
需要注意:修改数据表中某一个列的数据类型时,如果数据表中没有数据,则修改操作一定会成功,但如果表格中已经有了一些数据,修改操作可能会失败。例如数据表t1中有一个a列的类型是char,假如数据表中已经有了一些数据,并且a列上出现了“abc”这样的数据,那么把a列改成int型的操作就会失败,因为MySQL无法把“abc”转换成一个整数。
17.4.3查看数据表信息
数据表被创建之后,程序员可以查看它的各项信息,包括查看表的名称、存储位置、表格中的列、索引等各种信息。数据表的信息界面也可以用右键菜单打开,程序员只需要用右键单击表的名称,在弹出的右键菜单中单击“Table Inspector”菜单项就能打开数据表的信息界面,如图17-32所示。
图17-32查看数据表信息
从图17-32可以看出,这个界面是一个选项板,单击各个选项卡可以查看与数据表相关的各种信息。
17.4.4删除数据表
删除数据表的操作也可以通过右键菜单完成,程序员在要删除的数据表上单击右键,在弹出的右键菜单中单击“Drop Table”,如图17-33所示。
图17-33删除数据表菜单项
当单击“Drop Table”菜单项后就会弹出一个确认对话框,在这个对话框上单击“Drop Now”即可删除数据表。
本文字版教程还配有更详细的视频讲解,小伙伴们可以点击这里观看。
标签:界面,17,单击,数据库,MySQL,bytes,数据表,SQL From: https://blog.51cto.com/mugexuetang/5984728