原文在我的 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 <新表名>

对于 MODIFYCHANGE可能有疑问,这里说明下: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,表没了...没了...了...

总结

本篇学习了:

  1. 如何创建表
  2. 对表名进行更改、表字段进行增删改操作
  3. 对表进行删除操作

可能的疑惑:
建表的时候用了很多数据类型,光数字类型就出现了INTTINYINT,字符串类型出现了CHARVARCHAR

所以下篇文章我们来学习《数据类型》来了解它们。


alwaysVe
1.9k 声望162 粉丝

前进