![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
x²+(y-√³x²)²=1
你的穷途末路,却带给其他人未知的过往。
展开
-
MySQL中limit和offset的用法
MySQL中limit和offset的用法原创 2023-02-16 19:05:17 · 182 阅读 · 0 评论 -
mysql导入数据时报错Unknown collation: utf8mb4_0900_ai_ci
mysql导入数据时报错Unknown collation: utf8mb4_0900_ai_ci原创 2022-10-20 11:51:19 · 356 阅读 · 0 评论 -
查看MySQL的初始密码
查看MySQL的初始密码原创 2022-10-19 19:06:52 · 378 阅读 · 0 评论 -
MySQL通过数据文件恢复数据库
https://www.cnblogs.com/yzeng/p/9020307.html原创 2022-05-24 10:19:02 · 1669 阅读 · 0 评论 -
SQL面试题型汇总
第一种:构建表结构面试官会给你一个业务场景,你认为需要建几张表,每张表的结构字段是什么,表跟表之间的关联关系是什么?这种问题他主要考察你对于业务的理解,构建表结构的一个能力。最基本的局部建表,包括外建、主建等等。第二种:多表联查给你几张表,让你进行复杂查询的实现。这个主要针对多表多列字段进行嵌套,子查询等。第三种:窗口函数主要有三种,聚合开窗函数、排序开窗函数、同列错位开窗函数。聚合开窗函数:函数名如果是聚合函数,则成为聚合开窗函数语法:聚合函数(列) over(partition by原创 2022-05-17 10:42:29 · 111 阅读 · 0 评论 -
SQL子句逻辑执行顺序
SQL子句逻辑执行顺序:From → Where → Group by → Having → Select → Distinct → Union → Order by原创 2022-05-17 10:39:25 · 85 阅读 · 0 评论 -
使用Shell指令给MySQL创建用户
mysql -uroot -p123456 -e "create user '用户名'@'localhost' identified by '用户的密码'"mysql -uroot -p123456 -e "drop user 'aaa'@'localhost'"mysql -uroot -p123456 test -e "select now()" -N > /tmp/aa.txthttps://www.cnblogs.com/feiyun8616/p/11584293.html...原创 2022-02-11 16:12:36 · 1175 阅读 · 0 评论 -
使用Kettle循环处理数据(方式二)
接上文:使用Kettle循环处理数据(方式一),觉得流程比较繁琐,又琢磨到一种批量执行的方式。下面是批量执行的全转换流程。目的是统计某一个库中前缀相同的表的数据量。1、获取表名:可以批量将某一个数据库下的所有表获取到。2、过滤记录:过滤表名前缀是 nic_newtrack 的表3、公式:使用 公式 组件,将表名拼接到需要执行的 SQL 语句中公式 组件填写的详细信息:"insert into tablecount select '"&[tablename]&"',c原创 2021-12-10 15:05:34 · 2606 阅读 · 1 评论 -
Java操作Linux指令,实现恢复、备份MySQL数据库
备份数据库指令:mysqldump -h127.0.0.1 -uroot -p123456 test > d:/test.sql ---备份test数据库到 D 盘恢复数据库指令mysql -h127.0.0.1 -uroot -p123456 test< test.sql ---将D备份的数据库脚本,恢复到数据库中(数据库要存在!)在 cmd 或者 shell 调用命令行,其实是调用 MySQL 安装路径下面的 bin 目录下面的 msqldump.exe 和 mysql.exe原创 2021-12-10 14:17:27 · 1957 阅读 · 3 评论 -
MySQL批量统计数据库中的数据量
一、查询一个数据库中每张表的数据量:1、执行下面的SQL语句,是为了拼接一个查询语句select concat( 'select "', TABLE_name, '", count(*) from ', TABLE_SCHEMA, '.', TABLE_name, ' union all') from information_schema.tableswhere TABLE_SCHEMA='数据库名称';返回这样的结果:2、将返回的结果原创 2021-12-10 13:52:42 · 1464 阅读 · 0 评论 -
MySQL存储过程中使用union
MySQL 中将 order by 和 union 结合使用的时候(先排序,再组合),此时 order by 后面必须加上 limit 才会有先排序再组合的效果。参考:MySQL中使用union和order by结合使用但是若这两个 SQL 子句使用同一个参数时,存储过程中的 union 会失效(不能只传入一个参数,在存储过程中使用多次)。经过多番测试,可以在存储过程传入两个一模一样的参数。这样问题就得到了解决。存储过程语句:delimiter $$create procedure my_pro原创 2021-11-04 09:53:51 · 396 阅读 · 0 评论 -
MySQL中使用union和order by结合使用
(select * from table_a order by a limit 100)union all(select * from table_b order by b limit 100)order by 和 union 结合使用的时候,尽量给需要union 的查询语句加上括号,在 Mysql 的参考手册中,并没有对union 和 order by 的优先级进行说明,它建议的方法是,对 SQL 语句加上(),这样能使 SQL 的语义更清晰。而且,如果是将排序后的结果union 的话,必须在原创 2021-11-04 09:35:25 · 299 阅读 · 0 评论 -
MySQL 设置忽略表名大小写(Linux常见)
修改配置文件,在 [mysqld] 下面按如下配置lower_case_table_names=1 (说明是不区分大小写的)lower_case_table_names=0 (如上图为0说明区分大小写的)重启 MySQL原创 2021-09-09 20:23:58 · 282 阅读 · 1 评论 -
MySQL:The server quit without updating PID file
http://yoff.cn/article/6.html最近检查一台机器发现MYSQL无故DOWN掉,日志中没有明显的错误提示,只是在一个时间挂了后就一直提示各种连接失败,奇怪的是挂了为什么还能继续写日志,没有分析出什么原因,只好先重启,但是遇到了一个提示#/etc/init.d/mysql startThe server quit without updating PID file日志中显示2017-09-26T16:31:09.095545Z mysqld_safe Starting mys原创 2021-09-09 20:01:54 · 115 阅读 · 0 评论 -
MySQL不需要密码就可以登录(Linux中)
在安装完 MySQL 的时候发现,不用输入密码,都可以进入 MySQL ,研究半天,终于找到了解决方式。第一步、在控制台输入(修改 mysqld.cnf 文件)sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf进入到 mysqld.cnf 这个配置文件,然后在这个配置文件中的 [mysqld] 这一块中加入 skip-grant-tables 这句话,如下图所示 [mysqld] # * Basic Settings user = mysql pid-原创 2021-09-08 21:36:30 · 8089 阅读 · 4 评论 -
MySQL:Error 1022 - Can‘t write; duplicate key in table
问题在建表的时候,报这样的错误Error 1022 - Can’t write; duplicate key in table解决方式表的 外键 名称有重复的情况,即使是不同的表也不可以重复原创 2021-07-13 17:11:31 · 363 阅读 · 0 评论 -
Navicat 设置定时任务(事件)
1、查看定时任务的是否开启。通过以下命令show variables like '%sche%';2、如果其设置值为为 OFF 或 0 ,通过执行下列语句,来开启 event_schedulerset global event_scheduler =1把设置为设为 ON 或 1 。3、原创 2021-07-12 09:37:40 · 706 阅读 · 0 评论 -
MySQL映射远程数据库(两种方式)
FEDERATED存储引擎能让你访问远程的MySQL数据库而不使用replication或cluster技术(类似于Oracle的dblink),使用FEDERATED存储引擎的表,本地只存储表的结构信息,数据都存放在远程数据库上,查询时通过建表时指定的连接符去获取远程库的数据返回到本地。FEDERATED 存储引擎架构1 本地服务器 FEDERATED 存储引擎的表只存放表的.frm结构文件2 远程服务器 存放了.frm和数据文件3 增删改查操作都是通过建立的连接来访问远程数据库进行操作,把结.原创 2021-07-11 23:01:25 · 2187 阅读 · 0 评论 -
MySQL去掉小数点后的多余的0
select 0+CAST(9/2 as char)原创 2021-07-08 22:25:24 · 635 阅读 · 0 评论 -
MySQL 利用子查询(延迟关联)优化分页查询
通常会有一些起点巨大的分页查询,效率低下,例如:select * from tab where create_date>'2018-12-20 13:20:10' and create_date<'2019-05-01 14:00:00' order by id limit 328000,10;假设 tab 是一个数据量非常大的表,且满足条件 create_date>'2018-12-20 13:20:10' and create_date<'2019-05-01原创 2021-06-17 09:09:33 · 688 阅读 · 0 评论 -
MySQL 建表时报错 invalid ON UPDATE clause for ‘create_date‘ column
今天在 MySQL 中创建表的时候,报了一个错误 invalid ON UPDATE clause for 'create_date' column ,死活就是无法创建表。经过查询发现,这个错误是由于 MySQL 版本问题导致的。MySQL 5.5 每个表只允许一个列的默认值根据时间戳生成时间`create_date` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',`update_date` datetime DEF原创 2021-06-08 20:41:16 · 802 阅读 · 0 评论 -
MySQL创建用户报错ERROR 1396 (HY000): Operation CREATE USER failed for ‘XXXX‘@‘XXXX‘
在 MySQL 创建用户的时候,报错 ERROR 1396 (HY000): Operation CREATE USER failed for 'XXXX'@'XXXX'造成这个问题的原因是由于删除语句使用不正确。可以使用下面这两种方式来删除用户方法一:第一步、删除用户:drop user 'jack'@'localhost';第二步、创建用户:create user 'jack'@'localhost' identified by 'ddd';方法二:第一步、删除用户:delete原创 2021-04-22 20:43:02 · 611 阅读 · 0 评论 -
Navicat 远程访问 Linux 中的MySQL很慢
背景:在 Linux 端安装 MySQL 之后,使用 Navicat 远程访问非常慢解决方式:1、在 Linux 下暂时关闭 MySQL服务service mysql stop2、找到目录 /usr 下的 my.cnf 文件,在最后一行加入skip-name-resolve保存3、再次启动 MySQLservice mysql start...原创 2021-01-26 19:37:33 · 135 阅读 · 0 评论 -
MySQL查看表占用空间的大小
以字节(Byte)的格式展示:SELECT data_length, index_lengthFROM information_schema.TABLESWHERE table_schema = 'db_name' AND table_name = 'table_name';以兆(MB)的格式展示:SELECT concat( round( sum( data_length / 1024 / 1024 ), 2 ), 'MB' ) AS data_length_MB, conca原创 2021-01-26 19:30:20 · 99 阅读 · 0 评论 -
MySQL 锁表解决方法
MySQL 锁表解决方法SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;获取到 blocking_trx_idSELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;查找 trx_id 和上面获取到的 blocking_trx_id 一样的记录,获取这条记录的 trx_mysql_thread_idkill 上面获取到的trx_mysql_thread_id这样就把阻塞其他事务的事务线程杀掉了。PS:上原创 2021-01-07 13:04:09 · 127 阅读 · 0 评论 -
MySQL之EXISTS的使用
SELECT * FROM tablein WHERE EXISTS(SELECT BID from tableex WHERE BNAME = tablein.ANAME)SELECT * FROM tablein WHERE EXISTS(SELECT * from tableex WHERE BNAME = tablein.ANAME)SELECT * FROM tablein WHERE EXISTS(SELECT BNAME from tableex WHERE BNAME = table原创 2021-01-07 09:29:50 · 108 阅读 · 0 评论 -
MySQL中将select结果执行update
一、单表查询—>更新UPDATE table_nameSET field1=new-value1, field2=new-value2[WHERE Clause]二、多表联合查询—>更新UPDATE aINNER JOIN (SELECT yy FROM b) c ON a.id = c.id SET a.xx = c.yy[WHERE Clause]上面的 INNER JOIN ,可以换为 LEFT JOIN 、 RIGHT JOIN 等联合查询。SET 后的字段必须原创 2021-01-05 21:06:03 · 283 阅读 · 0 评论 -
快速创建MySQL相同的表结构
一、将b的表结构和索引都复制create table a like b;二、只复制表结构,不复制表索引create table a as select * from b limit 0;或者create table a select * from b limit 0;原创 2021-01-01 11:20:32 · 506 阅读 · 0 评论 -
MySQL使用变量添加行号、分组添加行号
准备数据:DROP TABLE IF EXISTS `computer_stu`;CREATE TABLE `computer_stu` ( `id` int(11) NOT NULL, `name` varchar(20) DEFAULT NULL, `score` float DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- -----------------------------原创 2020-09-21 21:29:20 · 247 阅读 · 0 评论 -
使用Navicat给MySQL创建用户,并赋予部分表权限
今天使用Navicat给MySQL创建用户,并赋予权限时,无论怎么设置,都会显示所有的表。将问题记录下来,方便之后的查询1、首先使用root用户登录数据库2、点击“用户”选项,新建用户3、在常规选项卡中填入需要创建用户的用户名、密码需要注意的是,主机这一选项,若是填安装MySQL机器的IP地址,那么只能在这台机器的本地登陆这个新创建的这个用户,其他机器上将无法。若要在任何机器上登陆,需要填写%(百分号)4、切换到服务器权限选项卡,若要只展示某个数据库(我们新建用户的目的,就是想将部分数据库、原创 2020-06-11 22:31:02 · 7902 阅读 · 1 评论 -
如何给MySQL数据库的视图加上注释
众所周知,MySQL 存在一个 非常古老的bug ,那就是 “ 视图无法创建索引 ” 。这个 bug 在2007年就提出来了,一直没有解决。这段时间我们的视图需要增加上中文名称的注释,在前端页面显示。官方没有这方面的属性,所以投机取巧增加了一个注释。如下所示:CREATE OR REPLACE VIEW high_value_employees ASSELECT *FROM `employees`WHERE salary >= 200000AND 'comment' != '优秀员工';原创 2020-05-20 21:30:56 · 5247 阅读 · 0 评论 -
web管理工具 OmniDB 数据库安装,及报错处理
服务器操作系统 Centos 7.6安装路径 /opt软件包下载链接 https://omnidb.org/dist/2.17.0/omnidb-server_2.17.0-centos7-amd64.rpm1、到服务器 /opt 目录下,使用下面的命令安装rpm -ivh omnidb-server_2.16.0-centos6-amd64.rpm安装完成会在当前路径生成 omnidb-server 文件夹配置文件存放路径 /opt/omnidb-server/omnidb.c原创 2020-05-10 09:54:48 · 818 阅读 · 0 评论 -
MySQL判断中文字符的长度之LENGTH、CHAR_LENGTH
SQL代码:SELECT LENGTH('你好世界');运行结果:原因:为什么会出现12个字符呢,是因为我的MySQL编码是UTF-8的,一个汉字是三个字符,所以 4 * 3 = 12 个字符SQL代码:SELECT CHAR_LENGTH('你好世界');运行结果:所以,以后要判断中文字符的长度,最好用CHAR_LENGTH,避免用 LENGTH 躺坑...原创 2020-05-01 10:08:35 · 4612 阅读 · 0 评论 -
MySQL权限设置grant all privileges
grant all privileges on . to hwalk1@’%’ identified by ‘hwalk1’;flush privileges;insert into user (Host,User,Password) values(‘localhost’,‘shagua’,’’);bin>mysql -u rootmysql> grant 权限1,权限2,…权...原创 2020-03-04 18:21:56 · 943 阅读 · 0 评论