目录

  • 写在前面
  • 使用数据库
  • 数据类型
  • 为何要有数据类型
  • 数据类型怎么用
  • 数值类型
  • 分类
  • 说一下decimal
  • 字符类型
  • 分类
  • char(10)和varchar(10)的区别
  • 日期类型
  • 分类
  • 创建表
  • 创建
  • 非空约束 not null
  • 唯一约束 unique
  • 查询数据表
  • 查询表结构
  • 修改表
  • 修改表名
  • 修改表的字符集
  • 增加一个字段
  • 删除一个字段
  • 删除表


写在前面

我在上一篇博客写了如何创建一个数据库,今天我们就来看看数据库是如何使用的🍅

使用数据库

我们刚开始进入数据库是在主页面中,我们需要进入到某一个数据库

mysql 设置字段用decimal类型的sql怎么写 mysql中decimal(5,2)_数据类型

我们使用下面语句

use <数据库名>

mysql 设置字段用decimal类型的sql怎么写 mysql中decimal(5,2)_database_02

数据类型

我们要使用数据库,还要创建数据表,而创建数据表就需要学习SQL语言的中的数据类型

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

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

为何要有数据类型

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

mysql 设置字段用decimal类型的sql怎么写 mysql中decimal(5,2)_数据库_03

数据类型怎么用

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

数值类型

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

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

分类

这些种类的名字很奇怪,原因是因为SQL语言很久之前就出现了,后面的名字就没有修改

类型

大小

说明

对应Java类型

tinyint

1字节

Byte

smallint

2字节

Short

int

4字节

Integer

bigint

8字节

Long

float(M,D)

4字节

单精度,M指定长度,D指定小数点后几位,会有精度损失

Float

double(M,D)

8字节

Double

decimal(M,D)

M/D最大 值+2

双精度,M指定长度,D指定小数点后几位,精确值

BigDecimal

注意也可以加上 unsigned 变成无符号的,不过不推荐

常用的数值类型

  • 整型 int
  • 浮点型 double(M,D) 和 decimal(M,D)

说一下decimal

我们知道,当我们使用double型时,有时候会带有很多位小数,比如说3.900000,很不舒服,所以就出现了decimal,它只会有2位小数,decimal的精度很高,我们用于更正确的计算

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

字符类型

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

分类

类型

大小

说明

对应Java类型

char

0 ~ 255字节

定长字符串,char(n)n<=255

String

varchar(SIZE)

0 ~ 65536字节

变长字符串

String

blob

0 ~65536字节

存储二进制字符串

byte[]

mediumblob

0 ~16777215字节

存储二进制字符串

String

text

0 ~65536字节

长文本数据

String

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

创建表

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

创建

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

注意我们创建数据表时,字段名在前,类型在后, 要是我们的表名于SQL语句冲突,我们使用 反引号 将其括起来,就可以了

反引号 位于tab健上面,Esc健下面 1的左面

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
 );

mysql 设置字段用decimal类型的sql怎么写 mysql中decimal(5,2)_数据类型_04


mysql 设置字段用decimal类型的sql怎么写 mysql中decimal(5,2)_数据库_05

下面我要解释一下我们的名词,他们都是约束条件,这两个约束我们也可以不写,就是没有了我们想要的限制,这只是其中的两个约束,后面还有其他的的约束

非空约束 not null

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

唯一约束 unique

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

查询数据表

我们可以使用下面的语句查询一个数据库下所有的表

mysql> show tables;

mysql 设置字段用decimal类型的sql怎么写 mysql中decimal(5,2)_数据库_06

查询表结构

mysql> desc <表名>;

mysql 设置字段用decimal类型的sql怎么写 mysql中decimal(5,2)_数据库_07

修改表

当我们突然意识到我们的一张表创建有一些问题时,除了删除外,我们也可以在原来的基础上进行修改

修改表名

mysql> alter table students rename to stu_test; -- to 也可以省略

mysql 设置字段用decimal类型的sql怎么写 mysql中decimal(5,2)_mysql_08

修改表的字符集

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

mysql> alter table stu_test character set utf8;

mysql 设置字段用decimal类型的sql怎么写 mysql中decimal(5,2)_mysql_09

增加一个字段

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

mysql 设置字段用decimal类型的sql怎么写 mysql中decimal(5,2)_mysql_10

删除一个字段

alter table 数据表名 drop 字段名

mysql> alter table students drop stu_num;

删除前

mysql 设置字段用decimal类型的sql怎么写 mysql中decimal(5,2)_数据库_11

删除

删除后

mysql 设置字段用decimal类型的sql怎么写 mysql中decimal(5,2)_数据类型_12

删除表

mysql> drop table if exists stu_test;

mysql 设置字段用decimal类型的sql怎么写 mysql中decimal(5,2)_数据类型_13