原文在我的 Github 上,欢迎订阅。
前言
本人想学数据库了,于是有了这个Mysql
系列。
本系列主要用于本人学习Mysql
的记录,我把它当做学习笔记。
没有从安装数据库及用户新增和权限分配等知识开始,而是侧重于Mysql
表操作、数据增删改查及其他相关知识。
为学习方便,以下将以student
(学生表)、class
(班级表)、lesson
(课程表) 为导向进行学习。
另外,本人所用可视化工具是Navicat Premium
还有一点:该篇文章用到一些简单的数据类型字段,如:INT、TINYINT、VARCHAR 只需知道它是数字类型和字符串类型。
关于数据类型请看《数据类型》。
建表
建表通用语句:
CREATE TABLE table_name (column_name column_type);
翻译过来就是:CREATE TABLE 表名 ( 字段名 字段类型等 );
建立 student 表
使用上面通用语句来建学生表:
CREATE TABLE student (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增主键',
student_name VARCHAR(30) COMMENT '学生姓名',
age TINYINT DEFAULT 0 COMMENT '年龄',
sex CHAR(5) NOT NULL DEFAULT '0' COMMENT '性别',
create_time timestamp DEFAULT CURRENT_TIMESTAMP()
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
运行上面 sql 后,建表成功:
分析一下建表语句,先看除字段以外的部分:
CREATE TABLE student (
...
) ENGINE=InnoDB DEFAULT CHARACTER=utf8;
ENGINE=InnoDB DEFAULT CHARACTER=utf8;
是数据库默认的可以不用写,但作为新手应该知道,这句是指:数据库引擎使用的是InnoDB
, 默认的字符编码是utf8
。
下面再来看看字段定义部分:
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增主键',
student_name VARCHAR(30) COMMENT '学生姓名',
age TINYINT DEFAULT 0 COMMENT '年龄',
sex CHAR(5) NOT NULL DEFAULT '0' COMMENT '性别',
create_time timestamp DEFAULT CURRENT_TIMESTAMP()
- id: 字段名称
- INT: 字段数据类型
- PRIMARY KEY: 将该字段设为主键
- AUTO_INCREMENT:自增
- COMMENT:为该字段添加注释,后面的字符串为注释内容
- DEFAULT: 默认值
- CURRENT_TIMESTAMP(): 当前时间
总结一下公式大概就是:字段名称 + 字段类型 + [ 默认值、主键设置、自增、注释...... ]
[ ]
内为可选项
以上是建表时常用的命令,[]
内的......
表示还有其他命令,但上面对我这个入门者已经够了。
注意:建表时还需要考虑表之间的关联和 foreign key
(外键) ,这里暂时不介绍,后面会有章节专门来说这块。
改表
表是建好了,但随着开发进行 之前建好的表很可能不满足未来需求,所以对表的修改是必须的
同样,修改表也有通用语句:
ALTER TABLE <表名> [修改选项]
下面是修改选项语法
添加字段:
ADD COLUMN <列名> <类型> ...
修改字段名:
CHANGE COLUMN <旧列名> <新列名> <新列类型> ...
优化(修改)字段类型
MODIFY COLUMN <列名> <类型> ...
删除字段
DROP COLUMN <列名> ...
修改表名
RENAME TO <新表名>
对于 MODIFY
和 CHANGE
可能有疑问,这里说明下:MODIFY
主要用于修改字段类型等,不能修改字段名称,而CHANGE
是把旧字段换成新字段 当然也可以修改字段类型。
简单来说MODIFY
是对原有字段做类型修改,CHANGE
是直接将整个字段换掉 包括类型等
添加字段
下面动手操作一把,首先是对表添加字段:
ALTER TABLE student ADD COLUMN hobby VARCHAR(100);
上面语句为 student
表添加了一个字段hobby
(爱好) ,该字段数据类型是字符串(100字符)。
下图表示 hobby 字段添加成功:
使用 CHANGE 修改字段
ALTER TABLE student CHANGE COLUMN hobby hobby_num TINYINT;
上面语句将旧字段 hobby
替换成新字段 hobby_num
字段类型为数字类型;
执行完后的结果如下:
使用 MODIFY 修改字段类型
上面说过,MODIFY
不能修改字段名,一般用于修改字段类型等操作,下面我们把刚才的hobby_num
从数字类型改为字符串类型:
ALTER TABLE student MODIFY COLUMN hobby_num VARCHAR(30);
可以看到,类型已经成功修改为VARCHAR
类型。
删除字段
删除字段非常简单,这里我们删除 hobby_num
字段:
ALTER TABLE student DROP COLUMN hobby_num;
执行成功,下图中 hobby_num 已经被删除:
修改表名
修改表名的操作频率非常低,但还是要知道一下。
我们把 student
表名改为 students
:
ALTER TABLE student RENAME students;
执行后可以看到,表名已经修改成功:
删表
删表的操作除了在学习中常用到,真正在开发中操作频率也非常低。
删表语句如下:
DROP TABLE table_name;
我们把 students
表给删了:
DROP TABLE students;
看下结果:
OK,表没了...没了...了...
总结
本篇学习了:
- 如何创建表
- 对表名进行更改、表字段进行增删改操作
- 对表进行删除操作
可能的疑惑:
建表的时候用了很多数据类型,光数字类型就出现了INT
、TINYINT
,字符串类型出现了CHAR
、VARCHAR
。
所以下篇文章我们来学习《数据类型》来了解它们。