详解MySQL下表的创建与销毁

Posted 玄鸟轩墨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详解MySQL下表的创建与销毁相关的知识,希望对你有一定的参考价值。

序言

这个博客承接详解MySQL中数据库的创建,来看看有关表的知识点,不过我们要先学一点其他的

数据类型

我们学过很多语言,里面都有关数据类型的分类,SQL语言自然也是有的,它分为三大类。

  • 数值类型
  • 字符类型
  • 日期类型

为何要有数据类型

这是一个很好很基本的问题 ,它放映了存在的原因,想一想当我们在表格中会输入什么

数据类型怎么用

我们都知道每一个数据类型都有它的范围,这个范围指的是表格中数据的大小,那我们应该怎么使用,这个可能和我们之前的理解不太一样

int(11)的作用

这表示这一列存放的数据是int型,最多可以存放11位的数字

数值类型

这个简单,我们知道int 、float、 double在这里都有,不过它也添加了许多其他的,下面我就一一给出,由于它是规定的,我们也没有太多话可以说

我们给出数值类型是为了可以进行算数运算,比如说年龄 ,我们是可以将它定义为字符类型的,但是我们知道每过一个生日,我们的年龄 + 1,可以看出数据类型比较好处理

分类

类型大小说明
tinyint1字节有/无符号
smallint2字节有/无符号
mediumint3字节有/无符号
int4字节有/无符号
bigint8字节有/无符号
float4字节有/无符号
double8字节有/无符号
decimal第一参数 + 2整数位+小数位<=指定的位数

常用的数值类型

  • 整型 int
  • 浮点型 double

说一下decimal

我们知道,当我们使用double型时,有时候会带有很多位小数,比如说3.900000,很不舒服,所以就出现了decimal,它只会有2位小数

decimal(10,2)表示数值位有10位,小数位有2位

字符类型

这里的字符类型有些多,我们只需记住几个常用的就行,后面遇到可以查表

分类

类型大小说明
char255字节定长字符串,char(n)n<=255
varchar65536字节变长字符串
tinyblob255字节存储二进制字符串
blob65536字节存储二进制字符串
mediumblob1677215字节存储二进制字符串
longblob4,294,967,295字节存储二进制字符串
tinytext255字节文本数据
text65536字节文本数据
mediumtext1677215字节文本数据
longtext4,294,967,295字节文本数据

char(10)和varchar(10)的区别

  • char(10)表示我们只能输入10个字符,如果输入小于10,则自动补充’\\u0000’至10个字符
  • varchar(10)表示我们可以输入<=10的字符,不够的空格自动补齐

日期类型

我们要说一下,日期类型不是也可以用字符串来表示吗?实际上可以的,不过存在一个问题,在数据库中,我们有时候要求基于时间字段进行查询,这就不太好了,所以特地出现了日期类型

分类

类型说明格式
date只能存储年月日2021-01-23
time只能存储时分秒11:23:56
year只能存储年份2021
datetime能存储年月日,也可以存储时分秒,空格隔开2021-01-23 11:23:56
timestamp能存储年月日,也可以存储时分秒 时间戳20210123 112356

创建表

我们正式开始如何创建一个表格

mysql> use db_fmsc;//进入db_fmsc数据库

创建

下面我写一行伪代码,解释一下没有出现过的名词

mysql> create table students(
    -> stu_name varchar(8) not null,
    -> stu_sex char(2) not null,
    -> stu_age int not null,
    -> stu_tele char(11) not null unique
    -> );


下面我要解释一下我们的名词

not null

not null意味着这列是必填项,不能为空

unique

unique表示这一列的数据两两不同

查询数据表

mysql> show tables;

打印数据表

mysql> desc students;

修改表

修改表名

mysql> alter table students rename to stu_test;

修改表的字符集

数据表也是有字符集的,默认和数据库一置

mysql> alter table stu_test character set utf8;

增加一个字段

mysql> alter table stu_test add stu_qq char(11) unique;

销毁表

mysql> drop table if exists stu_test;

以上是关于详解MySQL下表的创建与销毁的主要内容,如果未能解决你的问题,请参考以下文章

mysql外键详解

MySQL 索引相关知识详解

带头链表的创建和销毁

子查询与关联查询区别

顺序表的基本创建及增删改查修和销毁

mysql数据库表之间是怎么关联的?请详解