My数据库

一、相关说明

  • 博主本地环境:Windows 11家庭中文版、64位操作系统,基于x64的处理器
  • 更新日期202510051443分(持续更新中)

二、MySQL

1. SQL语句

  • 数据定义语言DDL(Data Definition Language)——CREATE、DROP、ALTER

    • 创建数据库

      1
      CREATE DATABASE 数据库名;
    • 删除数据库

      1
      DROP DATABASE 数据库名;
    • 使用数据库

      1
      USE 数据库名;
    • 创建表

      1
      2
      3
      4
      5
      6
      CREATE TABLE 表名(
      列名1 列1类型,
      ...
      列名n 列n类型,
      PRIMARY KEY ( `列名` )
      );
    • 删除表

      1
      DROP TABLE 表名;
    • 查看数据库、数据表、表结构

      1
      2
      3
      SHOW DATABASES;
      SHOW TABLES;
      DESC 表名; 或 DESCRIBE 表名;
    • 原数据表的结构,索引

      1
      SHOW CREATE TABLE 表名;
    • 修改表名

      1
      RENAME TABLE 原表名 to 新表名;
  • 数据查询语言DQL(Data Query Language)——SELECT

    • 简单查询

      1
      2
      SELECT * FROM 表名 WHERE 字段='值';
      SELECT * FROM 表名 WHERE 条件 IN('值','值',...,'值');
    • 联表查询——左连接(LEFT JOIN)

      1
      SELECT a.*,b.字段(需要的值) FROM B表名 b LEFT JOIN A表名 a ON a.字段 =b.字段 WHERE 字段='值';
    • 嵌套查询

      1
      SELECT * FROM A表名 WHERE 字段1 IN(SELECT 字段1 FROM B表名 WHERE 字段3 ='值');
    • 去掉重复值——DISTINCT

      1
      SELECT DISTINCT 字段 FROM 表名;
    • 限制行数——LIMIT

      1
      SELECT * FROM 表名 LIMIT 数值;
    • 范围区间——BETWEEN…AND

      1
      SELECT * FROM 表名 WHERE 字段1 = '值' AND 字段2 BETWEEN '起始范围' AND '结束范围';
    • 除…之外——NOT IN

      1
      SELECT 字段(需要的值) FROM 表名 WHERE 字段(除...之外) NOT IN ('值');
    • 包含——LIKE

      1
      SELECT * FROM 表面 WHERE 字段 LIKE '%值%';
    • 排序——升序(ASC)、降序(DESC)、先升序再升序、先降序再降序

      1
      2
      3
      4
      5
      SELECT * FROM 表名 WHERE 字段 = '值' ORDER BY 排序字段 ASC;
      SELECT * FROM 表名 WHERE 字段 = '值' ORDER BY 排序字段 DESC;
      SELECT * FROM 表名 WHERE 字段 = '值' ORDER BY 排序字段1 ASC,排序字段2 ASC;
      SELECT * FROM 表名 WHERE 字段 = '值' ORDER BY 排序字段1,排序字段2; # 默认升序
      SELECT * FROM 表名 WHERE 字段 = '值' ORDER BY 排序字段1 DESC,排序字段2 DESC;
    • 分组——GROUP BY

      1
      2
      3
      SELECT * FROM 表名 GROUP BY 字段1,...,字段N;
      SELECT * FROM 表名 GROUP BY 字段1,...,字段N ORDER BY 字段 ASC/DESC;
      SELECT * FROM 表名 GROUP BY 字段1,...,字段N HAVING 字段(<、>、=)值;
    • 组合查询——UNION ALL

      1
      SELECT 字段 FROM 表名 WHERE 字段='值' UNION ALL SELECT 字段 FROM 表名 WHERE 字段='值';
    • 设置别名——AS

      1
      SELECT 字段 AS 别名 FROM 表名;
    • WHERE过滤空值

      1
      2
      3
      WHERE 列名 IS NOT NULL
      WHERE 列名 != ‘NULL’
      WHERE 列名 <> ‘NULL’
    • 操作符

      1
      2
      AND
      OR
    • 值——最大值(MAX)、最小值(MIN)、平均值(AVG)、和(SUM)

      1
      2
      3
      4
      SELECT MAX(字段) FROM 表名;
      SELECT MIN(字段) FROM 表名;
      SELECT AVG(字段) FROM 表名;
      SELECT SUM(字段) FROM 表名;
    • 函数

      • 条件函数
  • 数据操纵语言DML(Data Manipulation Language)——INSERT、UPDATE、DELETE

    • 插入内容

      1
      INSERT INTO `表名` (字段1`,`字段2`,...,`字段n`) VALUES ('值1',‘值2',...,'值n');
    • 更新内容

      1
      UPDATE 表名 SET 字段 = ’值‘(需要修改的值) WHERE 字段 = '值';
    • 删除内容

      1
      DELETE 表名 WHERE 字段 = '值' AND 字段 ='值';
  • 数据控制语言DCL(Data Control Language)

2. 其他

三、MongoDB

1. 数据库操作

  • 查看所有数据库

    1
    show dbs
  • 创建数据库

    1
    use 数据库名

    注意:数据库不存在则创建数据库,存在切换指定数据库

  • 删除数据库(先选中数据库)

    1
    db.dropDatabase()

2. 集合操作

  • 查看所有集合

    1
    show collections
  • 创建集合

    1
    db.createCollection('集合名')

    样例

    创建固定集合 mycol,整个集合空间大小 6142800 B, 文档最大个数为 10000 个

    1
    db.createCollection("mycol", { capped : true, autoIndexId : true, size : 6142800, max : 10000 } )
  • 删除集合

    1
    db.集合名.drop()

3. 文档操作

  • 插入文档

    样例

    插入 title 为 “MongoDB”,description 为 “MongoDB 是一个 Nosql 数据库” 的文档

    1
    db.col.insert({title: 'MongoDB', description: 'MongoDB 是一个 Nosql 数据库'}, 'by': 'Blog')

    注释:col 是我们的集合名,如果该集合不在该数据库中, MongoDB 会自动创建该集合并插入文档

  • 删除文档

    样例

    删除 title 为 “MongoDB” 的文档

    1
    db.col.remove({'title': 'MongoDB'})
  • 更新文档

    样例

    把 title 由原来的 “MongoDB” 更新为 “MongoDB Blog”,修改一条

    1
    db.col.update({'title': 'MongoDB'},{$set:{'title': 'MongoDB Blog'}})

    ‘,{multi:true}’ 修改多条相同的文档

    1
    db.col.update({'title': 'MongoDB'},{$set:{'title': 'MongoDB Blog'}},{multi:true})
  • 查询文档

    样例

    通过 by 和 title 键来查询 “Blog” 中 “MongoDB Blog” 的数据

    1
    db.col.find({'by': 'Blog', 'title': 'MongoDB Blog'}).pretty()