数据库
shijie_nihao
二流搬砖人,cv工程师。
展开
-
postgresql函数积累01
string_to_arrayarray_length原创 2021-08-05 14:13:46 · 221 阅读 · 0 评论 -
postgis入门02
01、创建包含geometry类型的表-- 第一种方式创建包含geometry类型的表CREATE TABLE station ( ID SERIAL PRIMARY KEY, -- 主键 NAME VARCHAR ( 64 ), -- 名称 coord GEOMETRY(Point,4326) -- 点坐标,coord是字段名称,一般是geom或the_geom,可以自定义);-- 创建索引CREATE INDEX indexName ON tableName U原创 2021-07-31 01:09:28 · 231 阅读 · 0 评论 -
postgis入门01
01、创建 geometry类型的对象select st_geomfromtext(('POINT(117 36.5)'),4326) as coords;02、geometry转wktselect st_astext(st_geomfromtext(('POINT(117 36.5)'),4326));03、wkt转geojsonselect st_asgeojson(st_astext(st_geomfromtext(('POINT(117 36.5)'),4326)));原创 2021-07-30 18:08:38 · 169 阅读 · 0 评论 -
数据库表的某列的自定义自增函数(mysql)
1、在该列上创建唯一值约束-- 表名 约束名 列名,都不带引号alter table 表名 add constraint 约束名 unique (列名)2、根据字段值要求(比如 年份后两位+两位月份+两位天+当天的第几条记录(5位数,不足在左侧补零)),写一个自增函数。-- dbname01 数据库名-- generateCode 函数名-- testtb01 表名-- b...原创 2020-04-27 21:10:28 · 1642 阅读 · 0 评论 -
数据库生成连续的数据值。
1、工作中遇到“在数据库中取一段连续的值”的需求,在sqlserver里可以借助 master..spt_values表(master.dbo.spt_values表)取数据序列(select number from master.dbo.spt_values),取值范围是0~2047。2、Oracle数据库根据dual表和connect by语句,生成数字序列。-- 生成 2901~3...原创 2020-03-12 23:26:15 · 376 阅读 · 0 评论 -
数据库 字段拼接,去除null值
1、MySql数据库SELECT CONCAT_WS(分割符,列1,列2,列3...) AS 新列名 FROM 表名2、SqlServer数据库SELECT STUFF( COALESCE(',' + 列名, '') + COALESCE(',' + 列名, '') + COALESCE(',' + 列名, '') + COALESCE(',' ...原创 2020-03-02 00:33:18 · 2018 阅读 · 0 评论 -
postgresql 语法积累
1、类型转换(::关键子)select colName::text from tableName (把colName列转为 text类型)2、分组聚合,多行合并(string_agg函数)select colA,string_agg(colB,'分隔符') from tableA group by colA...原创 2020-02-12 11:09:45 · 153 阅读 · 0 评论 -
Oracle问题记录_postgresql和oracle语法不完全兼容(ORA-00905:缺失关键字)
以前写过的程序(Mybatis)使用的是postgresql数据库,由于某些原因,需要更换数据库版本(更换为Oracle11g),把代码移植后,出现 "缺失关键字错误",于是就检查sql语句,没看出问题在哪,把sql逐句精简,并去除关键字,最后发现是语法问题。( oracle 11g 表名 和 别名 之间 不能有 as 关键字)postgresql语句:SELECT c...原创 2020-02-10 17:36:02 · 1325 阅读 · 1 评论 -
sqlserver字符串转为表
sqlserver版本:2012函数如下:create Function StrToTable(@str varchar(1000))Returns @tableName Table( str2table varchar(50))As--该函数用于把一个用逗号分隔的多个数据字符串变成一个表的一列,例如字符串'1,2,3,4,5' 将编程一个表,这个表Beginset ...转载 2019-10-29 21:37:06 · 1244 阅读 · 0 评论 -
sqlserver导出某个表的数据
1、工具版本:20122、步骤原创 2019-10-22 21:50:00 · 8066 阅读 · 0 评论 -
SqlServer递归查询
1、模板如下with tmpTableas(-- 1、根节点select * from tableName where parentId = 'xxx'union all-- 2、递归条件select * from tableName a inner join tmpTable b on a.parentId = b.id)select * from tmpTable; ...原创 2019-09-10 23:41:41 · 911 阅读 · 0 评论 -
sqlserver备份数据库 ——分离&附加 数据库
软件版本:sqlserver 20121、记录数据库文件的存放位置右键数据库,点击属性按钮。2、右键数据库 》 任务 》 分离3、打开第一步记录的目录,把 xxx.mdf文件拷贝到另一个目录 B。4、按下图所示步骤附加数据库 除了导出bak文件(https://blog.csdn.net/shijie_nihao/...原创 2019-09-11 23:26:28 · 404 阅读 · 0 评论 -
sqlserver数据库备份与还原
1、备份(导出bak文件) 按下图所示步骤导出一个 后缀为bak的文件2、还原按下图所示步骤,最后按确定即可还原的时候可能遇到的问题的解决方式1、修改数据库 多用户登录、单用户登录 右键数据库 》 属性 》 选项 》 状态 》 限制访问2、关闭访问数据库的程序,比如tomcat3、断开其他数据库连接 declar...原创 2019-09-10 23:34:29 · 674 阅读 · 0 评论 -
sqlserver分页
1、方式一 以row_number函数为基础select * from (select row_number() over (order by colName) as rowNum,* from tableName) as t where rowNum between 10 and 20 -- 从第10行到第20行,共11条记录2、方式二 使用 top n关键字s...原创 2019-09-10 00:40:33 · 115 阅读 · 0 评论 -
sqlserver选择行号、随机查询
1、选择行号select row_number() over (order by colName) as rowNum,* from tableName2、随机排序select *,newid() randomId from tableName order by randomId 3、随机选取一行 1)方式一,以 选择行号 为基础,过滤条件是 rowNum 等...原创 2019-09-10 00:32:04 · 998 阅读 · 0 评论 -
数据库模糊查询
前言:一般情况下的模糊查询的模糊查询是使用 like 关键字匹配 某列是否包含给定的内容,判定结果是字段包含内容。在某些特殊的需求下,得反过来考虑“模糊查询”:字段值是否包含于给定的内容(字段值被包含)。该笔记记录完成这种需求的两个函数:instr(Oracle)和charindex(sqlserver)。1、instr函数select instr(aStr,bSt...原创 2019-09-11 22:59:22 · 1430 阅读 · 0 评论 -
拼接一个字段的多条记录&字符串分割成多条记录(sqlserver)
前言:该笔记以sqlserver为例1、拼接一列数据为一个字符串-- 把tableName表的colName列(字符串类型)的值 按 逗号拼接,结果名为name select stuff((select ','+ colName from tableName for xml path ('')),1,1,'') as names2、以逗号分隔的字符串组合成为多条记录sel...原创 2019-09-08 23:15:17 · 1762 阅读 · 0 评论 -
Oracle case的用法
语法结构: case exp when comexp then returnvalue ... when comexp then returnvalue else returnvalue end 按照 exp 语句是否存在可分为两类case。存在exp时,称为简单case结构,一般comexp...原创 2019-07-29 13:33:06 · 2056 阅读 · 0 评论 -
Mybatis & Oracle模糊查询
方法一:直接使用%拼接字符串colName like '%'||#{paramName}||'%'方法二:使用concat函数colName like concat(concat('%',#{paramName}),'%')方法三:使用mybitis的bind标签 <if test="paramName!= null"> <...原创 2019-07-24 20:16:17 · 713 阅读 · 0 评论 -
Oracle常用函数
NVLNVL(express1,express2),如果express1为空,返回express2,否则返回express1。NVL2nvl2(express1,express2,express3),如果express1为空,返回express3,否则返回express2。decodedecode(expr,if结果1,value1,if结果2,value2,默认值),可以认为...原创 2019-07-26 14:22:51 · 112 阅读 · 0 评论 -
Oracle笔记_日期相关
1、日期格式字符串(格式字符串不区分大小写)-/,.;: 日期字符串分隔符yyyy(年) mm(月) dd(日,当月第几天) hh24(24小时制) hh(12小时制) mi(分钟) ss(秒)ddd(当年第几天)mon(月份,英文缩写,11月就是nov)dy(星期几,或者day)D(返回1-7,对应周日-周六,注意和DY的区别)ww(一年中的第几周,或者i...原创 2019-07-23 14:52:17 · 509 阅读 · 0 评论 -
Oracle获取表的相关信息的操作
先介绍四个Oracle的表:all_tab_comments,user_tab_comments,all_col_comments,user_col_comments。1、all_tab_comments,展示当前用户能访问到的表和视图的信息,表结构如下:2、user_tab_comments,展示 属于当前用户的 表和视图的信息,比all_tab_comments少OWNER列...原创 2019-08-05 11:40:27 · 530 阅读 · 0 评论 -
Oracle序列
对序列的直观理解:一个“数字产生器”语法格式: create sequence seq_name [start with n] --起始数字 [minvalue n | nomainvalue] --最小值 [maxvalue n | nomaxvalue] --最大值...原创 2019-08-09 00:49:08 · 108 阅读 · 0 评论 -
Oracle循环
原文地址:https://www.cnblogs.com/msx-2018-begin/p/8855471.html,借用原文,在这做下笔记。1、for语句declarebegin for i in 2..10 Loop -- 2..10,从2循环到10 dbms_output.put_line('结果i是:'||i); end loop;end;2、 wh...原创 2019-08-16 10:47:56 · 120 阅读 · 0 评论 -
Oracle 正则函数
regexp_substr regexp_substr和编码是用的substring函数是两回事,觉得regexp_substr更像是分割字符串。-- 从第一个字符开始,以','分割字符串,返回分割后的第二个子串。理解尚浅。。。select REGEXP_SUBSTR('111,aaaa,222','[^,]+',1,2) from dualregexp_like...原创 2019-08-21 22:57:01 · 263 阅读 · 0 评论 -
dual表查询多条记录
案例记录1:主要是用connect byselect 'dual' from dual connect by level<=6案例记录2:主要使用level、connect by、regexp_substr。select regexp_substr('1、2、3、4、5、6', '[^、]+', 1, level) num from dualconnect by...原创 2019-08-16 10:54:22 · 3588 阅读 · 0 评论 -
mybatis同一个字段,多次模糊查询
问题描述: 在一个字段上执行多关键字模糊查询,拼接多个 like 。实现方式: and条件: 方式一:直接使用like语句拼接。 select * from table where field like '%xxx%' and field like '%xxx%'。 ...原创 2019-08-21 22:17:24 · 3975 阅读 · 0 评论 -
无监听程序、协议适配器错误、不能创建监听程序、listener does not currently know of service requested in connect descriptor
不知道怎么回事,plsql登不上oracle了,遇到一连串的问题,在此记录下。1、无监听程序、协议适配器错误 找到Net Configuration Assistant程序,在删除原来的监听配置。 监听程序配置-->删除-->选择之前的监听配置,删除完之后,再新建一个和之前端口一样的监听配置。2、不能创建监听程序 ...原创 2019-08-28 14:29:53 · 2677 阅读 · 0 评论 -
Oracle环境变量配置
在网上看了挺多的博客,总体分成两类。不同的人在安装Oracle的时候选择的选项不一样,有的包括客户端,有的只是安装了Oracle数据库服务器,然后再单独配置客户端工具。1、安装的Oracle包括了客户端工具ORACLE_HOME:安装目录\product\11.2.0\dbhome_1TNS_ADMIN:安装目录\product\11.2.0\dbhome_1\NE...原创 2019-08-28 15:00:48 · 302 阅读 · 0 评论 -
SqlServer 类型转换
cast(colName as int) --转成int cast(colName as varchar(20)) --转为字符串 cast('2019-08-01',datetime) --字符串转日期 cast(colName as nvarchar(4000)) --colName列式ntext类型,把ntext类型转为 nvarcha...原创 2019-09-11 22:37:56 · 2952 阅读 · 0 评论 -
mybatis、sqlserver、Map
一般情况下,mybatis是配合oracle一块使用,但是也不妨碍mybatis和sqlserve配合使用,但是如果突然从oracle转为sqlserver,会不可避免地犯些 意外的 错误,改笔记记录了一次 犯错经验。 1、开发环境 SpringMVC Spring Mybatis 2、数据库 sqlserver ...原创 2019-09-06 21:31:47 · 386 阅读 · 0 评论 -
Oracle 创建时间序列
1、往前20天(包括今天)select to_date('2019-06-09 12:00', 'YYYY-MM-DD HH24:MI') - (level - 1) as day_sequence from dualconnect by level <= 202、往前20小时select to_date('2019-06-09 12:00', 'YYYY-MM-DD ...原创 2019-06-09 23:38:42 · 2720 阅读 · 0 评论