0%

1. 连接

1.1 client连接

  • Mac 终端连接

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    brew install mongosh

    mongosh "mongodb://user:password@xxxxxxx.com:3717/db_name"


    # 查看当前在哪个数据库
    db
    # 查看所有数据库
    show dbs
    # 查看数据库所有集合
    show collections
阅读全文 »

1. 介绍

MongoDB 是一个基于 分布式文件存储 的开源 NoSQL 数据库系统,由 C++ 编写的。MongoDB 支持分片集群,可以很方便地添加更多的节点(实例),让集群存储更多的数据,具备更强的性能。

阅读全文 »

1. 数据结构

1.1 数据类型

  • null :null 类型用于表示空值或不存在的字段。{"x":null}
  • 布尔类型:布尔类型的值可以为 true 或者 false。{"x":true}
  • 数值类型:shell 默认使用 64 位的浮点数来表示数值类型。{"x":3.14}。对于整数,可以使用 NumberInt 或 NumberLong 类,它们分别表示 4 字节和 8 字节的有符号整数。对于整数,可以使用 NumberInt 或 NumberLong 类,它们分别表示 4 字节和 8 字节的有符号整数。{"x":NumberInt("3") {"x":NumberLong("3")
  • 字符串类型:{"x":"foobar"}
  • 日期类型:MongoDB 会将日期存储为 64 位整数,表示自 Unix 纪元(1970 年 1 月 1 日)以来的毫秒数,不包含时区信息。{"x":new Date()}
  • 正则表达式:{"x": /foobar/i}
  • 数组类型:{"x":["a","b","c"]}
  • 内嵌文档:{"x":{"foo":"bar"}}
  • Object ID:  Object ID 是一个 12 字节的 ID,是文档的唯一标识。{"x": ObjectId()}
  • 二进制数据: 二进制数据是任意字节的字符串,不能通过 shell 操作。如果要将非 UTF-8 字符串存入数据库,那么使用二进制数据是唯一的方法。
  • 代码: MongoDB 还可以在查询和文档中存储任意的 JavaScript 代码。
阅读全文 »

1. mysql

版本事件时间New
1.01995仅供内部使用
3.11.11996First release
4.02002查询缓存,联合,全文,InnoDB
5.02005存储的Routies,视图,游标,触发器,XA事务,I_S
5.12008-11-14事件调度程序,分类,插件API,RBR,InnoDB插件,MySQL群集
5.52010-12-03InnoDB代替MyISAM成为MySQL默认的存储引擎。
5.62013-02-05在线DDL,GTID,并行复制,ICP,MRR……MySQL 5.6是MySQL历史上一个里程碑式的版本,这也是目前生产上应用得最广泛的版本。https://dev.mysql.com/doc/refman/5.6/en/mysql-nutshell.html
5.72015-10-21组复制,InnoDB Cluster,多源复制, JSON支持https://dev.mysql.com/doc/refman/5.7/en/mysql-nutshell.html
8.02018-04-19不可见索引,降序索引https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html
阅读全文 »

登录学信网, 发现手机号还是大学时候用的手机号, 号码都忘记了, 改绑现在的手机还需要必填以前的手机号.

之前的手机号中间四位是****, 所以一共有10000种可能.

阅读全文 »

MySQL 更新语句的流程会涉及到 undo log(回滚日志)、redo log(重做日志) 、binlog (归档日志)这三种日志。

  • undo log(回滚日志):是 Innodb 存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和 MVCC。
  • redo log(重做日志):是 Innodb 存储引擎层生成的日志,实现了事务中的持久性,主要用于掉电等故障恢复。
  • binlog (归档日志):是 Server 层生成的日志(和存储引擎无关),主要用于数据备份和主从复制。
阅读全文 »

1. mysql 数值数据类型

MySQL支持所有标准的SQL数值数据类型。这些类型包括精确的数字数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC,以及近似数字数据类型(FLOAT、REAL和DOUBLE PRECISION)。

  • INT是INTEGER的同义词。

  • DEC, FIXED, NUMERIC是DECIMAL的同义词。

  • DOUBLE视为DOUBLE PRECISION(非标准扩展)的同义词。

  • REAL视为DOUBLE PRECISION(非标准变体)的同义词,除非启用REAL_AS_FLOAT SQL模式。

从MySQL8.0.17开始,ZEROFILL属性不推荐用于数值数据类型,在未来的MySQL版本中,对它的支持将被删除。

阅读全文 »

1. join类型

在关系代数中,连接运算是由一个笛卡尔积运算和一个选取运算构成的。首先用笛卡尔积完成对两个数据集合的乘运算,然后对生成的结果集合进行选取运算,确保只把分别来自两个数据集合并且具有重叠部分的行合并在一起。

连接的全部意义在于在水平方向上合并两个数据集合(通常是表),并产生一个新的结果集合,其方法是将一个数据源中的行于另一个数据源中和它匹配的行组合成一个新元组。

SQL提供了多种类型的连接方式,它们之间的区别在于:从相互交叠的不同数据集合中选择用于连接的行时所采用的方法不同。

阅读全文 »