MYSQL
文章平均质量分 67
MYSQL
思想和宇宙同频
吾生平长进,全在受挫辱之时。务须咬牙励志,蓄其气而长其智,切不可荼然自馁也。
展开
-
什么是SQL注入攻击?如何防止呢?
SQL 注入是一种常见的网络安全漏洞,攻击者通过在应用程序的用户输入中插入恶意的 SQL 代码,试图欺骗数据库执行非预期的查询。SQL 注入导致对数据库的未授权访问、数据泄露、数据损坏、数据库坏,甚至完整的数据库被攻陷。攻击者通常常通过在用户输入中注入 SQL 代码,改变应用程序对数据库的查询语句,以实现他们的恶意目的。假设有一个简单的登录系统,根据用户提供的用户名和密码进行身份验证。在这个查询中,和是从用户输入中获取的值。如果应用程序不正确处理这些输入,它可能容易受到 SQL 注入攻击。原创 2024-10-21 15:24:49 · 618 阅读 · 0 评论 -
MySQL8.0连接字符串中加入 nullCatalogMeansCurrent=true 的作用
那么nullCatalogMeansCurrent=true的意思就是去activiti7数据库中查找表,如果不设置或者设置为false,就会去整个服务器全部数据库中查找需要的表。所以8.0以后版本在数据库连接的时候: 加上配置【nullCatalogMeansCurrent=true】以避免找不到表的情况。原创 2024-03-14 08:56:08 · 1249 阅读 · 0 评论 -
MYSQL分表分库 详解
比如你之前分了3张表,现在增加两张,那以前3%3的时候结果是0,查询t_user0表,现在3%5,结果肯定不一样了。Mycat 是基于服务器端实现代理,需要单独部署,有独立的IP端口号,所以较安全,但效率差点,因为是走网络通讯的,SpringBoot项目走到MyCat需要网络进行通讯。查询时,数据库中间件就会查询所有的表,现在查询t_user0,逐条查询,查询完再查t_user1,以此类推。首先注意的是,查询语句需要带上分片的字段,也就是说,你当初用哪个字段分的片,现在就得带上那个字段去查询。原创 2024-01-13 18:53:24 · 1152 阅读 · 0 评论 -
MYSQL函数
此函数的意思是,字符串helloworld取第二个下标处,往后数三个(包括下标2),替换成AAA。rand()可以有参数,参数是因子,也就是说,如果因子相同,那么返回的随机数也是相同的。与round()函数不同的是,截断函数truncate()只会截断,不会四舍五入。如果只有一个参数,默认是保留0位小数,如果有两个参数,参数2是保留小数的位数。意思如何字段长度不满足第二个参数,则用第三个参数补全。截取helloworld从下标2开始,往后两位的结果。去除首尾空格,中间空格不去掉。取0~1之间的随机数。原创 2023-11-08 21:35:52 · 177 阅读 · 0 评论 -
MYSQL多表联查on和where的区别
通过上面的问题现象和分析,可以得出了结论:在left join语句中,左表过滤必须放where条件中,右表过滤必须放on条件中,这样结果才能不多不少,刚刚好。原创 2023-11-06 15:08:51 · 325 阅读 · 0 评论 -
MYSQL 多表联查详解
先看这三张表的结构:员工表的department_id关联部门表的主键department_id,而部门表的location_id关联地区表的主键location_id。意思就是员工所属部门,而部门所属地区,从而可以查出员工所属地区在哪。原创 2023-11-02 22:36:47 · 511 阅读 · 0 评论 -
[Err] 1093 - You can‘t specify target table ‘XXX‘ for update in FROM clause
我想先根据name = 'Uzi'查出sys_user表对应的id值,然后插入到sys_user表,这就违反标题中的错误了,那么如何改呢?这个错误大致的意思就是你不能在同一语句中,先select出。中的某些值,再update或者insert这个表。原创 2023-10-13 11:28:25 · 352 阅读 · 0 评论 -
Docker部署MYSQL,本机Navicat无法连接,报错Client does not support authentication protocol requested by server
今天学习Docker,并使用Docker部署MYSQL,部署很顺利,但当我用本机的Navicat去连接Linux下的MYSQL,发现报错Client does not support authentication protocol requested by server client,查了相关资料发现,原因可能是mysql8之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,而你的Navicat版本太低,导致无法连接。原创 2023-09-29 20:48:43 · 2420 阅读 · 0 评论 -
为什么数据库字段建议设置为NOT NULL?
如果查询中包含可为null的列,对MYSQL来说更难优化,因为可为NULL的列使得索引、索引统计和值比较都更复杂。可为null的列会使用更多的存储空间,在MYSQL里也需要特殊处理。当可为null的列被索引时,每个索引记录需要一个额外的字节,在MyISAM里甚至还可能导致固定大小的索引(例如只有一个整数列的索引)变成可变大小的索引。通常把可为null的列改为not null带来的性能提升比较小,所以(调优时)没有必要首先在现有schema中查找并修改掉这种情况,除非确定这会导致问题。原创 2023-06-22 10:22:48 · 1176 阅读 · 0 评论 -
mysql数据库in查询乱序问题
从结果上来看并没有得到我想要的结果,我想按我in中写的id顺序进行输出,我的顺序是5,2,3,1,6,4,但我输出的确是1,2,3,4,5,6。原创 2023-06-02 12:51:44 · 692 阅读 · 0 评论