![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
luoage_
不迁怒不贰过
展开
-
查询无效的自增id row_number
我们的建表语句id一般都是这么个样子 int unsigned NOT NULL AUTO_INCREMENT id自增1,自增嘛也就是从1开始 到 n, 但是很多情况下自增的id断断续续,并不连续(默认步长1),导致这个的原因也很简单,insert的时候出错了,这个id就被废弃掉了。但是。。。。。强迫症的我怎么办,看着结果好难受,我必须要做点什么我打算做点啥呢,我打算把所有无效的id都找出来🤦🏻♀️,于是sql如下 先来分下一下这条sql,首先对id做正序排列并且给加上序列号,形成一张临时表u, ..原创 2022-07-08 19:42:42 · 343 阅读 · 1 评论 -
mysql dense_rank function
有个朋友问了我一个sql问题 有张商品表,包含了商品id,商品价格和店铺id,要求列出每个店铺价格前三的商品商品表 goods拿到这个问题我首先想到的是以前处理过的一个最值问题,于是我写下了下面一个sql 先获取最大价格和store_id,形成一张临时表g2,再使用goods inner join g2表,on的条件是 store_id和price完美,没缺陷,但是。。。。没什么卵用,解决不了这个问题🤦🏻♀️。于是我转换思路,想到以前用过oracle写最值问题经常会使用到 row_number 函数,..原创 2022-07-08 18:07:54 · 990 阅读 · 0 评论 -
mysql左右关联,内关联,having用法
两张表, user,字段,user_id,email,name deal,字段deal_id,user_id,deal_name 对应关系,user.user_id = deal.user_id, 左关联: select u.*,d.* from user as u left join deal as d on d.user_id = u.user_id; 右关联: select u.*,d.*原创 2017-11-03 14:19:56 · 1782 阅读 · 0 评论 -
cmd连接mysql
连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样) 断开:exit (回车) 创建授权:grant select on 数据库.* to 用户名@登录主机 identified by \"密码\" 修改密码:mysqladmin -u用户名 -p旧密码 password 新密码 删除授权: revoke select,insert,upda原创 2017-11-03 14:19:59 · 346 阅读 · 0 评论 -
sql注入
说起防止SQL注入攻击,感觉很郁闷,这么多年了大家一直在讨论,也一直在争论,可是到了现在似乎还是没有定论。 AD: 1、 SQL注入攻击的本质:让客户端传递过去的字符串变成SQL语句,而且能够被执行。 2、 每个程序员都必须肩负起防止SQL注入攻击的责任。 说起防止SQL注入攻击,感觉很郁闷,这么多年了大家一直在讨论,也一直在争论,可是到了现在似乎还是没有定论。当不知道注入原理的时候会觉得很神原创 2017-11-03 14:20:36 · 227 阅读 · 0 评论 -
shell操作mysql
在shell开发中,很多时候我们需要操作mysql数据库(比如:查询数据、导出数据等),但是我们又无法进入mysql命令行的环境,就需要在 shell环境中模拟mysql的环境,使用mysql相关命令,本文总结几种shell操作mysql的方法,供大家参考。 方案1 mysql -uuser -ppasswd -e"insert LogTable values(...)" 优点原创 2017-11-03 14:20:41 · 350 阅读 · 0 评论 -
mysql索引类型
索引的类型 MySQL提供多种索引类型供选择: 普通索引 这是最基本的索引类型,而且它没有唯一性之类的限制。普通索引可以通过以下几种方式创建: 创建索引,例如CREATEINDEXONtablename(列的列表); 修改表,例如ALTERTABLEtablenameADDINDEX[索引的名字](列的列表); 创建表的时候指定索引,例如CREATETABLEtable原创 2017-11-03 14:21:12 · 178 阅读 · 0 评论