文章目录
- 一、日期类型(继上一篇文字的数据类型)
- 二、数据库表的操作
-
- 2.1、查看数据库有什么表
- 2.2、创建数据表
- 2.3、查看表的结构
- 2.4、修改表
-
- [2.4.1、 加一个列](#2.4.1、 加一个列)
- 2.4.2、改变表中列的类型
- 2.4.3、在表中改变列的名字
- 2.4.4、在表中删除列(危险操作)
- 2.5、删表(注意这个是危险动作)
一、日期类型(继上一篇文字的数据类型)
- 上一篇文章讲了数字的类型如整型还有浮点型,和字符类型,在这里便讲时间类型
timestamp
datetime
- 这里讲到时间戳类型,那么什么是时间戳类型?
1.1、时间戳
- 我们知道我们看到的时间是形如 2026 / 7 / 29 / 11 : 45 : 25 ,这样的
这其实是格式化时间日期 ,主要是方便人来看
- 但是如果计算机也是按照这种形式来存储和处理时间的话,如果把各种数值按整型来储存,那么就会需要很多个变量。如果是用字符串来存储的话,那么计算时间时,又不方便。
所以这时就有了时间戳的这个概念
- 这时就有大佬,把1970年1月1日约定为基准,然后计算当前时刻与基准时刻的"秒数"之差,这就是时间戳
之差的单位不止秒数,还有可以是毫秒,微秒
时间戳是计算机保存时间的主流方式
- 如果是这样,就可以用一个整数变量来表示时间和日期
比如三天之后,是几号,3年前是几号都可以计算

- 可以看当前时间戳已经达17亿,而 timestamp 的取值范围是 -21亿 到 21亿 ,17亿快达到21亿了。
也就是说以后工作时要使用日期类型,要用datetime
二、数据库表的操作
- 我们知道一个服务器里面不可能只有一个数据库的。所以
- MySQL服务器里面有很多数据库,而里面的数据库又有很多的表

- 数据表中
行:每一行就是一条"数据"/"记录"
列:每一列叫做"属性"/"字段"
通常在创建表的时候,就需要定义好,这个表里面有哪些列,都叫什么名字,啥类型
- 使用use选中数据库,是进行所有表操作的前提条件
2.1、查看数据库有什么表
- 在此之前应该选定数据库
sql
show tables;
- 查看库里有多少表 ,用 show
- 因为库里不知道有多少个表,一般来说都有很多表,所以这里的 table 用复数
2.2、创建数据表
sql
create [temporary] table [if not exists] 表名(列名 类型 ,列名 类型,...)[charset...] [engine 存储引擎];
- 创建数据表使用 create
- " "的意思是可有可无
- temporary 的作用是指明这个表是不是临时表,如果不是临时表就是储存在硬盘上。如果是临时表就不会存储在硬盘上,即断电就会消失
- if not exists 的作用是 检查你所创建的表的名字在数据库里是否重复,不重复则创建,重复则不作为。(如果没有这段语句,如果重名的话,程序便中止并报错)
- charset 的作用是指定字符集,如果在创建数据库的时候指定了,这里就默认跟数据库所指的一样
- engine 的作用是指定存储引擎,一般默认的是Innodb
- 注意这里是列名,然后才类型,和我们之前所学的 Java / c 不一样(类型 变量名)
- 在MySQL中,表名和列名 需要两个单词时,使用的是蛇形命名法, 如( class_id )
Java 使用的是驼峰命名法如 ( classId ) 主流方式
- 这个类型和类型的长度,在我们工作时,由产品经理给我们,不是随便写
- 什么是存储引擎?
我们知道MySQL数据库,本体是服务器。MySQL的服务器,是一个很复杂的软件。包含很多个功能模块,其中一个模块就是存储引擎。主要是负责数据如何在硬盘上进行存储。MySQL提供了很多存储引擎。通常默认使用Innodb
2.3、查看表的结构
sql
desc 表名;
查看使用 desc
- 效果如下

表中的 Null 的意思 是 这一列 是否可以为空 (是否可以不填)
C语言中,null 的意思是空指针
Java 中,null 的意思是空引用
2.4、修改表
sql
alter table 表名 动作
修改使用 alter
2.4.1、 加一个列
sql
alter table 表名 add 列名 列类型
加列 用 add
- 我要在 student 这个表中的 id 这个列的后面加一个名为 class_id 的列
有个 student 表,表中有 name 和 id 俩个列
sql
alter table student add class_id int after id;
- 在 id 之后,用 after
- 效果如下

2.4.2、改变表中列的类型
sql
alter table 表名 modify 要改类型的列名 改成的类型
改类型用 modify
- 我要在 student 这个表中把class_id 的类型 改为 bigint
sql
alter table student modify class_id bigint;
- 效果如下

2.4.3、在表中改变列的名字
sql
alter table 表名 rename column 要改的列名 to 列的新名;
给列改名字使用 rename column to
- 我要在 student 这个表中,把class_id 这个列名改为 classId
sql
alter table student rename column class_id to classId;
- 效果如下

2.4.4、在表中删除列(危险操作)
sql
alter table 表名 drop 列名;
- 删除某一列,用drop
- 注意这个是危险动作,删了数据也就不见了
- 我要在 student 这个表中删除class_id 这个列
sql
alter table student drop class_id;
- 效果如下

2.5、删表(注意这个是危险动作)
sql
drop table 表名;
- 删表要用 drop
- 注意这个动作是危险动作,要慎重
