最近算学习了解下数据库,我所听说比较常用的数据库就是mysql和mongodb了,其实之前所了解的数据库基本上都是mysql,但是貌似是由于nodejs的崛起,以mongodb为代表的关系型数据库开始流行,所以还是先了解了下关系型数据和非关系型数据库:
关系型数据库通过外键关联来建立表与表之间的关系
非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定
非关系型数据库中,我们查询一条数据,结果出来一个数组,关系型数据库中,查询一条数据结果是一个对象。
数据库类型
特性
优点
缺点
关系型数据库SQLite、Oracle、mysql
1、关系型数据库,是指采用了关系模型来组织数据的数据库;
2、关系型数据库的最大特点就是事务的一致性;
3、简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
1、容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解;
2、使用方便:通用的SQL语言使得操作关系型数据库非常方便;
3、易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率;
4、支持SQL,可用于复杂的查询。
1、为了维护一致性所付出的巨大代价就是其读写性能比较差;
2、固定的表结构;
3、高并发读写需求;
4、海量数据的高效率读写;
非关系型数据库MongoDb、redis、HBase
1、使用键值对存储数据;
2、分布式;
3、一般不支持ACID特性;
4、非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。
1、无需经过sql层的解析,读写性能很高;
2、基于键值对,数据没有耦合性,容易扩展;
3、存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库
只支持基础类型。
1、不提供sql支持,学习和使用成本较高;
2、无事务处理,附加功能bi和报表等支持也不好;
差不多了,开始刨坑。
环境搭建与安装(MySql-8.0.12)
我看了下菜鸟教程的搭建,原以为相当简单,然而总是会出这样那样的问题,解决了这个又有了另一个,最后好不容易安装成功是依靠了我直接搜索mysql8.0.12安装教程后进入 MySql-8.0.12 安装教程随笔成功的,但是还有个问题就是安装成功后要先修改密码,我一样试了很多方法,最后使用的是mysqladmin -u用户名 -p旧密码 password 新密码的方式成功的。
开始操作
操作规范
刚开始需要了解下mysql的操作规范,最基础需要知道的是:
关键字与函数名称全部大写
数据库名称、表名称、字段名称全部小写
SQL语句必须以分号结尾
当然这些似乎都只是冰山一角,我随便查了一下mysql编程规范,实在是太多了,根本记不住,后面学习的时候碰到了再说吧,当然这些也只是规范,规范并不是规定,但是规范的意义也很重要。
基础操作
修改MySQL提示符:
连接客户端时通过参数指定:shell>mysql -uroot -proot --prompt 提示符
连接上客户端后,通过prompt命令修改: mysql>prompt 提示符
常用MySQL提示符:\D 完整的日期 \d 当前数据库 \h服务器名称 \u当前用户
我设置的是prompt \u@\h \d>显示出来就是root@localhost (none)>
数据库简单的增删查改
创建数据库命令:
CREATE {DATABASE | SCHAME} [IF NOT EXISTS] db_name [DEFUALT] CHARACTER SET [=] charset_name
查看所有数据库的命令:
SHOW {DATABASES | SCHAMES} [LIKE 'pattern' | WHERE expr]
查看创建数据库的编码方式:
SHOW {DATABASE | SCHANE} db_name
修改数据库的编码方式:
ALTER {DATABASE |SCHAME} [db_name] [DEFAULT] CHARACTER SET [=] charset_name
删除数据库的命令:
DROP {DATABASE | SCHAME} [IF EXISTS] db_name
MySQL 数据类型
对表增加数据之前需要得对MySQL数据类型有一定的了解,选择合适的数据类型很重要,贴链接
数据表
先了解下数据表与数据库
数据表(或表)是数据库最重要的组成部分之一,是其他对象的基础
表是一个二维表,行称为【记录】,列称为【字段】
数据表的操作命令
关于数据表的操作命令,网上也有很多,可以自我学习一下
内容可能有点多,但是都得花时间过一遍,不要求一下都记住,至少了解mysql数据究竟有哪些功能,总而言之,内容还是挺多的,路漫漫其修远兮。
到此结束,希望能帮助到想入门mysql的小伙伴们。