了解数据库

1.什么是数据库(dataBase)

    定义:数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。

2.数据库的分类

    数据库分为 关系型数据库和非关系型数据库

3.关系型数据库

    按照关系模型存储的数据库,数据与数据之间的关联非常密切,可以实现跨数据表查询数据,占用更少的硬盘实现更多的数据存储。

T-SQL 标准的结构化查询语言 是关系型数据库的通用查询语言

常见的关系型数据库有:MySQL,sql-server,Access,sqlite ...

4.非关系型数据库

    不按照关系型模型存储的数据库,统称为nosql

       第一层含义:不是SQL,不是关系型数据库

        第二层含义:Not Only SQL ,不仅仅是SQL

    结构: 一台服务器 =》数据库=》集合=》文档


5.MongoDB数据库(MongoDB 是一个基于分布式文件存储的数据库,以BSON(二进制+json)格式进行数据存储,可以直接存储对象,数组)

    1)安装 (https://www.robomongo.org/)

       robomongo 是MongoDB的可视化管理器;

    2)设置环境变量

    找到安装目录,默认的目录在C:\Program files\MongoDB\Server\3.6\bin ,自定义安装的目录就是自己选择的目录

     找环境变量  我的电脑 =》 属性=》高级系统设置=》高级=》环境变量=》修改path值(添加分号)

    3)创建文件

    在非系统盘下创建一个MongoDB,在创建一个data和log文件

        例如:d:\mongodb 

                    d:\mongodb\data

                    d:\mongodb\log

    4)将MongoDB挂载称为服务

        1)使用命令挂载

    mongod --dbpath "d:\mongodb\data" --logpath "d:\mongodb\log" --install --serverName "mongodb"

        2)如何找服务

    我的电脑=》管理=》服务和应用程序 

        3)补充说明服务命令

    net start mongodb//开启服务

    net end mongodb //停止服务

    sc delete mongodb //卸载服务


安装常见问题

    1)32位操作系统

    必须添加 --storageEngine mmapv1

    2)win8或win10权限问题

    cmd 右键以管理员身份运行,在执行挂载服务命令




常用的数据库命令

    1.数据库命令

        1. mongo 进入数据库管理模式

        2. exit 退出数据库管理模式

        3. show dbs   显示所有的数据库列表

        4. use  <数据库名>  如果存在在进入   不存在则创建

        5. db 查看当前在那个数据库中

        6. db.dropDataBase  删除数据库

    2.集合命令

        a.  show collections  显示当前数据库中的所有集合

        b. db.<集合名>.insert({})   创建集合 :(一般在创建数据时自动创建集合,不需要单独手动创建)

        c. db.<集合名>.drop()   删除集合

    3.文档的命令(数据的增删改查)

        1.  db.<集合名>.insert({BSON数据})   新增数据

            db.<集合名>.save({BSON数据})   新增数据

            insert() 和 save()的区别

                 1.区别一:

                    insert()直接往库中插入数据,不更新已存在的重复数据。

                    save() 往数据库插入数据时,会更新重复的数据。

                 2.区别二:

                    insert() 可以直接插入一个列表,无需遍历,效率高。

                    save() 不能直接插入列表,需要遍历列表,逐一插入。

        2. db.<集合名>.remove()  删除当前集合中的所有数据

            db.<集合名>.remove({条件对象})  删除当前集合中指定的数据

        3. db.<集合名>.update({条件对象},{修改的数据对象})   更改数据

        4. db.<集合名>.find() 查看数据(查找当前集合中的所有数据)   

            db.<集合名>.find({条件对象}) 

                    a.  db.<集合名>.find({key:{$gt:50}})   //$gt 表示大于  $gte 表示大于等于  $lt 表示小于 $lte 表示小于等于 $ne 表示不等于

                    b.  db.<集合名>.find({key:{$gt:20 , $lt:50}})  //表示小于50大于20 的范围

                    c.  db.<集合名>.find({"字段名":{$in:[数组值]}})  //查找字段名 值为指定数组值得数据   ¥nin  不属于数组值得数据

                    d.  db.<集合名>.find({"字段名":{$size:数量}})  //表示字段名的所对应的数据的数量

                    e: db.<集合名>.find({"key":{$exists:true|false}})  //true 返回存在字段key的数据  false 返回不存在字段key的数据

                    e: db.<集合名>.find({$or:{"字段名1":"值","字段名2":"值"}})  //表示获取字段名1 或者字段名2 的数据

            db.<集合名>.findOne() //查找一条带回 

            db.<集合名>.find().pretty()  //将找到的数据以格式化的形式显示出来

            5.排序

            db.<集合名>.find().sort({'key1':1}) // 1表示升序排列 -1 表示降序排列

            6.限定输出

                .limit( num ) //限定输出 条数

                .skip( num ) //跳过指定的数据条数

            7.模糊输出

             db.<集合名>.find({"key":reg})  //reg 表示正则表达式

            eg:db.<集合名>.find({"name":/赵/})

            8.统计多少条数据

                .count()

你可能感兴趣的:(了解数据库)