MySQL 2021 11 20

关于库的知识

1.在不同的面板进行库的创建

1.1在workbench 上面进行创建数据库(图像化的操作面板)

1.2在sql

CREATE SCHEMA db_11_20 DEFAULT CHARACTER SET utf8mb4;

2.关于 删除库的操作

2.1 workbench操作 drop DATABASE db_11_20;

2.sql

——关于删库的操作引申

drop、delete 与 truncate 区别?

用法不同

  • drop(丢弃数据): drop table 表名直接将表都删除掉,在删除表的时候使用。

  • truncate (清空数据) : truncate table 表名 ,只删除表中的数据,再插入数据的时候自增长 id 又从 1 开始,在清空表中数据的时候使用。

  • delete(删除数据) : delete from 表名 where 列名=值,删除某一列的数据,如果不加 where 子句和truncate table 表名作用类似。

truncate 和不带 where 子句的 delete、以及 drop 都会删除表内的数据,但是 truncate 和 delete 只删除数据不删除表的结构(定义),执行 drop 语句,此表的结构也会删除,也就是执行 drop 之后对应的表不复存在。

属于不同的数据库语言

truncate 和 drop 属于 DDL(数据定义语言)语句,操作立即生效,原数据不放到 rollback segment 中,不能回滚,操作不触发 trigger。而 delete 语句是 DML (数据库操作语言)语句,这个操作会放到 rollback segement 中,事务提交之后才生效。

DML 语句和 DDL 语句区别:

  • DML 是数据库操作语言(Data Manipulation Language)的缩写,是指对数据库中表记录的操作,主要包括表记录的插入(insert)、更新(update)、删除(delete)和查询(select),是开发人员日常使用最频繁的操作。

  • DDL (Data Definition Language)是数据定义语言的缩写,简单来说,就是对数据库内部的对象进行创建、删除、修改的操作语言。它和 DML 语言的最大区别是 DML 只是对表内部数据的操作,而不涉及到表的定义、结构的修改,更不会涉及到其他对象。DDL 语句更多的被数据库管理员(DBA)所使用,一般的开发人员很少使用。

执行速度不同

一般来说:drop>truncate>delete(这个我没有实际测试过)

关于字符编码的知识

1.利用一张不重复的表格,建立字符与数据的一一对应的关系

建立编码表 (encoding table)

eg:针对英语使用群体的表的制定 ASCLL (American Standard Code For Information Interchange) 最后的对于其他语言发明使用了Unicode 当然 包含 ASCLL

//但是Unicode 并不是真正储存的在硬盘上的 编码

for 节省空间 采用了其他的编码语言 例如 utf-8是中文使用的编码。//

所以也就是 当使用了 utf-8 背后就必然是unicode 的编码了。

并且字符集的依据传导性的原理 要求链条上人人不能出错。

而使用统一的字符集编码 则是最简单的方法。

MySQL 的字符继承规则

//之前的 utf-8不适合emoji字符

而在之后推出的 utf-8mb4 支持全部字符

因此进行建库的操作时 字符集的编码默认使用utf8mb4//

库的字符集——表的默认字符集——字段的默认字符集

1.当正向操作的时候设置了 库的字符集之后 那么之后的表的 以及字段的编码 字符集也是 同样

反之 ,先进行表的字符集 或者字段的编码的创建的话 那么上一个等级 的字符集 不会随之更改

如果要进行字符集的 的修改 最好直接进行删库的操作 而不是逆序的改字符集。

字符集具有传递性:要求从 client service的字符集 表意相同不至于乱码和出现错误

关于表的操作

数据的类型

1数值类型 :整型 和非整型

整型:

int (此时的数据类型不区分大小写)

tinyint < smallint <int <bigint

浮点(有精度损失的小数):

float<double

带有精度的小数

decimal、numeric

2.

2.1字符串类型/二进制数据

char vachar 80%的应用场景

定长 和 非定长的区别

char 长度为4个字符(不是字节)的数据类型 无论什么长度都占用4个字符 一个字符的长度为2个字节 一个字节8位

varchar 则不定长 最多为四个字符

字符串更长的情况 text

smalltext < text < longtext

2.2二进制的数据类型(声音 图像)

blob (Binary LArge OBject) 较大的二进制对象

blob < longblob

3.时间的数据类型

(凡是涉及到时间,都有一个很重要的概念:时区(timezone)

我们的时区 东+8时区

//概念:时间戳timestamp 从1970-1-1 开始经过的秒数(格兰维治时区)优点:占用空间小 缺点: 时间跨度小 1970-2036

//

date

time

datetime

timestamp

对于数据中的时间则使用字符串来表示

“2021-11-20 10:02:02”

在MySQL的语法之中使用 单引号(‘)或(“)都可表字符串

重点数据类型: int\varchar\text\blob\date\time\datetime

约束(constrait):用来约定字段数据的范围,支持那些数据,不支持那些数据。

PK\NN\UQ\AI\DEFAULT\COMMENTS

PK 主键

NN 不能为null

UQ 唯一的,不能重复的信息

B 二进制的方法显示

UN 无符号

ZF 用“0”填充显示

AI 自增

G 暂无用途

default/express 该字段的默认值

comment 该字段的描述

1.主键 PK

关系型数据库要求 对于一张表,必须有主键

主键:一条的记录的唯一标识 ,不能重复

通过主键,一定可以唯一确定一条记录

//

例如身份证号 学号 卡号

而在实际的生活之中 还可以利用几个字段的联合,来确定一条唯一的记录。

例如一个地址//

TCP连接:五元组(协议+源ip+源port+目标ip+目标port)

实操之中,建议,主键(PK)使用int bigint

配合 AI使用

NN

不许为空

1.关于对于NN的理解 一般代表该字段的不可知,不可记录

关于null&&Default的四种情况的讨论

ps:

UQ

该字段的值不可以重复

Default

insert 某一个值为一个新字段时。

要么,为字段的插入值,要么该字段有默认值。

ID 自增视为有默认值

几种情况的讨论 关于insert

库、表、字段 都支持comment 为了说明用途

表的结构

名称+数据类型+约束

practice

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值