MySQL数据表的操作 与 SQL的数据类型
Posted 玄鸟轩墨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL数据表的操作 与 SQL的数据类型相关的知识,希望对你有一定的参考价值。
@TOC
写在前面
使用数据库
我们刚开始进入数据库是在主页面中,我们需要进入到某一个数据库
我们使用下面语句
use <数据库名>
数据类型
我们要使用数据库,还要创建数据表,而创建数据表就需要学习SQL语言的中的数据类型
- 数值类型
- 字符串类型
- 日期类型
为何要有数据类型
数据类型怎么用
数值类型
分类
这些种类的名字很奇怪,原因是因为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
字符类型
分类
类型 | 大小 | 说明 | 对应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
);
非空约束 not null
唯一约束 unique
查询数据表
我们可以使用下面的语句查询一个数据库下所有的表
mysql> show tables;
查询表结构
mysql> desc <表名>;
修改表
当我们突然意识到我们的一张表创建有一些问题时,除了删除外,我们也可以在原来的基础上进行修改
修改表名
mysql> alter table students rename to stu_test; -- to 也可以省略
修改表的字符集
mysql> alter table stu_test character set utf8;
增加一个字段
mysql> alter table stu_test add stu_qq char(11) unique;
删除一个字段
mysql> alter table students drop stu_num;
删除
删除表
mysql> drop table if exists stu_test;
以上是关于MySQL数据表的操作 与 SQL的数据类型的主要内容,如果未能解决你的问题,请参考以下文章