随笔分类 -  MySQL/PostgreSQL数据库知识

摘要:先贴下学习笔记思维导图 一、计算机存储原理 在理解索引这个概念之前,我们需要先了解一下计算机存储方面的基本知识。 我们知道数据持久化之后存在了数据库里,那么我现在的问题是数据库将数据存在了哪里?答案显然是存在了计算机的存储设备上。就个人电脑而言,数据被存在了我们的电脑存储设备上。 计算机的存储设备有 阅读全文
posted @ 2021-07-24 23:47 古兰精 阅读(1372) 评论(0) 推荐(0) 编辑
摘要:一、varchar(100) 和 varchar(10) 的区别在哪里 一般初学者会认为,二者占用的空间是一样的。比如说我存储5个char,二者都是实际占用了5个char了【不准确的想法:varchar在实际存储的时候会多一个byte用来存放长度】。 但是深入一下,设计数据库的时候,二者一样吗?答案 阅读全文
posted @ 2021-07-18 21:45 古兰精 阅读(1929) 评论(1) 推荐(0) 编辑
摘要:一、ERROR: column "..." does not exist 在PostgreSQL中,不论是在pgAdmin中,还是在命令行控制台里面,在SQL语句中表示属性值的总会遇到ERROR: column "..." does not exist这样的错误,比如下面的语句: 解决方案:将 "2 阅读全文
posted @ 2021-06-24 18:57 古兰精 阅读(7488) 评论(0) 推荐(2) 编辑
摘要:使用psql无法连接数据库,并报错 FATAL:53300 (1)psql: FATAL: 53300: remaining connection slots are reserved for non-replication superuser connections (2)普通用户的连接已满,保留 阅读全文
posted @ 2021-06-17 17:04 古兰精 阅读(8116) 评论(0) 推荐(0) 编辑
摘要:为实现数据库中表规范化设计的目的,有时候需要对之前已经创建的表进行结构修改或者调整。在 MySQL 中可以使用 ALTER TABLE 语句来改变原有表的结构,例如增加或删减列、创建或取消索引、更改原有列类型、重新命名列或表等。 基本语法 修改表指的是修改数据库中已经存在的数据表的结构。MySQL 阅读全文
posted @ 2021-06-15 18:22 古兰精 阅读(544) 评论(0) 推荐(0) 编辑
摘要:数据库分区是一种物理数据库设计技术。其主要目的是为了在特定的SQL操作中减少数据读写的总量以缩减sql语句的响应时间,同时对于应用来说分区完全是透明的。 分区的作用:数据库性能的提升和简化数据管理。 在扫描操作中MySQL优化器只扫描数据的那个分区以减少扫描范围获得性能的提高。分区技术使得数据管理变 阅读全文
posted @ 2021-06-06 20:27 古兰精 阅读(985) 评论(0) 推荐(0) 编辑
摘要:序列是什么?序列对象(也叫序列生成器)就是用CREATE SEQUENCE 创建的特殊的单行表。一个序列对象通常用于为行或者表生成唯一的标识符。 在持久层框架如Hibernate(JPA)、Mybatis中经常会用到Sequences(函数)去创建主键值,PostgreSQL中,用serial数据类 阅读全文
posted @ 2021-06-06 17:10 古兰精 阅读(13504) 评论(0) 推荐(2) 编辑
摘要:一、char、varchar、text的应用场景 在存储字符串时, 可以使用char、varchar或者text类型, 那么具体使用场景呢? 1、char长度固定, 即每条数据占用等长字节空间;适合用在身份证号码、手机号码等定。 2、varchar可变长度,可以设置最大长度;适合用在长度可变的属性。 阅读全文
posted @ 2021-06-03 22:04 古兰精 阅读(10107) 评论(6) 推荐(4) 编辑
摘要:一、关系数据库概述 1、数据模型:数据库按照数据结构来组织、存储和管理数据,实际上,数据库一共有三种模型: 层次模型 网状模型 关系模型 层次模型就是以“上下级”的层次关系来组织数据的一种方式,层次模型的数据结构看起来就像一颗树 ┌─────┐ │ │ └─────┘ │ ┌───────┴──── 阅读全文
posted @ 2021-05-27 21:00 古兰精 阅读(821) 评论(0) 推荐(0) 编辑
摘要:一、sequlize.query防止sql注入 在nodejs中使用sequlize库来查询mysql数据库,提供了常用的方法有两种: // 1、直接查询sql语句 sequelize.query();// 需要做sql防注入 // 2、通过接口 Project.findAll(); //在实现上就 阅读全文
posted @ 2021-01-31 19:02 古兰精 阅读(1678) 评论(0) 推荐(0) 编辑
摘要:引自高性能MySQL: 一、MySQL多表关联查询效率高点还是多次单表查询效率高,为什么? A、B两个表数据规模十几万,数据规模都不大,单机MySQL够用了,在单机的基础上要关联两表的数据。 先说一个极端情况,A、B两个表都没有索引,并且关联是笛卡尔积,那关联结果会爆炸式增长,可能到亿级别,这个时候 阅读全文
posted @ 2020-11-19 15:00 古兰精 阅读(9527) 评论(0) 推荐(3) 编辑
摘要:一、group_concat函数的功能 将group by产生的同一个分组中的值连接起来,返回一个字符串结果。 group_concat函数首先根据group by指定的列进行分组,将同一组的列显示出来,并且用分隔符分隔。由函数参数(字段名)决定要返回的列。例如: create table emp( 阅读全文
posted @ 2020-11-07 21:57 古兰精 阅读(38309) 评论(0) 推荐(3) 编辑
摘要:一、自增还是UUID?数据库主键的类型选择 自增还是UUID?这个问题看似简单,但是能诱发很多思考,也涉及到了很多细节。先说下uuid和 auto_increment(数据库自增主键)的优缺点吧,因为是个人理解,如有错误恳请指出: 1、自增主键 自增ID是在设计表时将id字段的值设置为自增的形式,这 阅读全文
posted @ 2020-09-13 21:05 古兰精 阅读(11556) 评论(0) 推荐(7) 编辑
摘要:1、查询结果中增加数据库里不存在的字段的方法 方法:SELECT '123' A, B ,C FROM TABLE 解释: A为自定义的列,赋值为123。B,C为TABLE中原有的列。 示例代码: <select id="getRoleIds" resultType="UserRole"> sele 阅读全文
posted @ 2020-09-13 20:37 古兰精 阅读(4349) 评论(0) 推荐(0) 编辑
摘要:一、for update的使用场景 如果遇到存在高并发并且对于数据的准确性很有要求的场景,是需要了解和使用for update的。 比如涉及到金钱、库存等。一般这些操作都是很长一串并且是开启事务的。如果库存刚开始读的时候是1,而立马另一个进程进行了update将库存更新为0了,而事务还没有结束,会将 阅读全文
posted @ 2020-08-31 18:06 古兰精 阅读(12623) 评论(0) 推荐(1) 编辑
摘要:在程序开发中,我们常遇到用树型结构来表示某些数据间的关系,如企业的组织架构、商品的分类、操作栏目等,目前的关系型数据库都是以二维表的形式记录存储数据,而树型结构的数据如需存入二维表就必须进行Schema设计。最近对此方面比较感兴趣,专门做下梳理,如下为常见的树型结构的数据: 一、邻接表 其中最简单的 阅读全文
posted @ 2020-08-27 10:43 古兰精 阅读(10700) 评论(0) 推荐(4) 编辑
摘要:mysql更新语句很简单,更新一条数据的某个字段,一般这样写:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value'; 如果更新同一字段的不同值,mysql也很简单,利用 in 查询,修改下where即可:UPDA 阅读全文
posted @ 2020-08-08 11:46 古兰精 阅读(4458) 评论(0) 推荐(0) 编辑
摘要:1、普遍方法: 使用 COUNT(*) ,例如: select count(*) as total from foods_info LIMIT 0,10; select count(*) as total from foods_info; 缺点: 记录集还需要单独的查询来获取,相当于两次查询 2、推 阅读全文
posted @ 2020-08-06 10:57 古兰精 阅读(8993) 评论(0) 推荐(1) 编辑
摘要:官网地址:https://www.mysql.com/ 安装建议:尽量不要用.exe进行安装,用压缩包安装,对日后的卸载更为方便 下载地址:https://dev.mysql.com/downloads/mysql/ 1、下载得到zip压缩包 2、解压到要安装的目录 我这里是:D:\Program 阅读全文
posted @ 2020-08-04 15:48 古兰精 阅读(8137) 评论(4) 推荐(2) 编辑
摘要:之前项目需求中遇到一个复杂排序使用到了order by case when,由于新来的后端不懂,所以我自己研究了下,见之前博客:查询排序:order by case when理解、在order By子句中使用case语句的理解 其实当时看到这篇博客(ORDER BY 高级用法之CASE WHEN), 阅读全文
posted @ 2020-07-31 12:34 古兰精 阅读(1266) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示