Mysql随心记--第一篇

MylSAM:查询速度快,有较好的索引优化和数据压缩技术,但是它不支持事务

InnoDB:它支持事务,并且提供行级的锁定,应用也相当广泛

docker ps -a --filter "ancestor=mysql"

查看linux中创建了多少个docker容器下的mysql(只查看当前运行的去掉-a)

docker start <容器名称或容器ID>

启动容器下的mysql

docker run -d --name <容器名称> --restart always -e MYSQL_ROOT_PASSWORD=<密码> mysql

设置容器下的mysql自启动--restart always

docker exec -it my_mysql_container mysql -u root -p

使用该命令进入容器下的mysql

systemctl start docker

启动docker服务

多行注释:/*   */

单行注释:--

mysql注释:#

wildcard:

%:任意多个任意字符

_:单个任意字符

#如何查看当前使用的数据库

Select database();

#使用数据库

Use db_name;

Collation:校对规则:排序的规则

#字符集的名字

#国家/general通用

Ci:忽略大小写  a,A

Cs:不忽略大小写  a,A

bin:按二进制编码进行排序

utf8mb4_general_ci

在创建数据库的时候,就可以指定数据库的字符集和校对规则

表操作:

创建表(指定有哪些列以及它的类型)

在表这个级别设置存储引擎,默认的存储引擎:innoDB

也可以指定字符集:默认使用数据库的字符集

chat做笔记(utf-8):

mysql修改字符为utf-8
ChatGPT
要将MySQL中的字符集修改为UTF-8,您需要考虑两个方面:连接字符集和数据库/表字符集。
连接字符集: 这会影响到会话中的字符集。您可以使用以下命令来修改连接字符集为UTF-8:
sql
SET NAMES utf8;
或者,使用以下命令也可以实现相同的效果:
sql
SET CHARACTER SET utf8;
数据库/表字符集: 如果您想要更改数据库或表的字符集,您需要运行相应的ALTER语句。例如,如果您要将数据库的字符集更改为UTF-8:
sql
ALTER DATABASE 数据库名 CHARACTER SET utf8;
如果要将表的字符集更改为UTF-8:
sql
ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8;
请注意,更改数据库或表的字符集可能需要一些时间,特别是如果表中有大量的数据。在执行这些更改之前,请务必备份重要的数据以防万一。此外,请确保您的MySQL服务器支持UTF-8字符集。在创建数据库服务器或安装MySQL时,您可以选择字符集设置。如果服务器不支持UTF-8,您可能需要考虑更新MySQL的配置或重新安装服务器。最后,请根据您的实际情况谨慎操作,因为更改字符集可能会影响数据存储和应用程序的功能。

Mysql数据类型:

在Mysql中,有三种主要的类型:文本、数字和日期/时间类型

char和varchar都是字符串:255,varchar>255-->text

char(数量):char(100)--> str

Name char(100) -->zhangsan-->name长度100

Varchar(100)--->zhangsan---> name:8

Text:文本(大容量的字符串)

Tinytext:255

Text:存放最大长度为65535个字符的字符串

Mediumtext:存放最大长度为16777215个字符的字符串

longtext:存放最大长度为4294967295个字符的字符串

BLOB:二进制文本,单位是字节

Blob:65535

mediumBlob:16777215

Longblob:4294967295

ENUM:枚举

ENUM:{"item1","item2","item3"}

SET(item1,item2,item3):集合

无序不重复:item1,item1-item2,item1-item2-item3

数字类型:

Int

Tinyint(size):-128-127->2^8->-128-127是因为有一个符号2^7 = 128-> 1byte

Smallint(size):2^16-1==>65535 无符号,有符号-2^15 -2^15-1

Mediumint(size):2^24=>

Int(size):2^32

Bigint(size):2^64

Double:双精度的浮点数

Float:浮点数 小数

declimal:字符串存储的double类型

格式:(size,d) size:总长度

d:小数点后面位数

日期类型:

Unix世纪元年:1970.1.1 00:00:00

整数值或者小数值

一天为单位的:即现在距1970年1月1日多少天

秒:距离1970年1月1日多少秒

毫秒:距离1970年1月1日多少毫秒

date类型:

YYYY-MM-DD

DATEIME()

YYYY-MM-DD HH:MM:SS

TIMESTAMP():时间戳

TIMESTAMP值用Unix纪元('1970-01-01 00:00:00 UTC')至今的描述来存储

YYYY-MM-DD HH:MM:SS 2038

TIME():时间

约束条件:

NOT NULL:非空

UNIQUE:唯一键

PRIMARY:主键

FOREIGN KEY:外键

CHECK:检查

你可能感兴趣的:(mysql,数据库)