![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySql
文章平均质量分 54
牧码文
只要思想不滑坡,从此不怕bug多
展开
-
MyBatis-Plus入门使用小案例
入门的MyBatis-Plus小案例,结合SpringBoot原创 2022-11-06 17:51:15 · 287 阅读 · 0 评论 -
mysql更改自定义存储数据目录
数据表的存储路径在my.ini文件的dataDir配置中basedir为默认安装目录datadir为数据存储目录可以看到在修改之前数据是默认存储在c盘的隐藏目录下的注意:在自定义存储目录之后,因为mysql内有许多配置表,存放在默认的data路径下,如果更改了目录,需要把这些默认的问价copy到新的目录下,否则重启时候会失败,因为加载不了mysql的配置文件表修改之后,重启MySQL,创建数据就检测一下是否更改了目录检查新的目录是否有这条数据修改成功。原创 2022-10-16 00:49:54 · 703 阅读 · 0 评论 -
位运算符在SQL中的使用场景
SQL中位运算符的使用场景内容目录SQL中位运算符的使用场景一、位运算符1.“&” 按位取余2.“|” 按位取或3.“^” 按位取异或二、用法1.判断奇偶数2.根据不同的数字计算位运算符作为计算机的底层逻辑,在每个语言中都有相关计算,但是怎么用用在哪却使用的很少一、位运算符1.“&” 按位取余A & B:A和B按位取与只有两个位置全为1,取与才为1,否则为02.“|” 按位取或A & B:A和B按位取或只有两个位置一个为1,取或就为1,否则为0原创 2022-05-21 20:01:06 · 579 阅读 · 0 评论 -
SQL解决去重问题(在线超10min中的人数等)
SQL解决去重问题(在线超10min中的人数等)内容目录SQL解决去重问题(在线超10min中的人数等)一、描述二、求解1、思路12、思路2三、牛客的SQL33:直播各科出勤率一、描述问题描述比如有一些数据如下,记录了每个同学一天内的球类运动情况tom 篮球 14mintom 足球 25mintom 篮球 20mintom 足球 31minjery 足球 25minlilly 篮球 21min问题:每项运动中坚持超过20min的学生数二、求解1、思路1原创 2022-05-07 08:48:17 · 338 阅读 · 0 评论 -
牛客SQL34: 牛客直播各科目同时在线人数(最大值问题)
牛客SQL34: 牛客直播各科目同时在线人数(最大值问题)内容目录牛客SQL34: 牛客直播各科目同时在线人数(最大值问题)一、描述二、思路解析三、代码四、问题思考一、描述牛客某页面推出了数据分析系列直播课程介绍。用户可以选择报名任意一场或多场直播课。已知课程表course_tb如下(其中course_id代表课程编号,course_name表示课程名称,course_datetime代表上课时间):course_idcourse_namecourse_datetime1P原创 2022-05-06 08:24:26 · 1714 阅读 · 1 评论 -
牛客SQL29:某宝店铺连续2天及以上购物的用户及其对应的天数(连续问题)
牛客SQL29 :某宝店铺连续2天及以上购物的用户及其对应的天数内容目录牛客**SQL29** :某宝店铺连续2天及以上购物的用户及其对应的天数一、描述二、解题思路三、代码一、描述11月结束后,小牛同学需要对其在某宝的网店就11月份用户交易情况和产品情况进行分析以更好的经营小店。11月份销售数据表sales_tb如下(其中,sales_date表示销售日期,user_id指用户编号,item_id指货号,sales_num表示销售数量,sales_price表示结算金额):sales_da原创 2022-05-06 07:34:25 · 1407 阅读 · 0 评论 -
SQL解决最多同时在线人数问题(同时视频观看人数,同时浏览人数,同时等车人数)
SQL解决最多同时在线人数问题(同时视频观看人数,同时浏览人数,同时等车人数)今天拿到一个需求,要统计不同时间段的视频同时观看人数,举个例子,比如某个视频,video_id为9432870,统计出这个视频在10:00 - 12:00 同时观看人数最多为201人,12:00 - 14:00 同时观看人数最多为100人。这个需求我刚接到的时候是很蒙圈的,不知道该怎么下手,我脑子第一反应就是,取并集?但是也不知道怎么取啊。问了公司的大佬,他告诉我让我想象成一个瞬时问题,就是求得某个时间点的同时在线人数,我恍然原创 2022-05-05 09:12:29 · 3804 阅读 · 2 评论 -
SQL常见面试提:解决连续问题(CSDN签到领金币、连续登录天数等问题)
SQL解决连续问题(连续登录天数等问题)目录内容SQL解决连续问题(连续登录天数等问题)一、问题描述二、小试牛刀步骤1:按照日期排序步骤2:按照零头进行分组,再次排序(其实这里不用排序,直接得到队伍个数,哪个最大就行)代码:三、问题升级连续登录天数问题我们可以看作是一个排队的问题,就是把连续登录的一组当作是一个队伍,这个队伍有着共同的领队,如果中断,则去往另一个队伍,这个队伍也有一个同样的领队一、问题描述怎么理解呢?看个栗子:比如一组数据2022-04-132022-04-142022-04原创 2022-05-03 13:06:42 · 747 阅读 · 0 评论 -
MySQL面试题:近一个月发布的视频中热度最高的top3视频
近一个月发布的视频中热度最高的top3视频内容目录近一个月发布的视频中热度最高的top3视频1.题目的几点注意项:2.需要计算的值:3.逻辑过程:4.代码:题目:现有用户-视频互动表tb_user_video_loguid-用户ID, video_id-视频ID, start_time-开始观看时间, end_time-结束观看时间, if_follow-是否关注, if_like-是否点赞, if_retweet-是否转发, comment_id-评论ID)短视频信息表tb_video_info(v原创 2022-05-02 10:44:29 · 1070 阅读 · 0 评论 -
数据库检测数据一致性时的哈希值不一致的原因
检测数据一致性时的哈希值不一致的原因内容目录检测数据一致性时的哈希值不一致的原因一、问题介绍二、哈希值不同的原因有什么三、问题排查四、日常小技巧今天在做一个数据需求的时候,大概要把几张有字段重复的数据表,并且是同一粒度的,合并到一张表里逻辑处理结束之后,在做数据一致性检验的时候,checksum的结果有些出入一、问题介绍总共有28个字段,checksum的哈希结果26个都是一样的,但是却有两个不一样,这个结果就很奇怪,如果说有一些重复数据造成了数据增长,那么行数是怎么一样的呢?如果逻辑有问题,那么原创 2022-03-31 08:00:00 · 3206 阅读 · 0 评论 -
Docker部署MySQL的主从复制
Docker部署MySQL的主从复制内容目录Docker部署MySQL的主从复制1、新建端口3307的主服务2、进入conf目录新建my.cnf文件3、重启服务,进入mysql4、为从服务器创建用户权限5、新建从服务器33086、进入到conf目录创建my.cnf7、重启slave容器,进去slave8、在主服务中查看主从同步状态9、进入mysql-slave容器10、在从服务器中配置主从复制11、在从数据库中查看主从同步状态12、在从数据库中开启主从同步13、再次查看从服务的主从复制状态14、测试主从复原创 2022-03-29 08:00:00 · 173 阅读 · 0 评论 -
MySQL的库、表定义和基本操作
内容目录MySQL的库、表定义和基本操作一、常用的数据类型二、数据库1.创建2.使用3.修改数据库三、数据表1.创建表2.查看表结构3.修改表4.删除表5.清空表MySQL的库、表定义和基本操作把大象装进冰箱需要三步,那么想象一下一条数据进入一张数据表应该有几个步骤首先,创建一个数据库其次,根据数据确定字段然后,在数据库中创建表最后,将数据插入表中库、表、字段的一些规则库名、表名不能超过30个字符,变量名限制29个名中不能有稀奇古怪的符号,只能包括大小写字母、数字、_名字中不能包含原创 2022-02-22 17:48:11 · 843 阅读 · 0 评论 -
分组查询最大值中的最小值的几种方法
分组查询最大值中的最小值的几种方法举例:查询各部门最高工资中的最低的部门这道题问的有些绕口,分解开来就是查找出各个部门的最高工资,然后查找出最高工资中最低的是哪一个部门这就涉及到了子查询,有几种实现方式方式1:可以查找出各个部门的最高工资,然后正序排序,取第一个#方式1SELECT MAX(salary)FROM employeesGROUP BY department_idORDER BY MAX(salary)LIMIT 1;方式2:可以先求出各个部门的最高工资,然后在求出最原创 2022-02-12 22:51:41 · 822 阅读 · 0 评论 -
MySQL数据库迁移方案比较和使用
数据库迁移方案数据迁移(Data migration)是指在存储类型、格式和计算机系统之间的数据转换。1 常用的迁移方案介绍 项目使用的数据存储技术是MySQL,关于MySQL的迁移方案大致分为三类:1.1 mysqldump命令mysql提供了对数据迁移需求的支持手段,mysqldump是MySQL自带的逻辑备份工具,它的备份原理是通过协议连接到MySQL数据库,根据参数转换,将需要操作的数据查询出来,然后将数据转换成相应的查询语句,生成sql脚本文件,将sql脚本拷贝到迁移机器上,执行原创 2021-12-09 17:50:06 · 4119 阅读 · 2 评论 -
MySQL分析SQL语句执行资源消耗情况-profile
MySQL分析SQL语句执行资源消耗情况-profileshow profileshow profile是MySQL提供可以用来分析当前会话中语句执行的资源消耗情况,可以用于SQL的调优的测量分析步骤首先查看是否支持show variables like 'profiling';开启profileset profiling = on;运行sql查看结果show profiles;诊断SQL语句show profile cpu,block i原创 2021-10-14 10:31:09 · 1053 阅读 · 0 评论 -
MySQL索引失效原因
在MySQL中,建立了索引之后,有时候也会出现查询类型是all的情况,造成这种问题的原因是索引没有使用上,造成了索引失效。索引失效的原因:全值匹配:在查询语句中使用到了索引中所有的字段最佳左侧前缀法则:在索引的使用中从左到右不能跳着使用,不能跳过索引中的列不在索引列上做任何操作(计算、函数、自动\手动类型转换)存储引擎不能使用索引中范围条件右边的列,既是范围之后的列全部会失效尽量使用覆盖索引(只访问索引的查询),减少select*mysql在使用不等于的时候(!=或<>)无法使用原创 2021-10-14 10:10:55 · 944 阅读 · 0 评论 -
Mysql语句性能检测-Explain
Mysql语句性能检测-ExplainEXPLAIN使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,explain查看执行任务计划包含的信息:id,select_type,table,type,possible_keys,key,key_len,ref,rows,filtered,extra语句:explain SQL语句;explain select card,phoneid from phone;id:id相同:执行顺序由上至原创 2021-10-13 20:28:25 · 338 阅读 · 0 评论 -
MySQL索引
MySQL索引**索引(Index):**是帮助MySQL高效获取数据的数据结构,索引就是数据结构索引可以简单的理解为“排好序的快速查找数据结构”在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构的基础上实现更高级查找算法,这种数据结构就是索引。一般来说,索引本身也很大,不可能全部存储在内存中,因此往往以索引文件的行驶存储在磁盘上。平时说的索引,若没有特别的指明,都是指B树(多路搜索树,不一定为二叉树)结构组织的索引。MyS原创 2021-10-13 20:07:08 · 48 阅读 · 0 评论 -
MySQL基本配置查询和设置
首先需要了解Mysql的概括概括在linux下查看MySQL的安装目录ps-ef | grep mysql当数据库表中插入中文的时候会出现乱码,因为MySQL使用的编码集是拉丁,而中文使用的一般是utf8,所以需要修改字符集查看字符集:show variables like '%char%';修改字符集,在MySQL的配置文件中设置[mysqld]character-set-server=utf8collation-server=utf8_general_ci或者在MySQL中设原创 2021-10-13 19:40:38 · 338 阅读 · 1 评论 -
mysql数据表的建立、表编码设置、复制表结构
建立数据表,设置id为主键递增,编码为utf8create table if not exists cargoship( id int(11) not null auto_increment, MMSI varchar(20) not null, shipType varchar(50) default null, nacStatusEN varchar(50) default null, length double default 0, width double de原创 2021-10-11 16:13:58 · 149 阅读 · 0 评论 -
hive的安装和元数据配置到mysql
hive的安装和元数据配置到mysql一、hive的安装官网下载hive的tar包,解压之后配置环境变量解压tar -zxvf hive.xxx.xxx.tar.gz配置环境变量#HIVE_HOMEexport HIVE_HOME=/opt/module/hiveexport PATH=$PATH:$HIVE_HOME/binsource环境变量文件source /etc/profile.d/myenv.sh解决日志冲突在hive的lib目录下,删除log4j-slf4j-im原创 2021-09-26 21:28:26 · 227 阅读 · 0 评论 -
xshell编程自动备份数据库
xshell编程自动备份数据库需求分析:每天凌晨2:30备份数据库university到~/AllData/xshell/mysql_backup_db备份开始和备份结束时能给出相应的提示信息备份后的文件要求以备份时间为文件名,并打包成.tar.gz,比如2021-05-08_172010.tar.gz备份同时,检查是否有10天前的备份数据文件,若有则删除xshell编程:#!/bin/bash#备份目录BACKUP=~/AllData/xshell/backup/db#获取当前时间原创 2021-05-08 18:08:46 · 1112 阅读 · 0 评论 -
Apache-DBUtils实现mysql数据库的CRUD操作
Apache-DBUtils实现CRUD操作commons-dbutils是Apache组织提供的一个开源JDBC工具库类,封装了针对于数据库的增删改查操作QueryRunner测试插入数据 public void testInsert() throws Exception { Connection conn = JDBCUtils.getConnection1(); QueryRunner runner = new QueryRunner(); Str原创 2021-04-05 16:14:13 · 164 阅读 · 0 评论 -
分别使用C3p0、DBCP、Druid连接池获取一个连接
JDBC数据库连接池常用的数据库连接池DBCP:APache提供的数据库连接池。tomcat服务器端自带的dpcp数据库连接池,速度较C3P0快C3P0:是一个开源组织提供的一个数据库连接池,速度相对较慢,稳定性还可以Druid:是阿里提供的数据库连接池JDBC的数据库连接池使用javax.sql.DataSource表示,DataSource只是一个接口C3P0测试:首先导入jar包方式一:public void testGetConnection() throws Exceptio原创 2021-04-03 22:29:43 · 141 阅读 · 0 评论 -
使用JDBC对不同的mysql表进行查询操作
对不同的表实现通用查询:使用泛型获取一个对象的方法:public <T> T getInstance(Class<T> clazz,String sql,Object ...args) { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = JDBCUtils.getCon原创 2021-04-02 21:57:50 · 136 阅读 · 0 评论 -
JDBC对mysql数据库的查找操作
JDBC查找操作,查找操作相较于增删改复杂,因为查找要考虑查找后的结果处理public void testQuery1() { Connection conn = null; PreparedStatement ps = null; ResultSet resultSet = null; try { //1、连接数据库 conn = JDBCUtils.getConnection();原创 2021-04-02 21:11:33 · 108 阅读 · 0 评论 -
JDBC对mysql的增删改操作
JDBC操作和访问数据库StatementPrepatedStatementCallableStatement使用Statement存在弊端需要拼写sql语句存在sql注入的问题解决方法:只要用PreparedStatement(从Statement扩展而来)取代Statement即可JDBC中使用PreparedStatement插入数据向customers表中添加一条记录public void updateTest(){ Connection conn = n原创 2021-04-02 21:09:52 · 107 阅读 · 0 评论 -
使用JDBC连接mysql数据库的五种方式
JDBC(Java DataBase Connectivity)是一个独立于特定数据库管理系统,通用的SQL数据库存取和操作的公共接口(一组api)JDBC为访问不同的数据库提供了一种统一的途径JDBC连接数据库首先:导入jar包IDEA中在File -> Project Structure ->Libraries ->java 实现导包功能方式一:public void testConnection1() throws SQLException { Driv原创 2021-04-02 10:26:09 · 847 阅读 · 0 评论 -
使用JDBC连接mysql的三种方式
JDBC连接mysql的三种方式(Java DataBase Connectivity)是一个独立于特定数据库管理系统,通用的SQL数据库存取和操作的公共接口(一组api)JDBC为访问不同的数据库提供了一种统一的途径JDBC连接数据库首先:导入jar包IDEA中在File -> Project Structure ->Libraries ->java 实现导包功能方式一:public void testConnection1() throws SQLException {原创 2021-04-01 22:22:47 · 742 阅读 · 0 评论