
数据库DataBase
文章平均质量分 75
MySQL;Oracle
MinggeQingchun
这个作者很懒,什么都没留下…
展开
-
MySQL - Navicat自动备份MySQL数据
对于从事IT开发的工程师,数据备份我想大家并不陌生,这件工程太重要了!对于比较重要的数据,我们希望能定期备份,每天备份1次或多次,或者是每周备份1次或多次。如果大家在平时使用Navicat操作数据库,Navicat是自带备份功能的,操作如下首先,来设置一下Navicat保存备份以及SQL语句的路径博主使用Navicat16新建或者编辑连接实例时,点击“”,选择“”,替换为需要保存的地址即可。原创 2024-10-16 16:55:03 · 10646 阅读 · 1 评论 -
SQL - SQL优化
在中为了提高查询效率,我们常常会采取一些措施对查询语句进行sql优化,下面总结的一些方法,有需要的可以参考参考。原创 2024-09-04 08:54:10 · 1328 阅读 · 1 评论 -
MySQL - 增量同步和全量同步
因此,在选择数据同步的方法时,需要根据具体需求和场景来确定采用哪种方式,以实现数据同步的效率和准确性。增量同步是指在数据同步中仅同步更新或新增的数据,而不包括已经同步过的数据。b.全量同步将源数据的所有数据进行复制到目标数据,可以确保目标数据与源数据完全一致。b.全量同步需要同步所有数据,无论是否有更新或新增,数据量较大,同步过程较为耗时。a.增量同步仅同步更新或新增的数据,可以有效减少数据传输量,提高同步效率。a.增量同步通过比较源数据和目标数据的时间戳或版本号,确定需要同步的数据。原创 2024-02-20 21:01:29 · 2224 阅读 · 0 评论 -
MySQL - 索引详解以及优化;Explain执行计划
一般就是在你的where语句中出现了between、、in等的查询这种范围扫描索引扫描比全表扫描要好,因为它只需要开始于索引的某一点,而结束语另一点,不用扫描全部索引。在索引大大提高查询速度的同时,却会降低表的更新速度,在对表进行数据增删改的同时,MySQL不仅要更新数据,还需要保存一下索引文件。id相同和不同都存在时,id相同的可以理解为一组,从上往下顺序执行,所有组中,id值越大,优先级越高越先执行。索引实际上也是一张表,保存了主键和索引的字段,并且指向实体表的记录,所以索引也是需要占用空间的。原创 2023-10-31 21:49:54 · 597 阅读 · 0 评论 -
MySQL - MySQL使用group by查询报错SELECT list is not in GROUP BY clause and contains nonaggregated column..
要么禁用ONLY_FULL_GROUP_BY(脚本如下)2、对于用到 GROUP BY 的 select 语句, 查出来的列必须是 group by 后面声明的列, 或者是聚合函数里面的列有这样一个数据库的表。3、group by role (非主键) 的时候, select 只能是聚合函数和 role ( group by 的字段) , 否则报错。1、只要有聚合函数 sum(),count(),max(),avg() 等函数就需要用到 group by , 否则就会报上面的错误。原创 2023-12-15 21:25:45 · 1722 阅读 · 0 评论 -
SpringBoot - com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 ‘DUAL‘ 无效 | Druid双数据源MySQL+SQL ser
但是SQL server 没有对象DUAL,也就是这个语句在SQL server下面是不能运行的,所以报错了。我们在自己的代码里面全局搜索这个DUAL,只有在Druid里面使用了这个语句去验证数据库的连接信息。检查sql 有效性,在application.prppertis 文件添加如下配置。在SpringBoot项目中使用双数据源MySQL和SQLserver时,运行报错。在MySQL下面可以正常的使用返回1,MySQL有对象DUAL。导入salserver驱动包。原创 2023-12-15 21:25:06 · 2449 阅读 · 0 评论 -
MySQL - MySQL索引优化及口诀
3、不在索引列上做任何操作(计算,函数,(自动/手动)类型转换),会导致索引失效而进行全表扫描。此时应使用覆盖查询(查询范围在已经建立的索引范围之内,尽量与索引的个数,顺序相同)4、存储引擎不能使用索引中范围条件右边的列(范围之后全失效,不包括本身)若中间索引列用到了范围(>、原创 2023-08-13 21:57:37 · 516 阅读 · 0 评论 -
Mybatis - 统计SQL执行时间
由于系统数据量较大,SQL执行十分低效,我们在做数据库优化时,想在日志中看到每个SQL执行的时间,以方便针对性的优化。原创 2023-07-02 09:47:39 · 3918 阅读 · 0 评论 -
MySQL - Mysql优化(出自官方文档);索引优化系列)
如果经常读取一个表中的多个列,那么,把最少访问的列分出来单独作为一个小表,然后使用外键的方式和主表联系起来,这样子在读取数据的时候就能尽量减少磁盘的I/O读写。这种索引一般的用途:测试移除一个索引对于性能的影响,因为这种索引不是真正的将其移除了,只是优化器不再考虑该索引,所以并不会对表造成太大的影响。正确的创建索引往往会加快查询速度,但是,没有必要的索引往往只会浪费空间,并且增加插入,更新和删除的开销,因为进行这些操作要同时更新索引。这种索引指的是那种真实存在,但是优化器却不会使用的索引,只能对非。原创 2023-08-01 23:06:51 · 502 阅读 · 0 评论 -
MySQL - 常用排序规则utf8mb4_general_ci、utf8mb4_unicode_ci、utf8mb4_bin、utf8mb4_0900_ai_ci和存储字符集 utf8 和 utf8
以前,utf8mb4_general_ci 是默认排序规则。排序字符集 utf8mb4_unicode_ci 和 utf8mb4_general_ci、utf8mb4_bin、utf8mb4_0900_ai_ci。utf8_general_ci校对规则进行的比较速度很快,但是与使用 utf8mb4_unicode_ci的校对规则相比,比较正确性较差。2、排序字符集 utf8mb4_unicode_ci 和 utf8mb4_general_ci、utf8mb4_bin、utf8mb4_0900_ai_ci。原创 2023-05-25 21:54:49 · 12789 阅读 · 2 评论 -
MySQL - Left Join和Inner Join的效率对比,以及优化
这样的多个left join组合,总觉得这种写法是有问题的,直接用inner join会怎样呢?差别在哪里?后续使用inner join发现速度要比left join快一些。原创 2023-09-04 21:47:29 · 11182 阅读 · 2 评论 -
SQL - Explain查看SQL执行计划
我们在工作中肯定写过,也会进行一下sql语句的优化,在优化sql语句里看过相应的在进行sql语句优化的时候,理解执行计划中各个参数的意思,弄明白执行的顺序,对sql优化有很大的帮助。1、通过命令查看执行计划2、通过Navicat查看执行计划在Navicat中执行完相应的sql语句,然后点击【解释】,其实执行计划就是解释怎么执行的sql语句,有的版本的“解释”按钮在上面,有的版本的“解释”按钮在下面,视版本不同而定我们来看下执行计划中各个参数的意思。原创 2023-08-22 21:56:30 · 2668 阅读 · 0 评论 -
MySQL - text字段
如假设一个中文字符占两个字节,那TEXT类型可存65535/2=32767个中文字符,而varchar(100)可存储100个中文字符,实际占200个字节,但varchar(65535)并不能存储65535个中文字符,因为巳超出表达范围。2、varchar可变长度,可以设置最大长度,适合已知最大可用长度的情况下,用在长度可变的属性。varchar可变长度,可以设置最大长度,适合用在长度可变的属性。3、text不设置长度,当不知道属性的最大长度时,适合用text,能用varchar的地方不用text。原创 2023-01-24 21:27:32 · 10549 阅读 · 1 评论 -
SQL - MySQL回表
聚簇索引和非聚簇索引是什么?MySQL 的索引有不同的角度的分类方式,例如:按数据结构分、按逻辑角度分、按物理存储分。其中,按物理存储分有两种索引:聚簇索引和非聚簇索引。简单来说,聚簇索引是主键索引。主键索引之外的就是非聚簇索引,非聚簇索引又叫辅助索引或者二级索引。主键索引和非主键索引有什么区别?相同点:都使用的是 B+Tree。不同点:叶子节点存储的数据不同主键索引的叶子节点存储的是一行完整的数据;非主键索引的叶子节点存储的是主键值。原创 2022-12-18 16:23:17 · 12883 阅读 · 2 评论 -
SQL - MySQL深分页
记录每次取出的最大id, 然后where id > 最大id。原创 2022-12-18 16:22:15 · 1515 阅读 · 0 评论 -
SQL - SQL优化的几种方法
13、并不是所有索引对查询都有效,SQL是根据表中数据来进行查询优化的,当索引列有大量数据重复时,SQL查询可能不会去利用索引,如一表中有字段sex,male、female几乎各一半,那么即使在sex上建了索引也对查询效率起不了作用。10、在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致。如果开发时间允许,基于游标的方法和基于集的方法都可以尝试一下,看哪一种方法的效果更好。转载 2022-10-26 21:23:01 · 1655 阅读 · 2 评论 -
MySQL - 清空表数据 truncate;delete;drop
1、不再需要该表时, 用 drop2、仍要保留该表,但要删除所有数据表记录时, 用 truncate;TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少,但 TRUNCATE无事务且不触发 trigger,有可能造成事故,故不建议在开发代码中使用此语句。注:TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同3、要删除部分记录或者有可能会后悔的话, 用 delete。原创 2023-01-01 20:34:29 · 2623 阅读 · 0 评论 -
数据库-Navicat连接SQLserver报错:未发现数据源名称并且未指定默认驱动程序
Navicat连接SQLserver数据库时报错:未发现数据源名称并且未指定默认驱动程序导致原因:navicat没有安装sqlserver驱动解决办法:打开Navicat的安装路径,Navicat自带sqlncli_x64.msi,双击安装一下;安装完成之后重启Navicat即可连接成功!...原创 2022-03-01 13:53:34 · 10883 阅读 · 6 评论 -
Oracle-Windows双击Oracle的setup.exe一闪而过;Oracle安装后的默认账号和密码
双击Oracle解压包之后的setup.exe之后,界面一闪而过,主要是如下三种原因1、安装路径不要包含中文2、安装路径不要包含空格3、右击,选择“以管理员身份运行”原创 2022-02-22 15:56:11 · 2772 阅读 · 1 评论 -
数据库-数据库设计三范式;DBA常用命令
一、DBA常用命令1、新建用户CREATE USER username IDENTIFIED BY 'password';username:新建的用户名password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器create user admin11 identified by '123456';2、授权grant all privileges on dbname.tbname to 'username'@'login ip' iden原创 2022-06-12 21:27:59 · 487 阅读 · 0 评论 -
MySQL-索引;视图
一、索引MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。如:我们通过汉字字典查找汉字有两种方式(1)一页一页挨着找,直到找到为止,这种查找方式属于全字典扫描(2)通过汉语字典的目录页(索引),按拼音、笔画、偏旁部首等排序的目录(索引)缩小查找范围快速查找到需要的字select * from t_user where name = 'zhangsan';如果name字段上没有添加索引(目录),或者说没有给name字段创建索引,MySQL会原创 2022-01-22 22:04:23 · 1094 阅读 · 0 评论 -
MySQL-事务;存储引擎
一、事务(transaction)MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!(1)在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。(2)事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行(3)事务用来管理DML语句(insert,update,delete).原创 2022-01-19 22:18:54 · 1167 阅读 · 0 评论 -
数据库-命名规范
一、数据库命名规范 可以采用26个英文字母 (区分大小写) 和0-9的自然数 (一般不需要) 加上下划线 ‘_’ 组成,命名简介明确 (Student_Union),多个单词用下划线 ‘_’ 分隔,一个项目一个数据库,多个项目慎用同一个数据库二、表命名规范 1)采用26字母和0-9的自然数(一般不使用)加上下互相 ‘_’ 组成,命名简洁明确,多个单词用下划线 ‘_’ 隔开 2)全部小写命名,尽量避免出现大写(目前使用过的数据库里都不区分大小写) ...原创 2022-01-23 13:11:21 · 6488 阅读 · 0 评论 -
SQL-子查询;union;limit
select语句中嵌套select语句,被嵌套的select语句称为子查询子查询可以出现在 select,from,where等关键字之后 select ...(select)... from ...(select)... where ...(select)...1、where中的子查询分组函数不能够直接使用在where子句中mysql> select empname,sal from emp where sal > min(sal);ERROR原创 2022-01-11 12:17:26 · 788 阅读 · 0 评论 -
SQL- join多表关联
SQL 连接(JOIN)【1】SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段【2】下图展示了 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法【3】SQL JOIN 类型INNER JOIN:内连接,又叫等值连接,返回两个表中连接字段相等的行LEFT JOIN:左连接,即使右表中没有匹配,也从左表返回所有的行RIGHT JOIN:右连接,即使左表中没有匹配,也从右表返回所有的行FULL J.原创 2022-01-07 21:09:48 · 21535 阅读 · 2 评论 -
MySQL-函数
一、数据处理函数(单行处理函数)单行处理函数的特点:一个输入对应一个输出1、lower() 转换小写;标准SQL中函数LCASE()select lower(ename) as ename from emp;2、upper() 转换大写;标准SQL中函数UCASE()select upper(ename) as empname from emp;3、substr() 取子串(substr( 被截取的字符串, 起始下标,截取的长度))MID(字段,1,end)- 从某个...原创 2022-01-16 21:44:59 · 5206 阅读 · 0 评论 -
Oracle-SQL查询表的一条数据
我们需要查询表的一条数据,不管是最后一条数据还是第一条数据,都需要先进行排序查询,然后在此基础上取出一条数据,如:取出最后一条数据 SELECT * FROM (SELECT * FROM table_name ORDER BY id DESC) WHERE ROWNUM=1;//例:取出User表中最后一条数据 SELECT * FROM (SELECT * FROM USER ORDER BY USER_ID DESC) WHERE ROWNUM=1;如:取出第一条数据 S原创 2022-02-02 11:41:41 · 10066 阅读 · 0 评论 -
《阿里巴巴JAVA开发手册》超过三张表禁止join
《阿里巴巴JAVA开发手册》里面写超过三张表禁止join 这是为什么?这样的话那sql要怎么写?原文如下:计算机解决问题,要么用空间换时间,要么用时间换空间,此二法基本上能解决大多数疑难杂症该问题下,阿里大佬李晨曦的回答,通过空间换时间的方案来设计表,虽然数据冗余了,但查询性能显著提升了,该大佬的回答如下:一:为什么做这种限制?打个比方,如果我有无限的钱,我想买个豪华别墅,想买个跑车,想买个直升飞机,但现实是我没钱,只能租房住,只能走路上下班。。如果数据库的性能无限强大,多个表的j.原创 2021-09-03 16:31:53 · 1721 阅读 · 0 评论 -
MySQL-运算符
MySQL 主要有以下几种运算符:1、算术运算符2、比较运算符3、逻辑运算符4、位运算符算术运算符MySQL 支持的算术运算符包括:运算符 作用 + 加法 - 减法 * 乘法 / 或 DIV 除法 % 或 MOD 取余 在除法运算和模运算中,如果除数为0,将是非法除数,返回结果为NULL。1、加mysql> select 1+2;+-----+| 1+2 |+-----+| 3 |+-----+.转载 2021-08-08 11:21:31 · 239 阅读 · 0 评论 -
MySQL-函数
MySQL 字符串函数函数 描述 实例 ASCII(s) 返回字符串 s 的第一个字符的 ASCII 码。 返回 CustomerName 字段第一个字母的 ASCII 码: SELECT ASCII(CustomerName) AS NumCodeOfFirstCharFROM Customers; CHAR_LENGTH(s) 返回字符串 s 的字符数 返回字符串 RUNOOB 的字符数 SELECT CHAR转载 2021-08-08 11:21:20 · 226 阅读 · 0 评论 -
MySQL-SQL注入,导入,导出
一、MySQL 及 SQL 注入SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令以下实例中,输入的用户名必须为字母、数字及下划线的组合,且用户名长度为 8 到 20 个字符之间if (preg_match("/^\w{8,20}$/", $_GET['username'], $matches)){ $result = mysqli_query($conn, "SELECT * FROM users原创 2022-01-22 16:50:26 · 697 阅读 · 0 评论 -
MySQL-表复制;序列
一、事务MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!(1)在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。(2)事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行(3)事务用来管理 insert,update,delete 语句一般来说,事务是必须满足4个条件(A原创 2022-01-18 21:28:22 · 462 阅读 · 0 评论 -
MySQL-SQL语句命令
一、MySQL LIKE 子句在 MySQL 中使用 SQL SELECT 命令来读取数据, 同时我们可以在 SELECT 语句中使用 WHERE 子句来获取指定的记录。WHERE 子句中可以使用等号=来设定获取数据的条件,但是有时候我们需要获取 name 字段含有 "xiao" 字符的所有记录,这时我们就需要在 WHERE 子句中使用 SQL LIKE 子句。SQL LIKE 子句中使用百分号%字符来表示任意字符,类似于UNIX或正则表达式中的星号*。如果没有使用百分号%, LI...原创 2022-01-16 16:52:36 · 778 阅读 · 0 评论 -
MySQL-创建,删除数据库表,SQL命令
一、MySQL 创建数据表CREATE TABLE table_name (column_name column_type);实例:create table IF NOT EXISTS user ( id int(11) not null AUTO_INCREMENT, name char(20) NOT NULL DEFAULT '' comment '用户名', primary key(id)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAU原创 2022-01-15 21:31:17 · 1930 阅读 · 0 评论 -
MySQL-MySQL连接,创建,删除数据库database
一、MySQL 连接使用mysql二进制方式连接使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库。实例以下是从命令行中连接mysql服务器的简单实例:[root@host]# mysql -u root -pEnter password:******在登录成功后会出现 mysql> 命令提示窗口,你可以在上面执行任何 SQL 语句。以上命令执行后,登录成功输出结果如下:Welcome to the MySQL monitor. Comm原创 2022-01-13 22:10:07 · 775 阅读 · 0 评论 -
MySQL-MySQL关系型数据库管理系统
MySQL 是最流行的关系型数据库管理系统,MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一一、数据库数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理大数据量。原创 2022-01-11 21:36:55 · 2422 阅读 · 0 评论 -
SQL-SQL函数(二)Scalar 函数
SQL Scalar 函数基于输入值,返回一个单一的值有用的 Scalar 函数:UCASE() - 将某个字段转换为大写LCASE() - 将某个字段转换为小写MID() - 从某个文本字段提取字符,MySql 中使用SubString(字段,1,end) - 从某个文本字段提取字符LEN() - 返回某个文本字段的长度ROUND() - 对某个数值字段进行指定小数位数的四舍五入NOW() - 返回当前的系统日期和时间FORMAT() - 格式化某个字段的显示方式一、UCASE() - 将某个原创 2022-01-05 21:49:03 · 1120 阅读 · 0 评论 -
SQL-SQL函数(一)Aggregate 函数
SQL Aggregate 函数计算从列中取得的值,返回一个单一的值有用的 Aggregate 函数:AVG() - 返回平均值COUNT() - 返回行数FIRST() - 返回第一个记录的值LAST() - 返回最后一个记录的值MAX() - 返回最大值MIN() - 返回最小值SUM() - 返回总和一、AVG() - 返回平均值二、COUNT() - 返回行数三、FIRST() - 返回第一个记录的值四、LAST() - 返回最后一个记录的值五、MAX() - 返回最大值六、M原创 2022-01-04 21:55:40 · 3559 阅读 · 0 评论 -
SQL-高级命令(四)数据类型
1、SQL通用数据类型数据类型定义列中存放的值的种类。SQL 通用数据类型数据库表中的每个列都要求有名称和数据类型。Each column in a database table is required to have a name and a data type.SQL 开发人员必须在创建 SQL 表时决定表中的每个列将要存储的数据的类型。数据类型是一个标签,是便于 SQL 了解每个列期望存储什么类型的数据的指南,它也标识了 SQL 如何与存储的数据进行交互。下面的表格列出了 SQL.原创 2022-01-03 21:13:28 · 550 阅读 · 0 评论 -
SQL-高级命令(三)索引,表,数据库,视图(Views);CREATE,DROP,ALTER,AUTO INCREMENT
1、SQLCREATE DATABASECREATE DATABASE 语句用于创建数据库CREATE DATABASE dbname;2、SQLCREATE TABLECREATE TABLE 语句用于创建数据库中的表CREATE TABLE table_name(column_name1 data_type(size),column_name2 data_type(size),column_name3 data_type(size),....);column_..原创 2022-01-03 09:12:11 · 798 阅读 · 0 评论