数据库
文章平均质量分 78
数据库
杨林伟
像火箭科学家一样思考!
展开
-
如何恢复金蝶没有备份的账套?
如何恢复金蝶没有备份的账套原创 2023-10-13 20:00:00 · 628 阅读 · 0 评论 -
SAP HANA 详细介绍
文章目录01 引言02 HANA 概述2.1 简介2.2 工作原理2.3 特点03 架构3.1 HANA及相关外围系统3.2 HANA系统组成04 HANA 开发接口4.1 SQL 和 SQLScript4.2 MDX(多维度查询表达式)4.3 REST Service XS Server4.4 HANA Client Libraries05 HANA 相关资料06 文末01 引言最近用到了SAP HANA,本人对此也是一点概念都没有,究竟HANA为何物?本文来讲讲。02 HANA 概述2.1 简原创 2022-05-31 16:00:43 · 16593 阅读 · 1 评论 -
MySQL如何确定VARCHAR大小
抛出一个问题,如果需要存字符串到MySQL数据库里面的一张表里的某个字段,如何确定字段的长度大小?首先不建议使用TEXT类型的,因为使用TEXT会严重影响效率,最好的方式就是使用VARCHAR并确定字段的最大长度。我们可以先在表里定义一个字段rule_value,并设置长度为255,然后输入最小的json字符串进去:使用MySQL的CHAR_LENGTH函数,计算rule_value的大小:SELECT id,rule_type,rule_value,CHAR_LENGTH(rule_val原创 2022-02-15 09:20:50 · 2144 阅读 · 1 评论 -
21个写SQL的好习惯
本文转自:https://xie.infoq.cn/article/0a20c423e8fd0d4da26c28dba1. 写完SQL先explain查看执行计划(SQL性能优化)日常开发写SQL的时候,尽量养成这个好习惯呀:写完SQL后,用explain分析一下,尤其注意走不走索引。explain select * from user where userid =10086 or age =18;2、操作delete或者update语句,加个limit(SQL后悔药)在执行删除或者更新语句,原创 2020-11-06 15:39:44 · 575 阅读 · 0 评论 -
解决MyBatis判断整型失败的问题
先贴上SQL:<if test="isChoose != null and isChoose != '' and isChoose =1"> -- sql逻辑</if>如果isChoose传参1,MyBatis的if将1认为是' ',所以这样判断是无法进入条件的,修改后如下(使用==):<if test="isChoose != null and isChoose != '' and isChoose ==1"> -- sql逻辑</if原创 2020-11-06 09:41:42 · 687 阅读 · 0 评论 -
解决No enum constant org.apache.ibatis.type.JdbcType.XXX
MyBatis支持的jdbcType类型有以下几种:BIT、 FLOAT、CHAR、TIMESTAMP、OTHER、 UNDEFINED、TINYINT、REAL、VARCHAR、BINARY、BLOB、 NVARCHAR、SMALLINT、DOUBLE、LONGVARCHAR、VARBINARY、CLOB、NCHAR、INTEGER、NUMERIC、DATE、LONGVARBINARY、BOOLEAN 、NCLOB、BIGINT、DECIMAL、TIME、NULL、CURSOR如果报以下原创 2020-10-26 16:20:44 · 22456 阅读 · 2 评论 -
解决union查询order by 排序失效的问题
如果要对两个结果集进行合并,我们一般会使用union(去重)查询,SQL如下:select t1.age,t1.name from table1 t1union select t2.age,t2.name from table2 t2此时,需要对结果集按年龄进行排序,SQL如果这样写:select t1.age,t1.name from table1 t1unionselect t2.age,t2.name from table2 t2order by age 这样排序是有问题的原创 2020-11-06 09:26:09 · 1415 阅读 · 1 评论 -
解决MySQL count统计数目错误的问题
一般我们写count语句,SQL如下:select count(t.type) as total from table t 如果出现统计条目数多了的情况下,可以联合distinct来写,修改后如下:select count(distinct(t.type)) as total from table t原创 2020-11-06 09:30:54 · 1785 阅读 · 0 评论 -
MySQL遍历所有父节点和子节点
1. 引言先贴上建表SQL:DROP TABLE IF EXISTS `t_org`; CREATE TABLE `t_org` ( `id` int(11) NOT NULL, `name` varchar(20) DEFAULT NULL, `parent_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`));插入数据:INSERT INTO t_org(`id`, `name`, `parent_id`) VALUES (1, '首级组织',原创 2020-10-30 09:48:17 · 1734 阅读 · 1 评论 -
MySQL常用函数汇总
文章目录1. MySQL 数值型函数2. MySQL 字符串函数3. MySQL 日期和时间函数4. MySQL 聚合函数5. MySQL 流程控制函数1. MySQL 数值型函数函数名作用ABS求绝对值SQRT求二次方根MOD求余数CEIL 和 CEILING两个函数功能相同,都是返回不小于参数的最小整数,即向上取整FLOOR向下取整,返回值转化为一个BIGINTRAND生成一个0~1之间的随机数,传入整数参数是,用来产生重复序列RO原创 2020-10-28 12:00:27 · 418 阅读 · 0 评论 -
MySQL防止重复插入(数据库层where方法解决)
直接贴出解决的SQL:INSERT INTO tablename (属性1,属性2)SELECT '值1', '值2'FROM dualWHERE EXISTS ( SELECT 1 FROM tablename WHERE);参考博客:https://blog.csdn.net/weixin_40805079/article/details/84872998原创 2020-10-22 16:18:45 · 429 阅读 · 0 评论 -
数据库系列课程(24)-MongoDB资料
基础知识:链接:https://pan.baidu.com/s/1m8pVGR–t8e8R7hefRSDiA密码:i2bw高级:链接:https://pan.baidu.com/s/1-lGnBvrO0ZonZUBbSA-FXQ密码:dgdh原创 2020-10-19 17:20:18 · 316 阅读 · 0 评论 -
MySQL实现简单排名
01 基础知识sql语句中,使用@来定义一个变量。如:@abcsql语句中,使用:=来给变量赋值,:@abc:=123,则变量abc的值为123sql语句中,if(A,B,C)表示,如果A条件成立,那么执行B,否则执行C,如:@abc := if(2>1,100,200)的结果是,abc的值为100。sql语句中,还有case…when…then02 排名例子SELECT city_popularity.*, CASE WHEN @popularity = p原创 2020-10-16 14:59:53 · 366 阅读 · 0 评论 -
MySQL新建数据库详细说明
平时的开发过程中,我们新建数据库的时候,经常会让我们选择「字符集」和「排序规则」,那这两者该怎么去选呢?本文来个详细介绍。字符集字符集有很多的选择,一般选择"utf-8"。来介绍下"utf-8“与”utf-8mb4"的区别:utf8mb4兼容utf8,且比utf8能表示更多的字符(至于什么时候用,看你的做什么项目)。unicode编码区从1 ~ 126就属于传统utf8区,当然utf...原创 2020-02-21 11:39:16 · 566 阅读 · 0 评论 -
insert 与 select 的联合使用
下面介绍Mysql和Sqlite和Sqlserver中,根据select的条件判断是否插入。例如:一、Mysql中:INSERT INTO books (name) SELECT 'msg' FROM dual WHERE NOT EXISTS (SELECT id FROM books WHERE id = 1)二、Sqlite中:由于Sqlite中没有临时表:dual所以,需要这...原创 2019-09-12 15:50:04 · 4783 阅读 · 0 评论 -
Navicat Premium 12的安装与破解
请参考:https://blog.csdn.net/qq_40282981/article/details/80082773原创 2019-08-05 09:44:59 · 417 阅读 · 0 评论 -
解决SQL报错提供了过多的参数,最多应为 2100
使用SQLServer或其它数据库时,有时候查询条件过多的情况下会报如下类似的错误:传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。此 RPC 请求中提供了过多的参数。最多应为 2100这是由于查询条件过多造成的,所以需要分割查询条件,下面附上通用的方法:/***分割查询条件集合*/private static List<List<Integer>...原创 2019-07-25 14:44:02 · 4797 阅读 · 0 评论 -
117分布式电商项目 - 读写分离(方案)
我们一般应用对数据库而言都是“读多写少”,也就说对数据库读取数据的压力比较大,有一个思路就是说采用数据库集群的方案。其中一个是主库,负责写入数据,我们称之为:写库;其它都是从库,负责读取数据,我们称之为:读库;那么,对我们的要求是:1、读库和写库的数据一致;2、写数据必须写到写库;3、读数据必须到读库;解决读写分离的方案有两种:应用层解决和中间件解决。应用层解决优点:1...原创 2019-07-23 10:16:04 · 540 阅读 · 0 评论 -
109分布式电商项目 - MySQL优化(服务器优化)
优化服务器硬件服务器的硬件性能直接决定着MySQL数据库的性能,硬件的性能瓶颈,直接决定MySQL数据库的运行速度和效率。需要从以下几个方面考虑:1、配置较大的内存。足够大的内存,是提高MySQL数据库性能的方法之一。内存的IO比硬盘快的多,可以增加系统的缓冲区容量,使数据在内存停留的时间更长,以减少磁盘的IO。2、配置高速磁盘,比如SSD。3、合理分配磁盘IO,把磁盘IO分散到多个设备...原创 2019-07-22 16:32:41 · 474 阅读 · 0 评论 -
108分布式电商项目 - MySQL优化(插入数据优化)
插入数据时,影响插入速度的主要是索引、唯一性校验、一次插入的数据条数等。插入数据的优化,不同的存储引擎优化手段不一样,在MySQL中常用的存储引擎有,MyISAM和InnoDB,两者的区别:http://www.cnblogs.com/panfeng412/archive/2011/08/16/2140364.htmMyISAM禁用索引对于非空表,插入记录时,MySQL会根据表的索引对...原创 2019-07-22 16:30:41 · 348 阅读 · 0 评论 -
107分布式电商项目 - MySQL优化(数据库结构优化)
一个好的数据库设计方案对于数据库的性能往往会起到事半功倍的效果。需要考虑数据冗余、查询和更新的速度、字段的数据类型是否合理等多方面的内容。将字段很多的表分解成多个表对于字段较多的表,如果有些字段的使用频率很低,可以将这些字段分离出来形成新表。因为当一个表的数据量很大时,会由于使用频率低的字段的存在而变慢。增加中间表对于需要经常联合查询的表,可以建立中间表以提高查询效率。通过建立中间表...原创 2019-07-22 16:22:11 · 377 阅读 · 0 评论 -
106分布式电商项目 - MySQL优化(查询优化)
EXPLAIN在MySQL中可以使用EXPLAIN查看SQL执行计划,用法:EXPLAIN SELECT * FROM tb_item下面对上面的查询结果进行说明:1. idSELECT识别符。这是SELECT查询序列号。这个不重要。2.select_type表示SELECT语句的类型,一般有以下几种值:SIMPLE表示简单查询,其中不包含连接查询和子查询。PRIMARY...原创 2019-07-22 16:11:07 · 495 阅读 · 0 评论 -
数据库分区、分表、分库、分片
参考:https://blog.csdn.net/qq_28289405/article/details/80576614原创 2019-07-04 15:14:22 · 421 阅读 · 0 评论 -
mysql远程连接 Host * is not allowed to connect to this MySQL server
在本机登入mysql后,更改"mysql"数据库里的"user"表里的"host"项,从"localhost"改为’%’。代码如下:use mysql;update user set Host='%' where Host='root';最后重启MySql服务,我的电脑 -> 右键管理 -> 打开服务列表 -> 重新启动mysql。...原创 2019-07-02 10:50:07 · 385 阅读 · 0 评论 -
MyBatis 调用存储过程
创建存储过程需要在数据库里面操作。调用存储过程的流程如下:https://blog.csdn.net/dwenxue/article/details/82257944原创 2019-06-24 10:18:40 · 388 阅读 · 0 评论 -
SQLServer存储过程的执行计划
SELECT * FROM sys.[syscacheobjects] 查看当前缓存的执行计划如果执行存储过程时成功通过解析阶段,则 Microsoft SQL Server 查询优化器将分析存储过程中的 Transact-SQL 语句并创建一个执行计划。执行计划描述执行存储过程的最快方法,所依据的信息包括:1.表中的数据量。2.表的索引的存在及特征,以及数据在索引列中的分布。3.WHE...原创 2019-06-22 14:51:09 · 2039 阅读 · 0 评论 -
SQLServer存储过程中事务的创建
直接上代码if (exists(select * from sys.objects where name='JayJayToTest')) drop proc JayJayToTestgo create proc JayJayToTest @GiveMoney int, @UserName nvarchar(20)as beginset nocount on;...原创 2019-06-22 14:48:29 · 1264 阅读 · 1 评论 -
SQLServer分页获取数据的存储过程
直接上代码if (exists(select * from sys.objects where name='GetUserByPage')) drop proc GetUserByPagego create proc GetUserByPage @pageIndex int, @pageSize intas declare @startIndex int,@...原创 2019-06-22 14:46:22 · 476 阅读 · 0 评论 -
SQLServer存储过程中的输出参数的使用
if (exists(select * from sys.objects where name='GetUser')) drop proc GetUser go create proc GetUser @id int output, @name varchar(20) out as begin select @id=Id,...原创 2019-06-22 14:44:42 · 5945 阅读 · 0 评论 -
SQLServer存储过程详解
基本语法1.创建存储过程的基本语法模板if (exists (select * from sys.objects where name = 'pro_name')) drop proc pro_namegocreate proc pro_name @param_name param_type [=default_value]asbegin sql语句e...原创 2019-06-22 14:30:45 · 590 阅读 · 0 评论 -
白话数据库存储过程
什么是存储过程存储过程可以说是一个记录集,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用就行了。存储过程的好处1.由于数据库执行动作时,是先编译后执行的。然而存储过程是一个编译过的代码块,所以执行效率要比T-SQL语句高。2.一个存储过程在程序在网络中交互时可以替代大堆...原创 2019-06-22 14:04:05 · 406 阅读 · 0 评论 -
SQLServer拷贝远程数据库的内容到本地
参考文章:https://blog.csdn.net/wuzhanwen/article/details/77449229文章里的第四步之后就不要操作了原创 2019-06-22 11:42:14 · 3213 阅读 · 0 评论 -
解决SQL Server 用户'sa'登录失败(错误18456)
参考如下文章:https://blog.csdn.net/sunqing0316/article/details/46623823原创 2019-06-22 11:15:23 · 13493 阅读 · 0 评论 -
SQLServer sa远程登录
直接翻到这篇文章的这一部分开始阅读:原创 2019-06-22 11:01:48 · 3032 阅读 · 1 评论 -
SQLServer安装教程(史上最详细版本)
下载安装包已上传至百度网盘,安装包里已含注册码,下载地址(含注册码)链接:https://pan.baidu.com/s/147YRI7DdCqTOTKfe9UNtiA提取码:6txl安装过程1.选择解压目录2.解压完成后,进入解压目录,点击安装图标,以管理的身份运行3.开始安装点击【安装】- >全新安装或向现有安装添加功能点击确定输入产品秘钥:PTTFM-X46...原创 2019-06-22 10:18:46 · 316094 阅读 · 71 评论 -
解决com.microsoft.sqlserver.jdbc.SQLServerException: '@P1' 附近有语法错误。
@P1一般指的是【逗号】的错误,多写或者忘记写了,所以检查一下逗号有没有漏写,或者多写的。@P9一般指的是【括号】的错误,多写或者忘记写了,所以检查一下括号有没有漏写,或者多写的。...原创 2019-06-17 14:11:58 · 3147 阅读 · 1 评论 -
SQLSERVER '@P9' 附近有语法错误
问题是插入insert的时候,value后面写多了括号)解决方法:把括号去掉就可以了。原创 2019-06-12 17:29:03 · 664 阅读 · 0 评论 -
SQLServer删除表
删除表的T-SQL语句为:drop table <表名>drop是丢弃的意思,drop table表示将一个表彻底删除掉。删除表数据有两种方法:delete和truncate。delete的用法如下:delete from <表名> [where条件]truncate的用法如下:truncate table <表名>delete和truncate...原创 2019-06-03 16:24:57 · 19750 阅读 · 0 评论 -
SQLServer 模糊递归查询
代码:WITH temp ( ParaID, ParaName, ParentID ) AS ( SELECT s.ParaID, s.ParaName, s.ParentID ...原创 2019-06-03 14:24:43 · 403 阅读 · 0 评论 -
SQLServer 中的WITH AS
with as 的优点如果WITH AS短语所定义的表名被调用两次以上,则优化器会自动将WITH AS短语所获取的数据放入一个TEMP表里,如果只是被调用一次,则不会。而提示materialize则是强制将WITH AS短语里的数据放入一个全局临时表里。很多查询通过这种方法都可以提高速度。例子with cr as ( select CountryRegionCode from...原创 2019-06-03 11:03:31 · 1624 阅读 · 0 评论