可以讨论网站建设的论坛网站建设策划图片

pingmian/2026/1/25 0:27:07/文章来源:
可以讨论网站建设的论坛,网站建设策划图片,大连云app官方下载,zencart外贸网站建设为什么选择PostgreSQL 功能更全面#xff1a;PGSQL的功能更加全面#xff0c;支持开窗函数、物化视图、分区表、json等类型#xff0c;MySQL8以上支持开窗函数、分区表、json等#xff0c;但物化视图仍不支持。高可用#xff1a;PG更适合分布式环境#xff0c;如流复制、…为什么选择PostgreSQL 功能更全面PGSQL的功能更加全面支持开窗函数、物化视图、分区表、json等类型MySQL8以上支持开窗函数、分区表、json等但物化视图仍不支持。高可用PG更适合分布式环境如流复制、逻辑复制和基于 WAL 日志的复制机制而MySQL则基于BingLog。数据类型更丰富支持多种索引类型如数组、jsonip类型text类型。 PostgreSQL和MySQL对比 MySQLPgSQL功能8以下版本功能弱8以上版本支持JSON、开窗函数、分区表目前不支持物化视图支持的功能更多例如开窗函数、物化视图、JSON、分区表等性能对于读操作性能更好在处理复杂查询和写密集操作时更有优势可扩展性可扩展性不强可扩展性强支持自定义列类型、插件等 PostgreSQL和MySQL如何选择 PgSQL更适合写操作频繁以及复杂查询的情况因为PgSQL内置了性能更好的MVCC来解决并发写MySQL则是通过锁解决并发锁。如果项目中有一些特殊场景例如json、gis等则可以选择PgSQL。 MySQL更适合读操作多的情况读取性能更好。MySQL运维成本更低上手便捷社区支持、技术方案更多。 PostgreSQL基础 --数据类型 -- 整数 smallint、int -- 小数 numeric(5,3) -- 字符串 char 定长、varchar变长、text无限长 -- 日期 date yyyy-MM-dd -- 时间 time HH:mm:ss -- 时间戳 timestamp yyyy-MM-dd HH:mm:ss.0000数据类型 数字 类型描述int整数类型4字节大小范围为 -2147483648 到 2147483647int2整数类型2字节大小其范围为 -32768 到 32767int4整数类型4字节大小范围为 -2147483648 到 2147483647int8范围为 -9223372036854775808 到 9223372036854775807serial、serial2、serial4、serial8等于int会自动创建序列实现主键自增。numeric(m,n)小数类型小数超长会四舍五入。numeric(5,2)最大为999,99 字符串 类型描述char定长字符串不足补空格varchar变长字符串text无限长度字符串 日期 类型描述date日期例如‘2023-11-10’time时间例如‘20:00:00.200’timestampdatetime 基本语法 -- 创建数据库 create database test1 encoding utf-8; -- 修改数据库名称 alter database test1 rename to test; -- 删除数据库 drop database if exists test1;-- 查看所有表 select * from pg_tables where schemaname public;-- 创建表 双引号表示对象单引号表示字符串。表名为特殊字符需要加“” create table user2 (id serial8 primary key, -- serial表示主键自增需要注意的时不能手动指定id了不然会冲突name varchar(255) not null default zs,birthday date, -- 日期数据类型 date(日期) time(时间) timestamp(日期加时间)age int,money numeric(5,2) -- 小数类型整数位为3小数位为2。 ); -- 表注释 comment on table user2 is 用户表; comment on column user2.id is 用户Id; comment on column user2.name is 名称; comment on column user2.birthday is 生日; comment on column user2.age is 年龄; comment on column user2.money is 存款;-- 修改表名 alter table user rename to user2; -- 修改字段类型 alter table user2 alter column age type numeric(3,0); -- 新增字段 alter table user add column test numeric(3,0); -- 修改字段名称 alter table user rename column test to test2; -- 删除字段 alter table user drop column test;-- 插入数据 -- 小数超过会四舍五入numeric52表示最大不能超过999.99 -- id自增使用default insert into user values (DEFAULT,zs,2023-11-09 01:00:00,20.1,999.99); -- 不要指定id因为他会和自增id冲突 insert into user(id,name,birthday,age,money) values (4,zs,2023-11-09 01:00:00,20.1,999.994);-- upsert 不存在新增存在修改 EXCLUDED是一个临时表用于存放当前要插入的数据。 INSERT INTO user(id,name) VALUES (default,ls),(id,zs2) ON CONFLICT(id) -- 当id冲突时 DO UPDATE SET -- 进行修改操作 name user.name || EXCLUDED.name, -- name原name新name ||表示字符串拼接 birthdaynow();-- 分页查询(刚好和mySQL反过来了) -- 第一页 limit 3 offset 0 -- 第二页 limit 3 offset 3 -- limit pageSize offset pageNum*pageSize -1 select * from employee limit 3 offset 0;特殊函数 -- string_agg 类似于mysql的 group_concat SELECT country,string_agg(city,,) FROM city GROUP BY country; -- array_agg 功能和string_agg类似不同的是返回的是数组。 SELECT country,array_agg(city) FROM city GROUP BY country;PostgreSQL扩展 物化视图 物化视图是一张真实存在的表能够随着原表的改变而改变需要手动刷新主要用于提高一些更新不频繁的大表。 -- 创建物化视图 create materialized view user_view as select u.name,count(a.address) from user as u inner join user_address as a on u.id a.user_id group by u.id,u.name; -- 刷新物化视图 refresh materialized view user_view; -- 并发刷新(需要创建唯一索引) create unique index idx_id on user_view(id); -- 为物化视图创建索引 refresh materialized view concurrently user_view; -- 并发刷新-- 删除物化视图 drop materialized view user_view;开窗函数 如果想要获取聚合数据但又不想让数据聚合那么就可以使用聚合函数。 开窗函数的作用对查询出来的数据再次进行分析如聚合、排名、累计等。 例如获取每个部门薪资排名前三的员工。 select dept_name,emp_name,salary, rank() over(patition by dept_name order by salary desc) -- 开窗函数根据部门分组然后根据薪资排序 from salary_log;开窗函数语法 想要使用的函数() -- 例如 rank()获取排名、sum()、ave()、count() over(partition by 列 -- 要分组的列(类似于group by)order by 列 -- 排序列rows between xxx and xxx -- 要选取的行 ) -- over表示开窗配合函数表示开窗函数一定要加 -- 执行顺序 先执行over然后数据传给前面的函数执行。-- rows between xxx and xxx 详解 -- 使用示例 -- rows between unbounded proceding and current row 从第一行数据开始到当前行。-- unbounded preceding 表示从当前行的前无限行开始(第一行) -- 1 preceding 表示从当前行的前1行开始 -- current row 表示读取至当前行。 -- 1 following 表示读取至当前行的后一行 -- unbounded following 表示读取至最后一行-- rows between 可以省略不写默认为 rows between unbounded preceding and current row常用开窗函数 row_number() -- 排名分数相同排名不同。 rank() -- 排名分数相同排名相同但末位数不变例如查询前三名 1,1,3 dense_rank() -- 排名分数相同排名相同但末位数减少例如查询前三名 1,1,2sum( column ) -- 求和 count( column ) -- 总数 avg( column ) -- 求平均分lag( column,1,0) -- 求当前行的上1行的值如果没有上1行则返回0 (一般用于求环比) leag( column,1,0)-- 求当前行的下1行的值如果没有下1行则返回0 (一般用于求环比)row_number dense_rank PostgreSQL与 SpringBoot、MybatisPlus 整合 引入依赖 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.4.1/version/dependencydependencygroupIdorg.postgresql/groupIdartifactIdpostgresql/artifactIdscoperuntime/scope/dependency /dependencies配置 spring.datasource.driver-class-nameorg.postgresql.Driver spring.datasource.usernamepostgres spring.datasource.passwordroot spring.datasource.urljdbc:postgresql://localhost:5432/test1?currentSchemapublicmybatis-plus.configuration.map-underscore-to-camel-casetrue mybatis-plus.mapper-locationsclasspath*:/mapper/**/*.xml mybatis-plus.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImpl配置分页插件 Configuration public class MybatisPlusConfigure {//必须配置分页插件不然分页无效Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor new MybatisPlusInterceptor();//设置分页插件PaginationInnerInterceptor paginationInnerInterceptor new PaginationInnerInterceptor();paginationInnerInterceptor.setOptimizeJoin(true);//指定数据库方言paginationInnerInterceptor.setDbType(DbType.POSTGRE_SQL);paginationInnerInterceptor.setOverflow(true);interceptor.addInnerInterceptor(paginationInnerInterceptor);return interceptor;} }id自增 Data NoArgsConstructor AllArgsConstructor TableName(employee) public class Employee {TableId(type IdType.AUTO)private Long id;private String name;private Long deptId;private String month;private BigDecimal salary;private Date sendDate; }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/86029.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

邢台提供网站建设公司哪家好wdcp搭建wordpress

文章目录 一.前言二. 枚举基本要素描述三. 枚举设计源码3.1 EnumCommon-通用能力3.2 Enum_news 业务枚举3.3 定制化业务枚举 一.前言 用惯了springboot和Jakarta.才发现springboot和Jakarta的语言是多么精妙! 一些场景我们需要使用枚举: 如建立字典值映射,仅通过代码实现方便快…

网站建设的作业模板微网站建设企划书

目录 表复制 自我复制数据(蠕虫复制) 合并查询 union all(不会去重) union(会自动去重) MySQL表的外连接 左连接 右连接 MySQL的约束 主键 not null unique(唯一) foreign key(外键) 表复制 自我复制数据(蠕虫复制) #为了对某个sql语句进行效率测试,我们需要海量…

精准扶贫网站建设的意义吴忠北京网站建设

POJ1189 http://poj.org/problem?id1189 怎么说呢,不算难,但是容易出问题 我一开始的思路是,第一个钉子只有一种情况,然后下面每个钉子:左边有钉子就加左边的情况数,右边有钉子就加右边的情况数&#x…

英文网站翻译怎么做呢三亚app开发公司

0x53 区间DP 到目前为止,我们介绍的线性DP一般从初态开始,沿着阶段的扩张向某个方向递推,直至计算出目标状态。区间DP也属于线性DP中的一种,它以“区间长度”作为DP的“阶段”,使用两个坐标(区间的左右端点…

校园网站建设年度总结建立网站的目的和意义

1.代码: 2.问题:青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个n级的台阶总共有多少种跳法? 3.答案: 我们用递归方法来解题: 秉持着大事化小原则: 假设让青蛙跳上一个台阶,那么还有(n - 1)个台阶要跳 假设让青蛙跳上二个台阶,那么还…

勐海县住房和城乡建设局网站内蒙古工程建设网站

一. 前言 Python中的抽象类、多态和鸭子类型都是实现代码灵活性的机制,但它们之间还是有一些区别的。 二. 三者的区别 抽象类: 要求子类必须实现某些方法,从而规范了子类的实现方式。多态: 同一个方法可以针对不同类型的对象进…

哪里教做网站的东莞微信网站制作

很久没用sql server了,这几天打算更新SQL SERVER数据库:SQL看这一篇就看够了(附详细代码及截图) 这篇文章,发现连接不上服务器。 找一下解决办法。 一、打开服务界面 在键盘上按“WINR”快捷键,打开运行…

网站建设的关键做网站优化有前景吗

作者:George Kobar, Bahubali Shetti, Mark Settle 今天,我们很高兴地宣布 Elastic 的新管道查询语言 ES|QL(Elasticsearch 查询语言)的技术预览版,它可以转换、丰富和简化数据调查。 ES|QL 由新的查询引擎提供支持&am…

深圳网站建设推选上榜网络什么是域名空间

题目描述 求 n ! n! n!,也就是 1 2 3 ⋯ n 1\times2\times3\dots\times n 123⋯n。 挑战:尝试不使用循环语句(for、while)完成这个任务。 输入格式 第一行输入一个正整数 n n n。 输出格式 输出一个正整数&#xff0c…

哪个网站是做包装材料珍珠棉包管购物网站详细设计

在我的生活里,没有什么不开心的事情是一顿炒饭解决不了的,实在不行就两顿。把前一天剩出来的隔夜饭放到锅里和家里的食材进行组合、翻炒,就可以千变万化,方便好吃又管饱。小块头茶油炒饭,是一份易拉罐材质独立包装的炒…

织梦后台如何做网站地图如何做一个自己的公众号

总结:服务器批量处理http请求的大致流程 一客户端发起请求:可以多个请求同时发送二Web服务器解析请求(如:Nginx):可以多个请求同时解析三Servlet容器接收请求(如:tomcat)…

做网站程序的都不关注seo域名注册西部数码

Servlet(Server Applet),全称Java Servlet。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet…

做销售的什么网站好设计网站做海报

MySQL 中&#xff0c;当需要删除已创建的数据库时&#xff0c;可以使用 DROP DATABASE 语句。其语法格式为&#xff1a; DROP DATABASE [ IF EXISTS ] <数据库名>语法说明如下&#xff1a; <数据库名>&#xff1a;指定要删除的数据库名。IF EXISTS&#xff1a;用于…

做爰直播网站怎么网站开发

教育 -模拟电子技术-章节资料考试资料-沈阳工业大学【】 第一周作业 第一周单元测验 1、【单选题】在本征半导体中加入&#xff08; &#xff09;元素可形成N型半导体。 A、五价 B、四价 C、三价 D、二价 参考资料【 】 2、【单选题】PN结加正向电压时&#xff0c;空间电荷区将…

3yx这个网站做刷单wordpress 使用mssql

端口号冲突&#xff1a; 有其他的web程序在运行&#xff0c;占用了8080端口没有主清单属性&#xff1a; 在打包jar包前&#xff0c;没有加入打包的插件spring-boot-maven-plugin&#xff0c;参考1.SpringBoot入门的第一个完整小项目&#xff08;新手保姆版教会打包&#xff09;…

摄影课程自学网站wp上的wordpress

测试人员在项目测试中发现查询结果列表分页的时候&#xff0c;有的数据在好几页中重复显示&#xff0c;有的则一次都不显示&#xff0c;经过分析sql&#xff0c;原来问题出在测试人员在项目测试中发现查询结果列表分页的时候&#xff0c;有的数据在好几页中重复显示&#xff0c…

搭建网站的手机软件上市公司查询网站

全世界只有3.14 % 的人关注了爆炸吧知识真正决定人与人之间的差距的&#xff0c;其实是我们对事物的见识与内心的格局&#xff0c;见识的深浅决定人生的深浅&#xff0c;格局的大小决定了人生之路是宽是窄。今天给大家推荐几个有深度、有想法的公众号&#xff0c;希望能够给你带…

刚注册公司怎么做网站广州网站建设服务哪家好

在实际开发环境中&#xff0c;MySQL的GROUP BY操作的优化需要结合具体的业务场景和数据特点。以下是一些建议&#xff0c;可以帮助你在实际开发中优化GROUP BY查询&#xff1a; 使用合适的索引&#xff1a; 确保GROUP BY和ORDER BY中的列上存在索引。这有助于加速分组和排序操作…

做网批那个网站好有哪些网站可以做电子邀请函

对于初学者来说&#xff0c;找到一个好的框架来学习或者项目开发都是非常有必要的&#xff0c;而当你有一定开发经验后&#xff0c;你应该选择适合当前业务需要的框架。我这里并不想探讨哪个框架好哪个不好&#xff0c;这个永恒的话题就跟探讨“世界上哪种编程语言最屌”是一样…

延庆上海网站建设做明星同款的网站

tornado-设计初衷 1. 追求小而精 2. epoll IO多路复用和协程 3. 支持WebSocket 4. 单线程程序(GIL限制&#xff0c;本身某种意义上不启动多进程就是单线程程序) # Python GIL介绍详情 tronado应用场景 1. 大量的http请求连接(大量的用户请求&#xff0c;要求并发性和高性能) tr…