连接服务器:mysql -h 127.0.0.1 -P 3306 -u root -p
-h 后面指定MySQL服务器地址 -P 后面指定端口 -u 后面指定用户名 -p 后面跟随密码
一. 库的操作
1. 创建
创建数据库
语法:
create database 【数据库名】;
当我们没有指定数据库的字符集和校验规则时,系统默认的字符集是 utf8 ,校验规则是 utf8_general_ci。

例如我们这里要指定字符集和校验规则创建库我们可以这样

2. 修改
我们想要修改库的话首先得知道我们有什么库
show databases;
这串指令可以将现有的库列出
效果:

此时我们需要选择进入一个数据库。
语法:
use 【数据库名】;
我们修改库通常是修改它的字符集和校验规则
语法:
alter database 【数据库】 【更改的字符集和校验规则】;
效果:

3. 删除
语法:
drop database 【数据库】;
效果:

数据库本质就是一个文件,里面的库就是数据库文件内部的一个子文件。数据这个子文件会连带着整个库内部的文件跟着一块删除,所以非轻易不要删除库。
4. 备份
如果确实是需要删除库,那么删除之前需要进行一下备份。
语法:
mysqldump -h 【IP】 -P 【端口】 -u 【用户】 -p 【库名称】 > 【目标路径】/【目标文件名】.sql
若我们想要还原
语法:
source 【文件路径】/【文件名】
二. 表的操作
1. 创建
语法:
create table 【表名称】(
【列名】 【类型】 comment 【'注释'】,
【列名】 【类型】 comment 【'注释'】
);
效果:

tip:创建表首先得选择库进入
2. 修改
我们首先查看表结构
语法:
desc 【表名】;
效果:

field 为字段名字,type 是字段类型,NULL 为约束条件,key 索引
若我们想给表中添加新的字段
语法:
alter table 【表名】 add 【新字段】 【新类型】 【新备注】;
效果:

若我们想给表中添加样例
语法:
insert into 【表名】 values(【表的字段类型】);
这里我们插入两条样例
效果:

若我们想改变表中字段的数据类型
语法:
alter table 【表名】 modify 【字段】 【新类型】;
效果:

若我们想删除某一列
语法:
alter table 【表名】 drop 【列】;
效果:

这里我们删除了某一列后,对应先前添加进去的实例也会删除掉对应的列
若我们想更改表名或者更改表内的字段名
语法:
alter table 【旧表名】 rename 【新表名】;
alter table 【当前表名】 change 【旧字段名】 【新字段名】 【数据类型】;
效果:

3. 删除
语法:
drop table 【表名】;
效果:

三. 数据类型
1. 数据类型分类

2. 数值类型
(1)整数类型
tinyint 的取值范围在 -128 - 127 之间。smallint 的取值范围在 -32768 ~ 32767。mediumint 的取值范围在 -8388608 ~ 8388607。int 的取值范围在 -2147483648 ~ 2147483647。bigint 的取值范围在 -9.22×10¹⁸ ~ 9.22×10¹⁸
不同的数值类型存在的意义在于,可以按需匹配数值范围,有效的节省空间。
(2)bit
bit(n):位字段类型,n表示位数,默认为1,最大为64.
bit 字段在显示时是按照 ASCILL 码的形式显示的。
3. 小数类型
(1)float
float(m,d),m指定显示长度,d指定小数点后的精确位数
当前我们假设 float(4,2)
那么此时就是4位长度,2位精度值
例子1:输入10.986,此时会进行四舍五入得到的结果为 10.99
例子2:输入99.996,此时倘若四舍五入会变成100,与原先的4位不符合,数据库不允许输入
(2)decimal
decimal(m,d),m指定显示长度,d指定小数点后的精确位数
同为小数类型,与float有何区别呢?
float 采用二进制的科学计数法存储,decimal 采用十进制的存储方式将数字解析为字符串
float 会存在精度丢失当小数点后位数多的情况下,而decimal不会
float 一旦创建就不能更改储存大小,decimal 则可以动态的更改大小(m-d+1)
float 运算速度快因为是固定的储存,decimal 灵活但需要的运行时间多
4. 字符串类型
(1)char
char(l),l 是固定的存储长度,最大为255
char(2)
可以存放两个字符,可以是英文也可以是汉字
(2)varchar
varchar(l),l 是可变长的字符串长度,最长为 65535
关于varchar(len),len到底是多大,这个len值,和表的编码密切相关:
varchar长度可以指定为0到65535之间的值,但是有1 - 3 个字节用于记录数据大小,所以说有效字节数是65532。
当我们的表的编码是utf8时,varchar(n)的参数n最大值是65532/3=21844[因为utf中,一个字符占 用3个字节],如果编码是gbk,varchar(n)的参数n最大是65532/2=32766(因为gbk中,一个字符 占用2字节)。
5. 日期和时间类型
日期类型有三个:
date,datetime,timestamp
date:日期 yyyy-mm-dd 只存在年月日
datetime:日期加上具体的时分秒 yyyy-mm-dd hh:mm:ss
timestamp:这是时间戳,记录当前的年月日时分秒
6. enum 和 set 类型
两个都为枚举类型
enum:枚举为单选
set:枚举可以多选