9、数据表操作

93 阅读3分钟

9.1 数据类型

MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。对于我们约束数据的类型有很大的帮助

9.1.1 数值类型
类型大小范围(有符号)范围(无符号)用途
INT4 字节(-2 147 483 648,2 147 483 647)(0,4 294 967 295)大整数值
DOUBLE8 字节(-1.797E+308,-2.22E-308)(0,2.22E-308,1.797E+308)双精度浮点数值
DOUBLE(M,D)8个字节,M表示长度,D表示小数位数同上,受M和D的约束 DOUBLE(5,2) -999.99-999.99同上,受M和D的约束双精度浮点数值
DECIMAL(M,D)DECIMAL(M,D)依赖于M和D的值,M最大值为65依赖于M和D的值,M最大值为65小数值
9.1.2 日期类型
类型大小范围格式用途
DATE31000-01-01/9999-12-31YYYY-MM-DD日期值
TIME3'-838:59:59'/'838:59:59'HH:MM:SS时间值或持续时间
YEAR11901/2155YYYY年份值
DATETIME81000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP41970-01-01 00:00:00/2038 结束时间是第 2147483647 秒北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07YYYYMMDD HHMMSS混合日期和时间值,时间戳
9.1.3 字符串类型
类型大小用途
CHAR0-255字符定长字符串 char(10) 10个字符
VARCHAR0-65535 字节变长字符串 varchar(10) 10个字符
BLOB(binary large object)0-65535字节二进制形式的长文本数据
TEXT0-65535字节长文本数据

9.2 数据表的创建(CREATE)

CREATE TABLE 表名(

列名 数据类型 [约束],

列名 数据类型 [约束],

....

列名 数据类型 [约束] //最后一列的末尾不加逗号

)[charset=utf8] //可根据需要指定表的字符编码集

9.2.1 创建表
列名数据类型说明
subjectIdINT课程编号
subjectNameVARCHAR(20)课程名称
subjectHoursINT课程时长
#依据上述表格创建数据表,并向表中插入 3 条测试语句
CREATE TABLE subject(
    subjectId INT,
  subjectName VARCHAR(20),
  subjectHours INT
)charset=utf8;
​
INSERT INTO subject(subjectId,subjectName,subjectHours) VALUES(1,'Java',40);
INSERT INTO subject(subjectId,subjectName,subjectHours) VALUES(2,'MYSQL',20);
INSERT INTO subject(subjectId,subjectName,subjectHours) VALUES(3,'JavaScript',30);

9.3 数据表的修改(ALTER)

ALTER TABLE 表名 操作;

9.3.1 向现有表中添加列
#在课程表基础上添加gradeId 列
ALTER TABLE subject ADD gradeId int;
9.3.2 修改表中的列信息
#修改课程表中课程名称长度为10个字符
ALTER TABLE subject MODIFY subjectName VARCHAR(10);
9.3.3 删除表中的列
#删除课程表中 gradeId 列
ALTER TABLE subject DROP gradeId;
9.3.4 修改列名
#修改课程表中 subjectHours 列为 classHours
ALTER TABLE subject CHANGE subjectHours classHours int ;
9.3.5 修改表名
#修改课程表的subject 为 sub
ALTER TABLE subject rename sub;

9.4 数据表的删除(DROP)

DROP TABLE 表名

9.4.1 删除学生表
#删除学生表
DROP TABLE subject;