MySQL与Java一样,也有数据类型。MySQL支持多种数据类型,主要有数值类型、日期/时间类型和字符串类型。
数值数据类型:包括整数类型TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT,浮点小数数据类型FLOAT和DOUBLE及定点小数类型DECIMAL。。 类型名称说明存储需求TINYINT很小的整数1个字节SMALLINT小的整数2个字节MEDIUMINT中等大小的整数3个字节INT普通大小的整数4个字节BIGINT大整数8个字节FLOAT单精度浮点数4个字节DOUBLE双精度浮点数8个字节 日期/时间类型:包括YEAR、TIME、DATE、DATETIME和TIMESTAMP。 类型名称日期格式存储需求YEARYYYY1个字节TIMEHH:MM:SS3个字节DATEYYYY-MM-DD3个字节DATETIMEYYYY-MM-DD HH:MM:SS8个字节TIMESTAMPYYYY-MM-DD HH:MM:SS4个字节 字符串类型:包括CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET等。 类型名称说明存储需求CHAR固定长度字符串M个字节,1<=M<=255VARCHAR可变长度字符串M+1个字节,1<=M<=255BLOB字节类型M+2个字节,M<2^16ENUM枚举类型1或2个字节数据表属于数据库,在创建数据表之前,应该使用语句“USE <数据库名>”切换到指定数据库中。如果没有选择数据库,会抛出“No database selected”的错误。 创建数据表的语法格式如下:
/*要创建的表名,不区分大小写,但不能使用SQL语言中的关键字。 数据表创建多个字段之间用逗号分开。*/ CREATE TABLE 表名 ( 字段名1 数据类型 [列级别约束条件][默认值], 字段名2 数据类型 [列级别约束条件][默认值], … … );例如:创建员工表user_emp,结构如下表:
字段名称数据类型备注idYYYY员工IDnameINT员工编号depidINT(11)所在部门编号salaryFLOAT员工工资 CREATE TABLE emp ( empno smallint unsigned, ename VARCHAR(10), job VARCHAR(9), mgr smallint unsigned, hiredate DATE, sal DECIMAL(7,2), comm decimal(7,2), deptno tinyint unsigned );修改表指的是修改数据库中已经存在的数据表的结构。MySQL使用ALERT TABLE语句修改表。
修改表名 ALERT TABLE 旧表名 RENAME [TO] 新表名; 修改字段的数据类型 ALERT TABLE 表名 MODIFY 字段名 数据类型; 修改字段名 ALERT TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型; 添加字段 ALERT TABLE 表名 ADD 新字段名 数据类型 [约束条件][FIRST|AFTER 已存在字段名]; /*“FIRST”为可选参数,其作用是将新添加的字段设置为表的第一个字段;“AFTER” 为可选参数,其作用是将新添加的字段添加到指定的“已存在字段名”的后面。*/ 删除字段 ALERT TABLE 表名 DROP 字段名;