DQL语句及MongoDB基本操作

本文深入探讨了SQL中的DQL语句,包括聚合函数、分组、分页及多表连接查询,特别强调了子查询在优化多表连接查询中的作用。同时,介绍了MongoDB的基础知识,如NoSQL概念、MongoDB的特点及基本操作,如数据类型、查询操作符和更新删除操作。通过实例展示了如何在SQL和MongoDB中执行各种查询任务。
摘要由CSDN通过智能技术生成

目录

一、DQL语句

1、聚合函数:SQL已经定义好的函数,在查询语句中可以直接使用

(1)count(指定列):统计指定列不为null的行数

(2)sum(指定列名):求和函数

(3)avg(指定列名):求平均值

(4)max(列名):求最大值

(5)min(列名):求最小值

2、分组语句:将查询结果进行分组,使用group by子句

3、分页查询(MySQL)

4、多表连接查询:在一个查询语句中显示多张表的数据

二、子查询

1.多表连接查询的缺点

2.什么是子查询

三、MongoDB简介

1.NoSQL:非关系型数据库

2.MongoDB是NoSQL的典型代表,用于web的大容量的数据存储

3.常用术语

四、MongoDB基本操作

1.db:是MongoDB的默认数据库。用户可以创建多个数据库

2.数据类型 

3.查询操作符

4.常用函数

5.更新操作

6.删除


一、DQL语句

1、聚合函数:SQL已经定义好的函数,在查询语句中可以直接使用

(1)count(指定列):统计指定列不为null的行数

注意:在SQL中任何数和NULL相加结果仍然是NULL。若需要将数值型数据和NULL相加则需要先将NULL转换为0,然后相加,转换函数是IFNULL(列名,0)

作业:

a、将emp表中comm列的null都转换成0

(2)sum(指定列名):求和函数

(3)avg(指定列名):求平均值

(4)max(列名):求最大值

(5)min(列名):求最小值

2、分组语句:将查询结果进行分组,使用group by子句

HAVING子句:必须和group by子句结合使用,作用是对分组的结果再进行筛选

3、分页查询(MySQL)

LIMIT:用来限定查询结果的起始行,以及总行数

limit 起始行索引,连续查询的总行数

limit 0,5  表示从第一行(索引为0)开始,查询5行

4、多表连接查询:在一个查询语句中显示多张表的数据

(1)表与表之间的关系:

a、并集:union

b、笛卡尔积:

c、连接查询:join,本质是对笛卡尔积进行筛选

内连接(inner join):保留关系中所有匹配的数据记录,舍弃不匹配的记录也称为等值连接,返回的两张表都满足条件的部分(where条件)。

外连接 (OUTER JOIN):

(1)左外连接(左连接):left outer join...on...可以简写为 left join ... on ...

保留左表中的所有记录,右表中没有匹配的记录显示为Null

(2)右外连接(右连接):right outer join...on...,可以简写为 right join ... on ...

保留右表中的所有记录,左表中没有匹配的记录显示为Null

(3)全连接:full join,在表的笛卡尔积中,除了选择相匹配的数据记录,还会包含左右 两边表中不匹配的所有数据记录。

交叉连接(CROSS JOIN):

二、子查询

1.多表连接查询的缺点

先进行两个表的笛卡尔积,然后再查询符合条件的记录。性能很差。通常用子查询代替多表连接查询

2.什么是子查询

在一个select语句的from子句或where子句中包含另一个select语句。通常外层的select语句称为主查询,把内层的select语句称为子查询

(1)where子句的子查询:即在where子句中嵌套select语句。将子查询返回的值作为主查询的查询条件。

(2)form子句的子查询:内嵌的select语句返回的是一个临时表,然后再从这个临时表中查询符合条件的记录。该方式用于实现多表连接查询。

三、MongoDB简介

1.NoSQL:非关系型数据库

2.MongoDB是NoSQL的典型代表,用于web的大容量的数据存储

3.常用术语

 (1)数据库:database

 (2)表:collection(集合)

 (3)行:document(文档)

 (4)列:field(字段)

四、MongoDB基本操作

1.db:是MongoDB的默认数据库。用户可以创建多个数据库

2.数据类型 

Object ID:表示文档(行)的id

3.查询操作符

 (1)$lt:小于

 (2)$gt:大于

 (3)$or:或

 (4)$in:表示某个集合中

 (5)$size:用来统计记录数

 (6)$all:表示所有

4.常用函数

 (1)sort({字段:1/-1}):1表示升序,-1表示降序

 (2)distinct(字段):表示某个字段的覆盖范围

 (3)limit( ):分页查询

5.更新操作

 (1)updateOne( ):更新一条记录

a.$set:设置新的值

b.$push:追加一个内容

c.$pushAll:追加对个内容

e.&each:用于查找。和$addToSet联合使用时表示若存在则不添加,若不存在则添加

f.$inc:用于字段值的增加

g.$unset:删除某个字段

h.$pop:删除某个字段的第一个值

 (2)updateMany( ):更新所有记录

6.删除

 (1)deleteMany( ):删除所有记录

 (2)deleteOne( ):删除某个记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值