目录
1、聚合函数:SQL已经定义好的函数,在查询语句中可以直接使用
2.MongoDB是NoSQL的典型代表,用于web的大容量的数据存储
1.db:是MongoDB的默认数据库。用户可以创建多个数据库
一、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( ):删除某个记录