MySQL —— 库,数据类型 与 表

库与基础操作

1.1 查看数据库

使用 show databases; 可以查看当前 MySQL 目前有多少个数据库

在这里插入图片描述
5 rows 表示有 5 行,这里是表示的是有效的数据,不包括 第一行的指引

set 表示结果集合

0.01 sec 表示这个 sql 语句一共运行了0.01 秒,一般情况下这个数值不是很准确

1.2 创建数据库

creat database (if not exists) database_name (character set charset_name) (collate collation_name);

if not exists 表示如果不存在,加了这个可以增加一些校验,
加了括号的表示是可选项,你可以写,可以不写
character set 表示字符集,我们可以指定字符集去存储字符
collate 表示排序方式

5.7 版本的MySQL 的字符集是 latin1(拉丁字符集,不支持中文字符),8.0版本支持 utf8mb4 编码(最多支持 一个字符占 4 个字节,可以保存中文字符和特殊字符例如表情包等等),不同的字符集意味着存储的字符数量不同,我们可以通过show variables like '%character%';来查看当前我们数据库默认的字符集编码

下面是 8.0 版本:
在这里插入图片描述
也就是说如果你没有指定字符集和编码方式,你创建的数据库就会默认这两种方式,所以这里强烈建议开发学习者手动去指定我们创建的数据库的字符集与排列方式。

以8.0版本为例:
字符集指定为utf8mb4 排列方式可以指定为 utf8mb4_0900_ai_ci
版本过低的MySQL可能不支持 utf8mb4 的字符集编码方式

这里解释一下 ai 与 ci
ai : accent insencitive 口音不敏感
as : assccent sencitive 口音敏感
ci : case insencitive 大小写不敏感,表示无论是大写还是小写字母都认为是小写字母
cs : case sencitive 大小写敏感
在MySQL 中是 ci 模式,所以我们编写的 sql 语句不用考虑 大小写问题,都是一样的。

演示创建数据库:

在这里插入图片描述

query ok 表示成功


在这里插入图片描述

如果我们加了 if not exists 就会加一层校验,如果你重复创建数据库,MySQL 会给你自动报个警告,所以你会看到 1 warning

如果想查看警告信息,使用show warnings;
在这里插入图片描述
它显示无法创建这个库,该库已经存在。

MySQL 创建数据库尽量不要使用 关键字,如果非要使用,在数据库的名称加上反引号【位于 esc 下方,tab 上方,1的左边,并且要保证在英文状态下】
在这里插入图片描述

如果写错sql 语句,MySQL会报错误给你:
在这里插入图片描述
sql syntax 表示的是语法出错了。

1.3 使用数据库

使用 use database_name;
最后一个分号加不加无所谓

在这里插入图片描述

1.4 删除数据库

使用drop database (if exists) database_name;
在这里插入图片描述

注意别乱删数据库,凡是数据库的删除操作请谨慎!!!三思而后行!!!!

数据类型

2.1 数值类型

数据类型大小说明对应的Java类型
bit[(M)]M指定位数,默认为1二进制数,M范围从1~ 64,存储数值范围为0 ~ 2^M -1常用Boolean 对应
tinyint1个字节Byte
smallint2个字节short
int4个字节Integer
bigint8个字节Long
float(M,D)4个字节M指定长度,D指定小数位数Float
double(M,D)8个字节Double
decimal(M,D)M/D最大值+2BigDecimal
numeric(M,D)BigDecimal

M表示长度时,长度不包括符号和小数点,如果表示的是 - 3.1415926,M的长度为 8.

常用 int 表示数量,bigint 表示一串长的编码,decimal 来存储有精度要求的带小数的数据,bool 也可以表示 tinyint 表示 二选一的选项(例如gender)

数值类型可以指定为无符号(unsigned),表示不取负数。
1字节(bytes)= 8bit。
对于整型类型的范围:
1.有符号范围:-2 ^(类型字节数8-1) 到 2 ^(类型字节数8-1)-1,如 int 是 4字节,就是 -2 ^ 31 到 2 ^31-1
2.无符号范围:0到 2 ^ (类型字节数*8)-1,如 int 就是 2 ^ 32 - 1
尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其如此,还不如设计时,将int类型提升为bigint类型。

2.2 字符串类型

数据类型大小说明对应的Java类型
varchar(size)0 ~ 65,535 个字节可变长度字符串String
text0 ~ 65,535 个字节长文本数据String
mediuntext0 ~ 16,777,215 个字节中等长度文本数据String
blob0 ~ 65,535 个字节二进制形式的长文本数据byte[]

重点是 varchar,一定要加上 (size)来指定最多可以保存多少个字符,一个英文字符或者一个中文字符都算一个字符,size 表示字符数,不考虑字符占多大字节

2.3 日期类型

数据类型大小说明对应的Java类型
datetime8个字节范围从 1000 ~ 9999 年,不会进行时区的检索与转换java.util.Date、java.sql.Timestamp
timestamp4个字节范围从 1970 ~ 2038 年,自动检索当前时区并进行转换java.util.Date、java.sql.Timestamp

datetime 只能精确到年月日,而 timestamp 可以精确到年月日时分秒,后面还有小数点。

建议使用 datatime ,因为 timestamp 到了 2038 会溢出,对我们的数据可能会造成影响,可以参考千年虫危机

需要操作数据库中的表时,需要先使用该数据库 use database_name;

3.1 创建表

语法格式:

creat table (if not exists) table_name (
 	字段名称1 数据类型,
 	字段名称2 数据类型,
 	字段名称3 数据类型
);

在编写比较长的 sql 语句或者复杂的 sql 语句的时候,可以使用可视化工具。

在数据类型后面可以加上 comment ‘注释’ 【注意这里使用的是英文的单引号】
在开发过程中,加注释是其中一个重要的环节。

演示:

create table if not exists student (
	id bigint comment '身份证号',
	name varchar(50) comment '姓名',
	class varchar(20) comment '班级'
);

在这里插入图片描述
3.2 查看表结构

使用 desc table_name;

desc 是英文 describe (描述) 的缩写

演示:

在这里插入图片描述
Filed 表示字段名称
Type 表示字段类型
NULL:是否允许为空
Key 索引类型
Default 默认值
Extra 扩充

3.3 删除表

语法格式:

drop table (if exists) table_name, table_name,...;

可以删除一个及以上的表

演示:
在这里插入图片描述

在开发中,删除表操作也要谨慎,三思而后行!!!

其他操作

使用\? 可以查看一些MySQL的基本操作:

在这里插入图片描述


使用 select version(); 可以查看当前使用的MySQL版本:

在这里插入图片描述


使用 \. sql文件路径 可以执行该 sql 文件 :

注意 . 后面要加一个空格
写完路径后,不需要加分号,直接enter 允许文件即可。

在这里插入图片描述


查看表的数量:show tables;

在这里插入图片描述

  • 31
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值