学习MySQL教程参考链接
DOS命令完成mysql登入
MySQL相关命令


举例:
Server characterset 是数据库服务器的编码
Db characterset 是数据库的编码
Client characterset 是客户端的编码
Conn. characterset 是建立连接使用的编码
修改MySQL客户端的字符集编码
set character_set_client=gbk
[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated c
解决参考链接:https://blog.csdn.net/u012187452/article/details/82120345
修改配置文件my.ini
查看数据库的存储地址 SELECT @@datadir

[mysql] sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
将上面的代码添加到D:\phpstudy_pro\Extensions\MySQL5.7.26\data\my.ini的文件中
int(11)代表什么意思

对于int类型的一些基础知识其实上图已经说的很明白了,在这里想讨论下常用的int(11)代表什么意思,很长时间以来我都以为这代表着限制int的长度为11位,直到有天看到篇文章才明白,11代表的并不是长度,而是字符的显示宽度,在字段类型为int时,无论你显示宽度设置为多少,int类型能存储的最大值和最小值永远都是固定的,这里贴一些原文片段
The number in the parenthesis does not determines the max and min values that can be stored in the integer field. The max and min values that can be stored are always fixed. The display width of the column does not affects the maximum value that can be stored in that column. A column with INT(5) or INT(11) can store the same maximum values. Also, if you have a column INT(20) that does not means that you will be able to store 20 digit values (BIGINT values). The column still will store only till the max values of INT.
那么照文中所说,所以无论怎么设置int类型的显示宽度,int所能存储的最大值和最小值是固定的,那么这个显示宽度到底有什么用呢?
当int字段类型设置为无符号且填充零(UNSIGNED ZEROFILL)时,当数值位数未达到设置的显示宽度时,会在数值前面补充零直到满足设定的显示宽度,为什么会有无符号的限制呢,是因为ZEROFILL属性会隐式地将数值转为无符号型,因此不能存储负的数值。
具体用以下代码解释。
首先创建一张表: CREATE TABLE int_demo ( id INT(11) NOT NULL AUTO_INCREMENT, a INT(11) NOT NULL, b INT(11) UNSIGNED ZEROFILL NOT NULL, c INT(5) DEFAULT NULL, d INT(5) UNSIGNED ZEROFILL NOT NULL, e INT(15) DEFAULT NULL, PRIMARY KEY (
id) ) 插入两条数据 INSERT INTO int_demo (a, b, c, d, e) VALUES (1, 1, 1, 1, 1); INSERT INTO int_demo (a, b, c, d, e) VALUES (1234567890, 1234567890, 1234567890, 1234567890, 1234567890); select * from int_demo;
| id | a | b | c | d | e |
|---|---|---|---|---|---|
| 1 | 1 | 00000000001 | 1 | 00001 | 1 |
| 2 | 1234567890 | 01234567890 | 1234567890 | 1234567890 | 1234567890 |
注释:如果用navicate软件查询出来并不会显示左边的0,但把数据导出时可看到真实的数据,猜测是软件对数据格式进行了处理
从上个例子我们可以得出以下几个结论:
- 如果一个字段设置了无符号和填充零属性,那么无论这个字段存储什么数值,数值的长度都会与设置的显示宽度一致,如上述例子中的字段b,插入数值1显示为00000000001,左边补了10个零直至长度达到11位;
- 设置字段的显示宽度并不限制字段存储值的范围,比如字段d设置为int(5),但是仍然可以存储1234567890这个10位数字;
- 设置的字符宽度只对数值长度不满足宽度时有效,如d字段int(5),插入1时,长度不足5,因此在左边补充4个零直到5位,但是插入1234567890时超过了5位,这时的显示宽度就起不了作用了。
修改引擎
查看引擎
SHOW ENGINES;
修改配置文件(my.ini)
找到MySQL的安装路径
打开这个配置文件
把MyIsam改为INNODB
停止MySQL的服务
如果是用phpstudy的,可以直接打开,然后关闭MySQL的服务
删除数据文件
最后把MySQL服务重启下就好了

mysql之使用python操作mysql需要commit的情况
(1)在以下语句中需要commit
update,delete,insert等修改表中数据的需要commit
(2)在以下语句中需要commit
create,drop,alter等修改表结构的,就不需要commit,因为内部隐藏了commit <br />[
](https://blog.csdn.net/u014072827/article/details/109811384)

