了解数据库

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()

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,402评论 6 499
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,377评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,483评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,165评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,176评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,146评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,032评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,896评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,311评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,536评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,696评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,413评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,008评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,815评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,698评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,592评论 2 353

推荐阅读更多精彩内容

  • 一、MongoDB简介 1.概述 ​ MongoDB是一个基于分布式文件存储的数据库,由C++语言编写。旨在为WE...
    郑元吉阅读 977评论 0 2
  • 一、MongoDB简介 概述MongoDB是一个基于分布式文件存储的数据库,由C++语言编写。旨在为WEB应用提供...
    王梓懿_1fbc阅读 493评论 0 3
  • 一、MongoDB简介 概述MongoDB是一个基于分布式文件存储的数据库,由C++语言编写。旨在为WEB应用提供...
    EndEvent阅读 1,163评论 1 4
  • 一、MongoDB简介 概述MongoDB是一个基于分布式文件存储的数据库,由C++语言编写。旨在为WEB应用提供...
    慕杨_阅读 557评论 0 4
  • 一、MongoDB简介 概述MongoDB是一个基于分布式文件存储的数据库,由C++语言编写。旨在为WEB应用提供...
    fly5阅读 286评论 0 0