数据库
热带鱼2020
这个作者很懒,什么都没留下…
展开
-
mysql 的 CONCAT_WS 和 CONCAT 函数的区别
CONCAT_WS 遇到 null 参数,最后不会返回 null。CONCAT 遇到 null 参数,最后返回结果是 null。所以需要先初始化参数再拼接。select concat_ws( ',', '11', '22', NULL ) as number; #返回 11,22select concat( '11', ',', '22', NULL ) as number; # 返回 NULLselect concat( '11', ',', '22', '' ) as ...原创 2020-09-18 10:18:49 · 185 阅读 · 0 评论 -
mysql 使用自定义函数的方法
如果在 mysql 里创建自定义函数,首先需要开启函数支持set GLOBAL log_bin_trust_function_creators = 1; # 开启函数支持但是 mysql 重启后就失效了,解决办法是在 /etc/my.cnf 里的 [mysqld] 下增加:log-bin-trust-function-creators=1...原创 2020-09-18 09:50:15 · 248 阅读 · 1 评论 -
sql --- 按分类,统计每类的数量
比如有一个 profession (职业表),按它的分类,统计每类的数量:按分类,统计每类的数量:SELECT p.type, COUNT( * ) from profession pwhere p.isDelete = 0GROUP BY p.type或SELECT p.type, COUNT( p.professionId ) from profession pwh...原创 2019-12-16 09:46:37 · 21033 阅读 · 0 评论 -
oracle wm_concat 函数 oracle 11g 返回 clob,转成 string 的方法
oracle 用 wm_concat 函数拼接字符串,测试环境是 10g,一切正常。到了生产环境是 11g,点开直接报错了。wm_concat 函数在 oracle 10g 返回的是字符串,到了 11g 返回的是 clob。解决办法: to_char( wm_concat( xxxx ) ),在 sql 里将 oracle.sql.CLOB 转成 string。转自: htt...原创 2019-11-25 14:27:59 · 2185 阅读 · 0 评论 -
oracle --- UNION, UNION ALL 并且子句中有 order by 写法
select * from ( select1 xxxx from xxxx order by xxxx ) aunion allselect * from ( select2 xxxx from xxxx order by xxxx ) b原创 2019-11-19 18:32:54 · 362 阅读 · 0 评论 -
SQL --- UNION 与 UNION ALL 的区别。 UNION ALL 不去重,不排序,会列出所有的值
简要回答:UNION 去重且排序UNION ALL 不去重,不排序,会列出所有的值UNION用的比较多union all是直接连接,取到得是所有值,记录可能有重复 union 是取唯一值,记录没有重复1、UNION 的语法如下: [SQL 语句 1] UNION [SQL 语句 2]2、UNION ALL 的语法如下: [SQL 语句 1] UNION A...原创 2019-11-13 08:57:00 · 1924 阅读 · 0 评论 -
mysql 和 oracle 实现 substr + lastIndexOf 功能
mysql 实现 lastIndexOf 功能函数1:REVERSE(str)使用说明:返回颠倒字符顺序的字符串str。mysql> select REVERSE('abcd');返回结果为: 'dcba'函数2:right(str,len)使用说明:返回字符串最右侧的 len 个字符mysql> select right('thisismyserver', 5);...原创 2019-11-10 00:09:26 · 675 阅读 · 0 评论 -
order 是 mysql 的关键字,不能用 order 作为表名
用 order 作为表名,navicat 无法创建查询。原创 2019-11-09 23:37:26 · 1716 阅读 · 0 评论 -
SQL --- order by 两个字段 排序
使用两个字段同时order by 排序SELECT * FROM tablename order by column1, column2, column3;如果不显示指出是升序还是降序,则默认为是升序(1) ORDER BY column1, column2;表示:column1 和 column2 都是升序(2) ORDER BY column1, column2 DESC;表...原创 2019-11-05 09:31:00 · 1476 阅读 · 0 评论 -
mysql / oracle 的 instr( field, str ) 函数
mysql / oracle 的 instr( field, str ) 函数,其中 field 是输入的字符串,str 是要查找的字符串。返回字符串 str 的位置,而不是索引,没找到就是 0select instr('helloworld', 'lo') from dual; ---返回结果:4select instr('helloworld', 'wo') from dual...原创 2019-10-28 17:53:34 · 562 阅读 · 0 评论 -
Oracle / Mysql 的 case when then else end 用法
Oracle / Mysql 的 case when then else end 用法结构:case when… then… else… end1.判断的同时改变其值,例子:select case when CreateTime > '2019-02-14 16:24:42' then '之后' when CreateTime < '2019-02-1...原创 2019-10-14 21:42:44 · 559 阅读 · 0 评论 -
MySQL 用户变量 的使用 ---- @变量名
mysql 的用户变量,使用 “@变量名” 定义。它的作用域为当前连接。-- 用户变量第一种用法,使用 set,这时可以用 “=” 或 “:=” 两种赋值符号赋值。set @age := 20;-- 用户变量第二种用法,使用 select,这时必须用 “:=” 赋值符号赋值。select @age := 32;select @age := stu_agefrom stud...原创 2019-08-26 09:21:54 · 2844 阅读 · 0 评论 -
windows 安装 neo4j,参考这两个页面的说明
windows 安装和启动:https://blog.csdn.net/huanxuwu/article/details/80785986windows 第一次启动后报错 未能加载指定的模块“\Neo4j-Management.psd1”:https://blog.csdn.net/zengqiaoya/article/details/89310702----------------...转载 2019-07-20 20:30:03 · 204 阅读 · 0 评论 -
一些 mysql 的内置函数
CONCAT(s1, s1, ...) :返回连接参数产生的字符串FIND_IN_SET(str,strlist) :strlist是由 ',' 分隔的字符串,如果 str 不在 strlist 或者 strlist 为空字符串,则返回0;若任意一个参数为 NULL 则返回 NULLIF(expr1,expr2,expr3) :如果 expr1 不为 0 或者 NULL,则返回 expr2...原创 2019-08-27 10:09:46 · 110 阅读 · 0 评论 -
sql 左连接,内连接 的写法
左连接的含义: 使用 LEFT JOIN 关键字,会从 左表 那里返回所有的行,即使在 右表 中没有匹配的行。 1)左连接 select a.*, b.* from table1 a left join table2 b on a.id = b.parent_id 2) 内连接 select a.*, b.* f...原创 2019-07-30 09:54:07 · 3762 阅读 · 0 评论 -
JDBC 简单的增删改查 MySQL 数据库
// 实体类 User 对应 user 表,有三个字段 id,username,passwordpublic class User { // id private Integer id; // 用户名 private String username; // 密码 private String password; public Integer getId() { ...转载 2019-04-05 19:13:18 · 170 阅读 · 0 评论 -
用 oracle sql developer 对 oracle 数据库做 增删改 操作后需要点 绿钩“提交”事务,才能在程序里运行 sql 查询看到数据库的变化
发现用 oracle sql developer 对 oracle 数据库做 增删改 操作后,需要点 绿钩“提交”事务,之后才能在程序里运行 sql 查询看到数据库的变化。另外 oracle sql developer 显示行号的方法:可以右键单击 行号区域 并单击 Toggle Line Numbers...原创 2019-09-26 16:16:43 · 786 阅读 · 0 评论 -
mysql 和 mysqld 的区别
mysql 是个命令行程序;mysqld 是服务。linux 系统里一般的服务都是以 d 结尾的,比如 httpd,vsftpd 等等。d 的全拼应该是 daemon,也就是守护程序的意思,常驻于后台。...转载 2019-03-30 19:46:47 · 14466 阅读 · 0 评论 -
oracle sql 日期比较
在今天之前:select * from up_date where updateTime < to_date('2007-09-07 00:00:00','yyyy-mm-dd hh24:mi:ss')select * from up_date where updateTime <= to_date('2007-09-07 00:00:00','yyyy-mm-dd hh24:mi...原创 2019-09-03 15:24:53 · 571 阅读 · 0 评论 -
oracle、mysql 建表时创建主键
oracle 建表时创建主键create table student (id number constraint id_pri primary key, name1 varchar(8) );创建复合主键:create table teacher (id number, name1 varchar(8), constraint aba_pri primary key(id, nam...原创 2019-09-03 18:31:58 · 1453 阅读 · 0 评论 -
Hibernate/hbm 类型 type 和 java 类型、数据库类型 的对应关系
Hibernate映射类型 Java类型 标准SQL类型 大小 integer/int java.lang.Integer/int INTEGER 4字节 long java.lang.Long/long BIGINT 8字节 short java.lang.Short/short SMALLINT 2字节 b...转载 2019-09-03 17:48:37 · 618 阅读 · 0 评论 -
hibernate/jpa/PreparedStatement 添加动态 to_date 时间参数报错:ORA-01858 在要求输入数字处找到非数字字符
用 hibernate 的 createNativeQuery 添加 to_date 时间参数报错:ORA-01858 在要求输入数字处找到非数字字符。一开始把 to_date 写到了设置 :参数 那一行,就会报错 ORA-01858 在要求输入数字处找到非数字字符。将 to_date 写到动态 sql 语句那一行,就不报错了。贴出 hibernate 正确设置 to_da...原创 2019-09-03 15:06:07 · 1869 阅读 · 0 评论 -
PreparedStatement 的 setDate 方法设置 java.sql.Date 日期
PreparedStatement 的 setDate 方法使用的是 java.sql.Date 类型的日期参数。设置这种参数的方法,例子:SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );java.util.Date date = sdf.parse( "2015-5-6 10:30:00" );...原创 2019-09-03 18:40:32 · 4089 阅读 · 0 评论 -
hibernate 插入 mysql 数据库,报错 Duplicate entry '1' for key 'PRIMARY'
mysql 主键 id 不能从 0 开始,要从 1 开始,否则就会报错 Duplicate entry '1' for key 'PRIMARY'原创 2019-09-22 12:51:47 · 385 阅读 · 0 评论 -
select count(0) from 和 select count(*) from 的区别
select count(*) :查询总行数,并且会对表的每个字段进行扫描select count(0) :忽略所有列,只进行全表总行数原创 2019-09-26 09:07:01 · 6866 阅读 · 6 评论 -
遇到 hibernate 中保存 oracle date 类型的时间,却造成保存结果的 时分秒 精准度丢失
oracle 数据库的时间字段定义的是 DATE 类型,将它改为改成 TIMESTAMP 类型就能保存 时分秒 了。java代码里,实体类的日期类型属性使用 java.util.Date 就行。hbm 配置文件里要改成这样: <property name="createTime" type="timestamp">如果用的是实体类里的注解,就这样写: @Temporal(valu...原创 2019-09-29 15:39:24 · 509 阅读 · 0 评论 -
mysql 添加中文数据出现乱码的解决方法,加上 useOldAliasMetadataBehavior=true&characterEncoding=utf-8
#common.db.url=jdbc:mysql://localhost:3306/mysqlDB?useOldAliasMetadataBehavior=true&characterEncoding=utf-8原创 2017-08-14 13:44:06 · 1696 阅读 · 0 评论 -
ubuntu 上 navicat 无法新建查询,而且字体非常小
解决方法:选择编辑连接属性,再选高级。在高级下可以看到有个设置位置,需要改正这个地方的路径,修改为 navicat 在 linux 上的目录。如果 navicat 安装在 /home/tools/Navicat,就把 “设置位置” 里的 Y:\.navicat\Navicat\MySQL\servers\192.168.100.100改成 /home/tools/Navicat 。而且发...原创 2019-03-30 11:56:54 · 639 阅读 · 0 评论 -
mysql 什么时候需要执行 flush privileges ?
flush privileges 命令的作用是将当前 user 和 privilige 表中的用户信息/权限设置从 mysql 库 (MySQL数据库的内置库) 中提取到内存里。MySQL用户数据和权限出现修改后,希望在"不重启MySQL服务"的情况下直接生效,就需要执行这个命令。在修改某个帐号的设置后,避免重启,那么 flush privileges 之后就可以使权限设置生效。...原创 2019-03-30 10:32:12 · 3405 阅读 · 0 评论 -
Oracle 数据库表结构转换成 Mysql 数据库表结构
搜到了 3 种实现方法:1 用 powerDesigner 转。2 用 navicat premium 转。3 自己写程序转。以下是使用 powerDesigner 16.5 的表结构转换方法,不包含导出数据。1.导入 oracle sql 文件File->Reverse Engineer->Database,设置物理模型的名称及所使用数据库类型,选择 Oracle version 1...原创 2018-05-18 12:56:26 · 4256 阅读 · 0 评论 -
mysql 如何实现乐观锁?
mysql 如何实现乐观锁?一般来说有2种方式:1.使用数据版本(Version)记录机制实现,这是乐观锁最常用的一种实现方式。一般是通过为数据库表增加一个数字类型的 “version” 字段来实现。当读取数据时,将version字段的值一同读出,数据每更新一次,对此version值加一。当提交更新的时候,判断数据库表对应记录的当前版本信息与第一次取出来的version值进行比对,如果数据库表当前...原创 2018-04-13 18:36:20 · 5021 阅读 · 0 评论 -
sql 中使用 between and 查询日期时左右闭合的问题
sql 中使用 between and 查询日期时左右闭合的问题用 select * from TABLE where date between '2009-1-22' And '2009-1-22' ,结果查不到问题原因短日期类型默认Time为00:00:00,所以当使用between作限制条件时,就相当于 between '2009-1-22 00:00:00' and '2009-1-22 ...原创 2018-04-04 12:05:28 · 18304 阅读 · 3 评论 -
oracle 中的 ifnull( a, b ) 变成了 nvl( a, b )
在之前公司用 mysql新公司用 oracle 发现用不了 ifnull 了网上搜了下 发现 oracle 没有 ifnull 但是有相应的函数 nvl具体的用法同 ifnull 差别不大写法:select nvl( column, '代替字段或者值' ) from tableName;...原创 2018-04-08 17:37:20 · 9290 阅读 · 0 评论 -
解决 mysql 插入反斜杠消失的问题
解决方法:将转义符"\"增加为"\\",如果字符串str含有反斜杠,那么 str=str.replaceAll("\\\\", "\\\\\\\\"); 参考String b="a\b";b=b.replaceAll("\\\\", "\\\\\\\\");System.out.println(b);原创 2017-08-14 14:46:45 · 1716 阅读 · 0 评论 -
mybatis 操作 oracle 报错 ORA-0094 表或视图不存在
mybatis 操作 oracle 报错 ORA-0094 表或视图不存在问题产生的原因oracle 是大小写敏感的,我们创自己写Sql脚本创建表的时候Oracle会自动将表名,字段名转成大写但是 Oracle 同样支持"" 语法,将表名或字段名加上""后,Oracle不会将其转换成大写如果加上了"",那么我们采用一般的SQL语句查询则会产生“ORA-00942: 表或原创 2017-07-31 18:56:39 · 6700 阅读 · 0 评论 -
oracle 生成对应文件时报错 Table configuration with catalog null, schema null...
mybatis generator 生成 oracle 对应文件时报错Table configuration with catalog null, schema null, and table message did not resolve to any tables 网上搜到说,是表名设置的问题。一个 网页说是 power designer 生成的表,表名会带引号。我使用 navic...原创 2017-07-23 10:33:12 · 1577 阅读 · 0 评论 -
ORA-01843:无效的月份
mysql 添加日期记录:insert into message( create_time ) values( '2017-07-29' )oracle 这样写会报错,ORA-01843:无效的月份 。需要改成 insert into message( create_time ) values( To_Date('2005-7-29','YYYY-MM-DD') )------原创 2017-07-31 10:34:52 · 1434 阅读 · 0 评论 -
Oracle 解锁用户
Oracle 安装时一些 用户 是默认锁定的,例如常用到的 scott 安装时,没给解锁。怎么手动给 scott 解锁?具体过程如下:用 cmd 命令行调用 SQL*plus运行 -> cmd,进入命令行,然后用 sys 或者 system 登录sqlplus /nologSQL>conn system/oralce; 或者 connect system/ora原创 2017-07-13 09:10:40 · 308 阅读 · 1 评论 -
mysql rownum 的实现方法
mysql rownum 的实现方法SELECT @rownum := @rownum+1 rownum, id from( SELECT @rownum := 0, id FROM t_student WHERE status = 1 ORDER BY id asc ) as t原创 2017-03-09 13:29:21 · 816 阅读 · 2 评论 -
mysql 从某 id 开始,连续查询 10 条数据
mysql 从某 id 开始,连续查询 10 条数据SELECT id from t_tw_word awhere a.id >= 3limit 10原创 2017-03-13 11:30:16 · 2394 阅读 · 0 评论