1.
2.
\a 在非对齐和对齐的输出模式之间切换 \C[字串] 设置表标题, 如果参数空则取消标题 \cd [目录名] 改变当前的工作目录 \copy... 执行 SQL COPY, 数据流指向客户端主机 \copyright 显示 PostgreSQL 用法和发布信息 \d[名字] 描述表, 索引, 序列, 或者视图 列出表/索引/序列/视图/系统表 \d{t|i|s|v|S}[模式] (加 "+" 获取更多信息) 列出表/索引/序列/视图/系统表 \da[模式] 列出聚集函数 \dd[模式] 显示目标的注释 \dD[模式] 列出域 \df[模式] 列出函数 (加 "+" 获取更多的信息) \do[名字] 列出操作符 \dl 列出大对象, 和 \lo_list 一样 \dp[模式] 列出表访问权限 \dT[模式] 列出数据类型 (加 "+" 获取更多的信息) \du[模式] 列出用户 \e[文件名] 用一个外部编辑器编辑当前查询缓冲区或者文件 \echo [字串] 向标准输出写出文本 \encoding[哪种编码] 设置客户端编码(EUC_JP,GBK) \f[字串] 设置域分隔符 \g文件名 向服务器发送 SQL 命令 (并且把结果写到文件或者 |管道) \h[名字] SQL 命令的语法帮助, 用 * 可以看所有命令的帮助 \H 在 HTML 输出模式之间切换 (当前是 关闭) \i文件名 执行来自文件的命令 \l 列出所有数据库 \lo_export, \lo_import, \lo_list, \lo_unlink 大对象操作 \o文件名 向文件或者 |管道 发送所有查询结果 \p 显示当前查询缓冲区的内容 \pset 名字[值] 设置表的输出选项 (NAME := {foramt|border|expaned| (名字 := {foramt|border|expanded|fieldsep|null|recordsep| tuples_only|title|tableattr|pager}) \q 退出 psql \r 重置 (清理) 查询缓冲区 \s[文件名] 打印历史或者将其保存到文件 \set [名字[值]] 设置内部变量, 如果没有参数就列出所有 \t 只显示行 (当前是 关闭) \T[字串] 设置 HTML <表>标记属性, 如果没有参数就取消设置 \timing 查询计时开关切换 (目前是 关闭) \unset名字 取消(删除)内部变量 \w[文件名] 将当前查询缓冲区写出到文件 \x 在扩展输出之间切换 (目前是 关闭) \z[模式] 列出表访问权限 (和 \dp 一样) \![命令] 在 shell 里执行命令或者开始一个交互的 shell
\echo [string] 输出字符串
\qecho[字串] 向查询输出流写出文本 (见 \o)
3. 将数据库 导出到 文件标识符
命令:
\copy 表名 to 文件名|标准输出 [delimiter as ‘分隔符’] [null as ‘null表示的字符串’ ][csv quote as‘引号的类型’]
解释:
可以将表中的数据输出到 文件或标准输出。
delimiter as ‘分隔符’ :说明输出设备的文本中表的每个字段用什么字符分割,默认是tab; null as‘null表示的字符串’:说明输出设备的文本中表的NULL值的表示方法,默认为“\N”; csv quote as ‘引号类型’:说明导出的csv文件中的引号类型是什么, 对于Postgres7.4以前的版本,不支持csv的导入与导出,这时不要使用这个可选项。
例子: aa=#\copy testtable to data.csv delimiter as ‘,’ csv quote as ‘”‘ 这条命令将testtable表中的内容作为SQL语句,导出data.csv文件中。 delimiter as ‘,’ :说明data.txt文本中表的每个字段用“逗号”分割; csv quote as ‘”‘ :说明csv中的引号类型是“双引号”。 像前面说的:这个例子不适用在Postgres7.4以前的版本。
注意文件保存路径默认在:
C:\Documents andSettings\zhuyaopeng\目录下 而且只保存数据,不保存表结构
4. 从 文件标识符 导入数据到数据库
命令:
\copy 表名 form 文件名|标准输入 [delimiter as ‘分隔符’] [null as ‘null表示的字符串’] [csv quote as ‘引号的类型’] 例子: aa=#\copy testtable fromdata.csv delimiter as ‘,’ csv quote as‘”‘ 这条命令将data.csv文件中的文本,作为sql语句导入到testtable表, delimiter as ‘,’ :说明data.txt文本中表的每个字段用“逗号”分割; csv quote as ‘”‘ :说明csv中的引号类型是“双引号”。
5.如何只选择一个查询结果的头几行?或是随机的一行?
如果你只是要提取几行数据,并且你在执行查询中知道确切的行数,你可以使用LIMIT功能。如果有一个索引与 ORDER BY中的条件匹配,PostgreSQL可能就只处理要求的头几条记录,(否则将对整个查询进行处理直到生成需要的行)。如果在执行查询功能时不知道确切的记录数,可使用游标(cursor)和FETCH功能。
可使用以下方法提取一行随机记录的:
SELECT cols FROM tab ORDER BY random() LIMIT 1 ;
6.如何查看表、索引、数据库以及用户的定义?如何查看psql里用到的查询指令并显示它们?
在psql中使用 \dt命令来显示数据表的定义,要了解psql中的完整命令列表可使用\?,另外,你也可以阅读 psql 的源代码文件pgsql/src/bin/psql/describe.c,它包括为生成psql反斜杠命令的输出的所有SQL 命令。你还可以带 -E 选项启动 psql,这样它将打印出执行你在psql中所给出的命令的内部实际使用的SQL查询。PostgreSQL也提供了一个兼容SQL的INFORMATIONSCHEMA接口, 你可以从这里获取关于数据库的信息。
在系统中有一些以pg_打头的系统表也描述了表的定义。
使用 psql -l指令可以列出所有的数据库。
也可以浏览一下pgsql/src/tutorial/syscat.source文件,它列举了很多可从数据库系统表中获取信息的SELECT语法。
7.如何更改一个字段的数据类型?
在8.0版本里更改一个字段的数据类型很容易,可使用 ALTER TABLEALTER COLUMN TYPE 。
在以前的版本中,可以这样做:
BEGIN; ALTER TABLEtab ADD COLUMN new_col new_data_type; UPDATE tabSET new_col = CAST(old_col AS new_data_type); ALTER TABLEtab DROP COLUMN old_col; COMMIT;
你然后可以使用VACUUM FULL tab指令来使系统收回无效数据所占用的空间。
8.一行记录,一个表,一个库的最大尺寸是多少?
下面是一些限制:
一个数据库最大尺寸? 无限制(已存在有 32TB的数据库) 一个表的最大尺寸? 32 TB 一行记录的最大尺寸? 1.6 TB 一个字段的最大尺寸? 1 GB 一个表里最大行数? 无限制 一个表里最大列数? 250-1600 (与列类型有关) 一个表里的最大索引数量? 无限制
当然,实际上没有真正的无限制,还是要受可用磁盘空间、可用内存/交换区的制约。事实上,当这些数值变得异常地大时,系统性能也会受很大影响。
表的最大尺寸 32 TB不需要操作系统对大文件的支持。大表用多个 1 GB的文件存储,因此文件系统尺寸的限制是不重要的。
如果缺省的块大小增长到 32K,最大的表尺寸和最大列数还可以增加到四倍。
9.存储一个典型的文本文件里的数据需要多少磁盘空间?
一个 Postgres数据库(存储一个文本文件)所占用的空间最多可能需要相当于这个文本文件自身大小5倍的磁盘空间。
例如,假设有一个 100,000行的文件,每行有一个整数和一个文本描述。假设文本串的平均长度为20字节。文本文件占用 2.8 MB。存放这些数据的PostgreSQL 数据库文件大约是 6.4 MB:
32 字节: 每行的头(估计值) 24 字节: 一个整数型字段和一个文本型字段 + 4 字节:页面内指向元组的指针 ---------------------------------------- 60 字节每行
PostgreSQL 数据页的大小是 8192 字节 (8 KB),则:
8192字节每页 ------------------- = 136 行/数据页(向下取整) 60 字节每行
100000数据行 -------------------- = 735数据页(向上取整) 128 行每页
735数据页 * 8192 字节/页 = 6,021,120 字节(6 MB)
索引不需要这么多的额外消耗,但也确实包括被索引的数据,因此它们也可能很大。
空值NULL存放在位图中,因此占用很少的空间。
10.为什么我的查询很慢?为什么这些查询没有利用索引?
并非每个查询都会自动使用索引。只有在表的大小超过一个最小值,并且查询只会选中表中较小比例的记录时才会采用索引。这是因为索引扫描引起的随即磁盘存取可能比直接地读取表(顺序扫描)更慢。
为了判断是否使用索引,PostgreSQL必须获得有关表的统计值。这些统计值可以使用VACUUM ANALYZE,或 ANALYZE 获得。使用统计值,优化器知道表中有多少行,就能够更好地判断是否利用索引。统计值对确定优化的连接顺序和连接方法也很有用。在表的内容发生变化时,应定期进行统计值的更新收集。
索引通常不用于 ORDER BY或执行连接。对一个大表的一次顺序扫描,再做一个显式的排序通常比索引扫描要快。
但是,在 LIMIT 和 ORDER BY结合使用时经常会使用索引,因为这只会返回表的一小部分。 实际上,虽然MAX() 和 MIN() 并不使用索引,通过对 ORDER BY 和 LLIMIT使用索引取得最大值和最小值也是可以的:
SELECT col FROM tab ORDER BY col [ DESC ] LIMIT 1;
如果你确信PostgreSQL的优化器使用顺序扫描是不正确的,你可以使用SETenable_seqscan TO 'off'指令,然后再次运行查询,你就可以看出使用一个索引扫描是否确实要快一些。
当使用通配符操作,例如 LIKE 或 ~时,索引只能在特定的情况下使用:
字符串的开始部分必须是普通字符串,也就是说: LIKE 模式不能以 % 打头。 ~ (正则表达式)模式必须以 ^ 打头。 字符串不能以匹配多个字符的模式类打头,例如 [a-e]。 大小写无关的查找,如 ILIKE 和 ~* 等不使用索引,但可以用 4.8节描述的函数索引。 在做 initdb 时必须采用缺省的本地设置 Clocale,因为系统不可能知道在非C locale情况时下一个最大字符是什么。在这种情况下,你可以创建一个特殊的text_pattern_ops索引来用于LIKE的索引。 在8.0之前的版本中,除非要查询的数据类型和索引的数据类型相匹配,否则索引经常是未被用到,特别是对int2,int8和数值型的索引。
11.我怎样做正则表达式搜索和大小写无关的正则表达式查找?怎样利用索引进行大小写无关查找?
操作符 ~处理正则表达式匹配,而 ~*处理大小写无关的正则表达式匹配。大写些无关的 LIKE 变种成为ILIKE。
大小写无关的等式比较通常写做:
SELECT * FROMtab WHERElower(col) = 'abc';
这样将不会使用标准的索引。但是可以创建一个可被利用的函数索引:
CREATE INDEX tabindex ON tab (lower(col));
12.在一个查询里,我怎样检测一个字段是否为 NULL?我如何才能准确排序而不论某字段是否含 NULL值?
用 IS NULL 和 IS NOT NULL测试这个字段,具体方法如下:
SELECT* FROM tab WHERE col IS NULL;
为了能对含 NULL字段排序,可在 ORDER BY条件中使用 IS NULL和 IS NOT NULL 修饰符,条件为真 true将比条件为假false 排在前面,下面的例子就会将含 NULL的记录排在结果的上面部分:
SELECT* FROM tab ORDER BY (col IS NOTNULL)
13.各种字符类型之间有什么不同?
类型 内部名称 说明 VARCHAR(n) varchar指定了最大长度,变长字符串,不足定义长度的部分不补齐 CHAR(n) bpchar 定长字符串,实际数据不足定义长度时,以空格补齐 TEXT text 没有特别的上限限制(仅受行的最大长度限制) BYTEA bytea 变长字节序列(使用NULL也是允许的) "char" char 一个字符
在系统表和在一些错误信息里你将看到内部名称。
上面所列的前四种类型是"varlena"(变长)类型(也就是说,开头的四个字节是长度,后面才是数据)。于是实际占用的空间比声明的大小要多一些。然而这些类型都可以被压缩存储,也可以用 TOAST脱机存储,因此磁盘空间也可能比预想的要少。
VARCHAR(n)在存储限制了最大长度的变长字符串是最好的。 TEXT 适用于存储最大可达1G左右但未定义限制长度的字符串。
CHAR(n) 最适合于存储长度相同的字符串。CHAR(n)会根据所给定的字段长度以空格补足(不足的字段内容), 而VARCHAR(n) 只存储所给定的数据内容。 BYTEA用于存储二进制数据,尤其是包含 NULL字节的值。这些类型具有相似的性能特性。
14.我如何获得一个插入的序列号的值?
一种方法是在插入之前先用函数 nextval()从序列对象里检索出下一个 SERIAL 值,然后再显式插入。使用 4.11.1里的例表,可用伪码这样描述:
new_id = execute("SELECTnextval('person_id_seq')"); execute("INSERT INTO person (id, name) VALUES(new_id, 'Blaise Pascal')");
这样还能在其他查询中使用存放在 new_id里的新值(例如,作为 person 表的外键)。 注意自动创建的 SEQUENCE对象的名称将会是 __seq, 这里table 和 serialcolumn 分别是你的表的名称和你的 SERIAL字段的名称。
类似的,在 SERIAL 对象缺省插入后你可以用函数currval() 检索刚赋值的 SERIAL 值,例如:
execute("INSERT INTO person(name) VALUES ('Blaise Pascal')"); new_id = execute("SELECTcurrval('person_id_seq')");
15.使用 currval()会导致和其他用户的冲突情况(racecondition)吗?
不会。currval()返回的是你本次会话进程所赋的值而不是所有用户的当前值。
16.为什么不在事务异常中止后重用序列号呢?为什么在序列号字段的取值中存在间断呢?
为了提高并发性,序列号在需要的时候赋予正在运行的事务,并且在事务结束之前不进行锁定,这就会导致异常中止的事务后,序列号会出现间隔。
17.什么是 OID?什么是 CTID ?
PostgreSQL里创建的每一行记录都会获得一个唯一的OID,除非在创建表时使用WITHOUTOIDS选项。 OID创建时会自动生成一个4字节的整数,所有 OID 在整个PostgreSQL 中均是唯一的。 然而,它在超过40亿时将溢出,OID此后会出现重复。PostgreSQL 在它的内部系统表里使用 OID在表之间建立联系。
在用户的数据表中,最好是使用SERIAl来代替OID因为SERIAL只是保证在单个表中数据是唯一的,这样它溢出的可能性就非常小了,SERIAL8可用来保存8字节的序列号字段。
CTID用于标识带着数据块(地址)和(块内)偏移的特定的物理行。 CTID在记录被更改或重载后发生改变。索引入口使用它们指向物理行。
18.为什么我收到错误信息“ERROR: Memoryexhausted in AllocSetAlloc()”?
这很可能是系统的虚拟内存用光了,或者内核对某些资源有较低的限制值。在启动postmaster 之前试试下面的命令:
ulimit -d 262144 limit datasize 256m
取决于你用的shell,上面命令只有一条能成功,但是它将把你的进程数据段限制设得比较高,因而也许能让查询完成。这条命令应用于当前进程,以及所有在这条命令运行后创建的子进程。如果你是在运行SQL客户端时因为后台返回了太多的数据而出现问题,请在运行客户端之前执行上述命令。
19.怎样进行 outer join(外连接)?
PostgreSQL 采用标准的 SQL语法支持外连接。这里是两个例子:
SELECT * FROM t1 LEFT OUTER JOIN t2 ON (t1.col =t2.col);
或是
SELECT * FROM t1 LEFT OUTER JOIN t2 USING(col);
这两个等价的查询在 t1.col 和 t2.col上做连接,并且返回 t1 中所有未连接的行(那些在 t2中没有匹配的行)。 右[外]连接(RIGHT OUTER JOIN)将返回 t2中未连接的行。 完全外连接(FULL OUTER JOIN)将返回 t1 和 t2中未连接的行。 关键字 OUTER在左[外]连接、右[外]连接和完全[外]连接中是可选的,普通连接被称为内连接(INNERJOIN)。
20.如何使用涉及多个数据库的查询?
没有办法查询当前数据库之外的数据库。 因为 PostgreSQL要加载与数据库相关的系统目录(系统表),因此跨数据库的查询如何执行是不定的。
附加增值模块contrib/dblink允许采用函数调用实现跨库查询。当然用户也可以同时连接到不同的数据库执行查询然后在客户端合并结果。
21.如何让函数返回多行或多列?
在函数中返回数据记录集的功能是很容易使用的,详情参见:http://techdocs.postgresql.org/guides/SetReturningFunctions
22.为什么我在使用PL/PgSQL函数存取临时表时会收到错误信息“relationwith OID ##### does not exist”?
PL/PgSQL会缓存函数的内容,由此带来的一个不好的副作用是若一个PL/PgSQL函数访问了一个临时表,然后该表被删除并重建了,则再次调用该函数将失败,因为缓存的函数内容仍然指向旧的临时表。解决的方法是在 PL/PgSQL中用EXECUTE对临时表进行访问。这样会保证查询在执行前总会被重新解析。
你可能感兴趣的:(Postgresql)
mysql学习教程,从入门到精通,TOP 和MySQL LIMIT 子句(15)
知识分享小能手
大数据 数据库 MySQL mysql 学习 oracle 数据库 开发语言 adb 大数据
1、TOP和MySQLLIMIT子句内容在SQL中,不同的数据库系统对于限制查询结果的数量有不同的实现方式。TOP关键字主要用于SQLServer和Access数据库中,而LIMIT子句则主要用于MySQL、PostgreSQL(通过LIMIT/OFFSET语法)、SQLite等数据库中。下面将分别详细介绍这两个功能的语法、语句以及案例。1.1、TOP子句(SQLServer和Access)1.1
MySQl篇(SQL - 基本介绍)(持续更新迭代)
wclass-zhengge
mysql sql 数据库
目录一、简介二、SQL方言(分页查询为例)1.简介2.SQL方言大比拼2.1.Oracle2.1.1.使用ROWNUM实现分页查询2.1.2.使用ROW_NUMBER()实现分页查询2.2.MySQL2.3.PostgreSQL三、语法规范四、注释五、MySQL脚本中的标点符号一、简介1、SQL是结构化查询语言(StructureQueryLanguage),专门用来操作/访问关系型数据库的通用语
梧桐数据库(WuTongDB):数据库技术中都有哪些常见的优化器
鲁鲁517
梧桐数据库 梧桐数据库
以下是一些常见的数据库优化器:1.CBO(Cost-BasedOptimizer)应用场景:广泛应用于关系型数据库中,如Oracle、PostgreSQL、MySQL等。工作原理:通过计算不同执行计划的代价(如CPU、I/O等资源消耗),选择最低代价的执行计划。代表数据库:Oracle、PostgreSQL、MySQL。特点:CBO使用统计信息(如表大小、索引分布)来评估查询的代价。2.RBO(R
navicate远程linux上的pgsql提示密码失败
coding上下求索
linux 服务器 数据库
错误提示:FATAL:passwordauthenticationfailedforuser“postgres”解决方案:1、pg_hba.conf文件中,ipv4下面的内容改成hostallall0.0.0.0/0md52、postgresql.conf文件中,修改listen_addresses由#listen_addresses='location'改为listen_addresses='*
PostgreSQL | 生成UUID 报错:HINT: No function matches the given name and argument types
慌途L
PostgreSQL postgresql uuid uuid_generate gen_random_uuid
在PG数据库上新建表结构:CREATETABLE"public"."t_test"("guid"uuidNOTNULLDEFAULTuuid_generate_v4(),"data"jsonb,"create_time"timestamptz(6)DEFAULTnow(),CONSTRAINT"test_pkey"PRIMARYKEY("guid"));报错:ERROR:functionuuid_
解决 PostgreSQL的uuid_generate_v4() 不存在异常
这是然少
PostgreSQL postgresql 数据库
详细的异常信息如下所示:>错误:函数uuid_generate_v4()不存在导致这个问题的原因就是,uuid_generate_v4()这个uuid函数默认的是在Postgresql扩展中的,数据库迁移后,extension扩展就没有了,需要重新安装。有3种方法可以让PostgreSQL数据库支持uuid_generate_v4()或uuid_generate_v1()函数。方案一安装uuid-
openGauss 扩展FDW与其他openGauss特性
openGaussMan
数据库 openGauss
扩展FDW与其他openGauss特性openGauss基于PostgreSQL,而PostgreSQL没有内置存储引擎适配器,如MySQL的handlerton。为了使MOT存储引擎能够集成到openGauss中,我们利用并扩展了现有的FDW机制。随着FDW引入PostgreSQL9.1,现在可以将这些外表和数据源呈现为统一、本地可访问的关系来访问外部管理的数据库。和PostgreSQL不同的是
PostgreSQL 与 MySQL:如何为你的项目选择合适的数据库?
陌北v1
数据库 postgresql mysql
在现代应用开发中,选择合适的数据库是影响项目成败的关键决策之一。PostgreSQL和MySQL是两种广泛使用的开源数据库,每种数据库都有其独特的优势和适用场景。本文将深入对比这两者的核心特性,帮助开发者理解在何种情况下现在适合的数据库。1.架构与标准支持PostgreSQL:被称为“最先进的开源数据库”,高度遵循SQL标准,支持更复杂的查询、子查询、窗口函数、递归查询等功能。提供全面的ACID(
一条sql是如何执行的详解
听忆.
轻松拿捏【面试干货】 sql 数据库
一条sql是如何执行的详解1.SQL解析(Parsing)2.查询重写(QueryRewrite)3.查询规划(QueryPlanning)4.查询执行(QueryExecution)5.结果返回示例:查询执行流程总结边走、边悟迟早会好一条SQL查询在PostgreSQL(以及大多数关系型数据库)中的执行过程可以分为多个阶段。每个阶段都对应特定的任务,从SQL解析到最终获取查询结果。以下是SQL查
postgresql 查看索引是否有效及索引使用情况
majinbo111
postgreSQL postgresql 查看索引 建立索引是否有效
查看索引是否有效1.未使用索引前jinbo=#explainanalyzeselect*fromjinbo.studentwherescoreBitmapIndexScanonstudent_score_sex_idx(cost=0.00..4.40rows=2width=0)(actualtime=0.058..0.058rows=1loops=1)IndexCond:((scoreALL(AR
从零开始学PostgreSQL (十三):并行查询
DBA实战
postgresql 数据库
目录概述1.并行查询的工作原理2.什么时候可以使用并行查询?3.并行计划3.1.并行扫描3.2.并行连接3.3.并行聚合3.4.并行追加3.5.并行计划提示4.并行安全4.1.函数和聚合的并行标签5.注意事项6.总结概述并行查询是PostgreSQL提供的一种功能,它允许查询在多个CPU核心或处理器上同时执行,从而显著提高查询性能,特别是在处理大型数据集时。并行查询的设计目标是在多核处理器的现代硬
PostgreSQL进阶教程
爱分享的码瑞哥
postgresql
PostgreSQL进阶教程目录事务和并发控制事务事务隔离级别锁高级查询联合查询窗口函数子查询CTE(公用表表达式)数据类型自定义数据类型数组JSON高级索引部分索引表达式索引GIN和GiST索引性能调优查询优化配置优化备份与恢复物理备份逻辑备份扩展与插件PostGISpg_cron集群与高可用StreamingReplicationPatroni事务和并发控制事务事务是一个或多个SQL语句的组合
微服务开发实战(七)
禅大师
PostgreSQL下载安装在程序开发中,需要使用到数据库。目前.NETCore支持MSSQLServer,MySQL,PostgreSQL,Oracle等多种数据库。在本教程中,使用的是免费开源、跨平台、功能完善、性能强大的PostgreSQL数据库。可以直接访问官方网站https://www.postgresql.org/下载安装,或者从第三方网站https://www.openscg.com
数据库管理的利器Navicat —— 全面测评与热门产品推荐
界面开发小八哥
数据库 Navicat 数据库开发 sql mysql
在数据库管理领域,Navicat无疑是一款深受欢迎的软件。作为一个强大的数据库管理和开发工具,它支持多种数据库类型,包括MySQL、MariaDB、MongoDB、SQLServer、Oracle、PostgreSQL等。本文将全面测评Navicat的核心功能,同时推荐几款热门的Navicat产品。Navicat的主要特点1.跨平台支持:Navicat支持Windows、Mac和Linux平台,可
通过DBeaver连接Phoenix操作hbase
不想做咸鱼的王富贵
通过DBeaver连接Phoenix操作hbase前言本文介绍常用一种通用数据库工具Dbeaver,DBeaver可通过JDBC连接到数据库,可以支持几乎所有的数据库产品,包括:MySQL、PostgreSQL、MariaDB、SQLite、Oracle、Db2、SQLServer、Sybase、MSAccess、Teradata、Firebird、Derby等等。商业版本更是可以支持各种NoSQ
【Go】-基于Gin和GORM的小清单项目
knoci
Go语言学习 golang gin 开发语言
目录项目介绍简介技术项目结构项目分析总结项目介绍简介项目地址:knoci/list:基于Gin的待办清单小项目(github.com)一个仿照github/Q1mi/bubble做的一个gin框架练习技术gin框架gorm操作PostgreSQLini配置文件项目结构list├──README.md├──config│└──config.ini├──controller│└──controller
一种跨平台获取程序名称的方法
shulu
C项目 c语言
一种跨平台获取程序名称的方法代码来自于postgresql#include#include#include#include/**is_absolute_path**Bymakingthisamacroweavoidneedingtoincludepath.cinlibpq.*/#ifndefWIN32#defineIS_DIR_SEP(ch)((ch)=='/')#defineis_absolut
PostgreSQL 性能优化全方位指南:深度提升数据库效率
Koishi_TvT
数据库 postgresql 性能优化 github
PostgreSQL性能优化全方位指南:深度提升数据库效率别忘了请点个赞+收藏+关注支持一下博主喵!!!在现代互联网应用中,数据库性能优化是系统优化中至关重要的一环,尤其对于数据密集型和高并发的应用而言,PostgreSQL(以下简称PG)凭借其丰富的特性和强大的功能,成为很多企业的首选。然而,随着数据规模的扩展和查询复杂度的提升,PostgreSQL的性能问题逐渐显现。本文将详细介绍Postgr
JDBC使用及源码编译
openGauss小助手
openGauss技术分享 数据库 database
1.JDBC简介JDBC是JavaDataBaseConnectivity的缩写,它是Java程序访问数据库的标准接口。JDBC接口是Java标准库自带的,具体的JDBC驱动是由数据库厂商提供的,JDBC驱动也是由Java语言编写的,为一个jar包,真正实现JDBC接口中的类。openGauss数据库源自postgres,openGaussJDBC以PostgreSQLJDBCDriver42.2
pg13.x主从节点搭建以及数据同步
亦诗亦诗
postgresql
步骤1:安装postgres可参考:centosarm安装Postgres此处我搭建了2台postgres,分别为:10.211.110.55、10.211.110.56步骤2:主库配置比如在PostgreSQL中实现一主一从的集群模式,此处选定10.211.110.55为主节点,另一个为从节点,可以使用流复制(StreamingReplication)来实现主节点数据实时同步到从节点。以下是一般
leetcode 1651 Hopper公司查询3(postgresql)
奋斗哼哼
leetcode postgresql 算法 数据库 sql
需求Table:Drivers±------------±--------+|ColumnName|Type|±------------±--------+|driver_id|int||join_date|date|±------------±--------+driver_id是该表的主键。该表的每一行均包含驾驶员的ID以及他们加入Hopper公司的日期。Table:Rides±-------
leetcode 1811 寻找面试候选人(postgresql)
奋斗哼哼
leetcode 面试 postgresql 数据库 sql
需求表:Contests±-------------±-----+|ColumnName|Type|±-------------±-----+|contest_id|int||gold_medal|int||silver_medal|int||bronze_medal|int|±-------------±-----+contest_id是该表的主键.该表包含LeetCode竞赛的ID和该场比赛中
Linux 上安装 PostgreSQL
lly202406
开发语言
Linux上安装PostgreSQLPostgreSQL是一款功能强大的开源关系数据库管理系统,因其稳定性、可扩展性和先进的功能而广受欢迎。在Linux系统上安装PostgreSQL是一个相对直接的过程,但具体步骤可能会因您使用的Linux发行版而异。本文将介绍在几种流行的Linux发行版上安装PostgreSQL的方法。在Ubuntu上安装PostgreSQLUbuntu是最流行的Linux发行
阿里云“99计划”是什么?“99计划”有哪些特惠云产品?价格是多少?
阿里云最新优惠和活动汇总
2024年,阿里云推出了“99计划”,该计划是阿里云为了助力中小企业无忧上云而推出的特惠活动,“99计划”为初创企业准备的上云首选必备产品,让客户享受技术红利,长期普惠上云,新老同享,续费同价。包含的云产品有云服务器e实例和u1实例、对象存储OSS、NAS文件存储、阿里云盘企业版CDE、SLS日志服务、云数据库RDSMySQL版、云数据库RDSPostgreSQL版、云数据库RDSSQLServe
PostgreSQL 数组类型使用详解
捞起月亮的渔民丁
postgresql 数据库
PostgreSQL数组类型使用详解PostgreSQL数组类型使用详解可能大家对PostgreSQL这个关系型数据库不太熟悉,因为大部分人最熟悉的,公司用的最多的是MySQL我们先对PostgreSQL数据库(下面简称PG)简单的介绍一下,以后有机会,再单独写一篇专门介绍pgSql的文章TheWorld’sMostAdvancedOpenSourceRelationalDatabase这是PG官
在PostgreSQL中使用JSONB对象数组
weixin_26750481
java python
数据库提示(DatabaseTips)Inmylastarticle,wefocusedonturningaPostgreSQLjsonbcolumn,thatcontainedanArrayofObjects,intoarecordset,sothatitcouldbequeriedinarelationalmanner.在我的上一篇文章中,我们专注于将包含对象数组的PostgreSQLjson
postgresql 判断数据是否存在,存在更新,不存在则插入
llc的足迹
数据库 postgresql
INSERTINTOtable_name(create_time,update_time,name,latest_time)VALUES(NOW(),NOW(),'name''2023-04-2519:05:50')ONCONFLICT(name)DOUPDATESETupdate_time=NOW(),target_name='name',latest_time='2023-04-2519:05
Postgresql 删除数组中的元素
llc的足迹
数据库 postgresql 数据库
extra为{“a”:[null,3,null],“b”:111}使用sql将extra中a中的null移除第一步:首先先把[null,3,null]移除,selectjson_agg(elem)filter(whereelem!='null')from(selectjsonb_array_elements('[null,3,null]'::jsonb)aselem)t;这将得到[3]jsonb_
使用java代码实现操作数据库的创建等系列操作
两点王爷
数据库 java oracle
创作背景:使用代码实现对PostgreSQL数据库的创建用户、授权用户、删除用户系列操作!1、导入相关的依赖org.projectlomboklombokcn.hutoolhutool-all5.8.262、具体实现创建实体类@Data@ApiModel(value="EntityDataBase",description="实体数据库相关内容")publicclassEntityDataBase
SpringBoot整合H2数据库并将其打包成jar包、转换成exe文件
暗雪之格
Spring spring boot 数据库 jar java-ee
SpringBoot整合H2数据库并将其打包成jar包、转换成exe文件H2是一个用Java开发的嵌入式数据库,它的主要特性使其成为嵌入式应用程序的理想选择。H2仅是一个类库,可以直接嵌入到应用项目中,而无需独立安装客户端和服务器端。常用开源数据库常用的开源数据库包括H2、Derby、HSQLDB、MySQL和PostgreSQL。相比之下,H2和HSQLDB非常适合作为嵌入式数据库使用,而其他数
web报表工具FineReport常见的数据集报错错误代码和解释
老A不折腾
web报表 finereport 代码 可视化工具
在使用finereport制作报表,若预览发生错误,很多朋友便手忙脚乱不知所措了,其实没什么,只要看懂报错代码和含义,可以很快的排除错误,这里我就分享一下finereport的数据集报错错误代码和解释,如果有说的不准确的地方,也请各位小伙伴纠正一下。
NS-war-remote=错误代码\:1117 压缩部署不支持远程设计
NS_LayerReport_MultiDs=错误代码
Java的WeakReference与WeakHashMap
bylijinnan
java 弱引用
首先看看 WeakReference
wiki 上 Weak reference 的一个例子:
public class ReferenceTest {
public static void main(String[] args) throws InterruptedException {
WeakReference r = new Wea
Linux——(hostname)主机名与ip的映射
eksliang
linux hostname
一、 什么是主机名
无论在局域网还是INTERNET上,每台主机都有一个IP地址,是为了区分此台主机和彼台主机,也就是说IP地址就是主机的门牌号。但IP地址不方便记忆,所以又有了域名。域名只是在公网(INtERNET)中存在,每个域名都对应一个IP地址,但一个IP地址可有对应多个域名。域名类型 linuxsir.org 这样的;
主机名是用于什么的呢?
答:在一个局域网中,每台机器都有一个主
oracle 常用技巧
18289753290
oracle常用技巧 ①复制表结构和数据 create table temp_clientloginUser as select distinct userid from tbusrtloginlog ②仅复制数据 如果表结构一样 insert into mytable select * &nb
使用c3p0数据库连接池时出现com.mchange.v2.resourcepool.TimeoutException
酷的飞上天空
exception
有一个线上环境使用的是c3p0数据库,为外部提供接口服务。最近访问压力增大后台tomcat的日志里面频繁出现
com.mchange.v2.resourcepool.TimeoutException: A client timed out while waiting to acquire a resource from com.mchange.v2.resourcepool.BasicResou
IT系统分析师如何学习大数据
蓝儿唯美
大数据
我是一名从事大数据项目的IT系统分析师。在深入这个项目前需要了解些什么呢?学习大数据的最佳方法就是先从了解信息系统是如何工作着手,尤其是数据库和基础设施。同样在开始前还需要了解大数据工具,如Cloudera、Hadoop、Spark、Hive、Pig、Flume、Sqoop与Mesos。系 统分析师需要明白如何组织、管理和保护数据。在市面上有几十款数据管理产品可以用于管理数据。你的大数据数据库可能
spring学习——简介
a-john
spring
Spring是一个开源框架,是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只能由EJB完成的事情。然而Spring的用途不仅限于服务器端的开发,从简单性,可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。其主要特征是依赖注入、AOP、持久化、事务、SpringMVC以及Acegi Security
为了降低Java开发的复杂性,
自定义颜色的xml文件
aijuans
xml
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="white">#FFFFFF</color> <color name="black">#000000</color> &
运营到底是做什么的?
aoyouzi
运营到底是做什么的?
文章来源:夏叔叔(微信号:woshixiashushu),欢迎大家关注!很久没有动笔写点东西,近些日子,由于爱狗团产品上线,不断面试,经常会被问道一个问题。问:爱狗团的运营主要做什么?答:带着用户一起嗨。为什么是带着用户玩起来呢?究竟什么是运营?运营到底是做什么的?那么,我们先来回答一个更简单的问题——互联网公司对运营考核什么?以爱狗团为例,绝大部分的移动互联网公司,对运营部门的考核分为三块——用
js面向对象类和对象
百合不是茶
js 面向对象 函数创建类和对象
接触js已经有几个月了,但是对js的面向对象的一些概念根本就是模糊的,js是一种面向对象的语言 但又不像java一样有class,js不是严格的面向对象语言 ,js在java web开发的地位和java不相上下 ,其中web的数据的反馈现在主流的使用json,json的语法和js的类和属性的创建相似
下面介绍一些js的类和对象的创建的技术
一:类和对
web.xml之资源管理对象配置 resource-env-ref
bijian1013
java web.xml servlet
resource-env-ref元素来指定对管理对象的servlet引用的声明,该对象与servlet环境中的资源相关联
<resource-env-ref>
<resource-env-ref-name>资源名</resource-env-ref-name>
<resource-env-ref-type>查找资源时返回的资源类
Create a composite component with a custom namespace
sunjing
https://weblogs.java.net/blog/mriem/archive/2013/11/22/jsf-tip-45-create-composite-component-custom-namespace
When you developed a composite component the namespace you would be seeing would
【MongoDB学习笔记十二】Mongo副本集服务器角色之Arbiter
bit1129
mongodb
一、复本集为什么要加入Arbiter这个角色 回答这个问题,要从复本集的存活条件和Aribter服务器的特性两方面来说。 什么是Artiber? An arbiter does
not have a copy of data set and
cannot become a primary. Replica sets may have arbiters to add a
Javascript开发笔记
白糖_
JavaScript
获取iframe内的元素
通常我们使用window.frames["frameId"].document.getElementById("divId").innerHTML这样的形式来获取iframe内的元素,这种写法在IE、safari、chrome下都是通过的,唯独在fireforx下不通过。其实jquery的contents方法提供了对if
Web浏览器Chrome打开一段时间后,运行alert无效
bozch
Web chorme alert 无效
今天在开发的时候,突然间发现alert在chrome浏览器就没法弹出了,很是怪异。
试了试其他浏览器,发现都是没有问题的。
开始想以为是chorme浏览器有啥机制导致的,就开始尝试各种代码让alert出来。尝试结果是仍然没有显示出来。
这样开发的结果,如果客户在使用的时候没有提示,那会带来致命的体验。哎,没啥办法了 就关闭浏览器重启。
结果就好了,这也太怪异了。难道是cho
编程之美-高效地安排会议 图着色问题 贪心算法
bylijinnan
编程之美
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class GraphColoringProblem {
/**编程之美 高效地安排会议 图着色问题 贪心算法
* 假设要用很多个教室对一组
机器学习相关概念和开发工具
chenbowen00
算法 matlab 机器学习
基本概念:
机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。
开发工具
M
[宇宙经济学]关于在太空建立永久定居点的可能性
comsci
经济
大家都知道,地球上的房地产都比较昂贵,而且土地证经常会因为新的政府的意志而变幻文本格式........
所以,在地球议会尚不具有在太空行使法律和权力的力量之前,我们外太阳系统的友好联盟可以考虑在地月系的某些引力平衡点上面,修建规模较大的定居点
oracle 11g database control 证书错误
daizj
oracle 证书错误 oracle 11G 安装
oracle 11g database control 证书错误
win7 安装完oracle11后打开 Database control 后,会打开em管理页面,提示证书错误,点“继续浏览此网站”,还是会继续停留在证书错误页面
解决办法:
是 KB2661254 这个更新补丁引起的,它限制了 RSA 密钥位长度少于 1024 位的证书的使用。具体可以看微软官方公告:
Java I/O之用FilenameFilter实现根据文件扩展名删除文件
游其是你
FilenameFilter
在Java中,你可以通过实现FilenameFilter类并重写accept(File dir, String name) 方法实现文件过滤功能。
在这个例子中,我们向你展示在“c:\\folder”路径下列出所有“.txt”格式的文件并删除。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
C语言数组的简单以及一维数组的简单排序算法示例,二维数组简单示例
dcj3sjt126com
c array
# include <stdio.h>
int main(void)
{
int a[5] = {1, 2, 3, 4, 5};
//a 是数组的名字 5是表示数组元素的个数,并且这五个元素分别用a[0], a[1]...a[4]
int i;
for (i=0; i<5; ++i)
printf("%d\n",
PRIMARY, INDEX, UNIQUE 这3种是一类 PRIMARY 主键。 就是 唯一 且 不能为空。 INDEX 索引,普通的 UNIQUE 唯一索引
dcj3sjt126com
primary
PRIMARY, INDEX, UNIQUE 这3种是一类PRIMARY 主键。 就是 唯一 且 不能为空。INDEX 索引,普通的UNIQUE 唯一索引。 不允许有重复。FULLTEXT 是全文索引,用于在一篇文章中,检索文本信息的。举个例子来说,比如你在为某商场做一个会员卡的系统。这个系统有一个会员表有下列字段:会员编号 INT会员姓名
java集合辅助类 Collections、Arrays
shuizhaosi888
Collections Arrays HashCode
Arrays、Collections
1 )数组集合之间转换
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
a)Arrays.asL
Spring Security(10)——退出登录logout
234390216
logout Spring Security 退出登录 logout-url LogoutFilter
要实现退出登录的功能我们需要在http元素下定义logout元素,这样Spring Security将自动为我们添加用于处理退出登录的过滤器LogoutFilter到FilterChain。当我们指定了http元素的auto-config属性为true时logout定义是会自动配置的,此时我们默认退出登录的URL为“/j_spring_secu
透过源码学前端 之 Backbone 三 Model
逐行分析JS源代码
backbone 源码分析 js学习
Backbone 分析第三部分 Model
概述: Model 提供了数据存储,将数据以JSON的形式保存在 Model的 attributes里,
但重点功能在于其提供了一套功能强大,使用简单的存、取、删、改数据方法,并在不同的操作里加了相应的监听事件,
如每次修改添加里都会触发 change,这在据模型变动来修改视图时很常用,并且与collection建立了关联。
SpringMVC源码总结(七)mvc:annotation-driven中的HttpMessageConverter
乒乓狂魔
springMVC
这一篇文章主要介绍下HttpMessageConverter整个注册过程包含自定义的HttpMessageConverter,然后对一些HttpMessageConverter进行具体介绍。
HttpMessageConverter接口介绍:
public interface HttpMessageConverter<T> {
/**
* Indicate
分布式基础知识和算法理论
bluky999
算法 zookeeper 分布式 一致性哈希 paxos
分布式基础知识和算法理论
BY
[email protected]
本文永久链接:http://nodex.iteye.com/blog/2103218
在大数据的背景下,不管是做存储,做搜索,做数据分析,或者做产品或服务本身,面向互联网和移动互联网用户,已经不可避免地要面对分布式环境。笔者在此收录一些分布式相关的基础知识和算法理论介绍,在完善自我知识体系的同
Android Studio的.gitignore以及gitignore无效的解决
bell0901
android gitignore
github上.gitignore模板合集,里面有各种.gitignore : https://github.com/github/gitignore
自己用的Android Studio下项目的.gitignore文件,对github上的android.gitignore添加了
# OSX files //mac os下 .DS_Store
成为高级程序员的10个步骤
tomcat_oracle
编程
What
软件工程师的职业生涯要历经以下几个阶段:初级、中级,最后才是高级。这篇文章主要是讲如何通过 10 个步骤助你成为一名高级软件工程师。
Why
得到更多的报酬!因为你的薪水会随着你水平的提高而增加
提升你的职业生涯。成为了高级软件工程师之后,就可以朝着架构师、团队负责人、CTO 等职位前进
历经更大的挑战。随着你的成长,各种影响力也会提高。
mongdb在linux下的安装
xtuhcy
mongodb linux
一、查询linux版本号:
lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noa