mariadb(第一章)

 

数据库介绍

1.什么是数据库?
简单的说,数据库就是一个存放数据的仓库,这个仓库是按照必定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织,存储的,咱们能够经过数据库提供的多种方法来管理数据库里的数据
更简单的理解形象,数据库和咱们生活追踪存放杂物的储物间仓库性质同样,区别只是存放的东西不通,杂物间存放实体的物件,而数据库里存储的是数据,这样咱们就对数据库有一个初步了解了。
数据库诞生于1950年,随着信息技术的发展和人类社会的不断进步,特别是2000年后,数据库不在仅仅是存储和管理数据了,而转变成用户所须要的各类数据管理的方式,数据库有不少种类和功能,从最简单的存储有各类数据的表格到可以进行海量数据存储的大型数据库系统都在各个方面获得了普遍的应用。
 

关系型数据库

         (1)关系型数据库介绍mysql

                  关系型数据库模型是把复杂的数据结构归结为简单的二元关系(既二维格式表)。例如宏福教育某一期的学生关系就是一个二元关系,在关系型数据库中,对数据的操做几乎所有创建在一个或多个关系表上,经过对这些关联表格分类,合并,链接或选取等运算来实现数据的管理。web

       关系型数据库诞生距今已经有40多年了,从理论产生发展到现实产品,例如:你们最多见的mysql和oracle数据库,oracle在数据库领域里上升到了霸主的地位,造成每一年高达数百亿美圆的庞大产业市场,而mysql也是不容忽视的数据库,以致于被oracle中心收购了。sql

    (2)关系型数据库表之间的关系列举mongodb

 

 

 

 

非关系型数据库(nosql)

非关系型数据库也称之为nosql数据库,请注意,nosql的本意是“not only SQL”,指的是非关系型数据库,而不是“no SQL”的意思,所以nosql的产生并非要完全否认关系型数据库,而是做为传统关系型数据库的一个有效补充,NoSQL数据库在特定的场景下能够发挥出不可思议的高效率和高性能。数据库

随着互联网的兴起,超大规模和高并发量的微博,微信,SNS类型的web2.0纯动态网站已经显得力不从心,暴露了不少难以克服的问题,例如:传统的关系型数据库IO瓶颈,性能瓶颈都难以有效突破,因而开始出现了大批针对特定场景,以高性能和使用便利为目的的功能特异化的数据库产品,NoSQL类的数据库就是在这样的情景中诞生并获得了很是迅速的发展vim

NoSQL是非关系型数据库的广义定义。它打破了长久以来关系型数据库与ACID理论大一统的局面,NoSQL数据存储不须要固定的表结构,一般也不存在链接操做,在大数据存取上具有关系型数据库没法比拟的性能优点,该术语(NoSQL)在2009年初获得了普遍的认同centos

google的BigTable与Amazon的Dynamo是很是成功的商业NoSQL,一些开源的NoSQL体系,如微信

Redis, mongodb也逐渐的愈来愈受到各大中小型企业的欢迎和追捧数据结构

1、关系型数据库

 

关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织
优势:并发

  1. 易于维护:都是使用表结构,格式一致;
  2. 使用方便:SQL语言通用,可用于复杂查询;
  3. 复杂操做:支持SQL,可用于一个表以及多个表之间很是复杂的查询。

缺点:

  1. 读写性能比较差,尤为是海量数据的高效率读写;
  2. 固定的表结构,灵活度稍欠;
  3. 高并发读写需求,传统关系型数据库来讲,硬盘I/O是一个很大的瓶颈。

2、非关系型数据库

非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,能够是文档或者键值对等。
优势:

  1. 格式灵活:存储数据的格式能够是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景普遍,而关系型数据库则只支持基础类型。
  2. 速度快:nosql可使用硬盘或者随机存储器做为载体,而关系型数据库只能使用硬盘;
  3. 高扩展性;
  4. 成本低:nosql数据库部署简单,基本都是开源软件。

缺点:

  1. 不提供sql支持,学习和使用成本较高;
  2. 无事务处理;
  3. 数据结构相对复杂,复杂查询方面稍欠。

 

常见的数据库

非关系型数据库(nosql):mongodb,redias

关系型数据库:oracle,db2,sqlserver,mysql,mariadb

 

Mariadb发源

MySQL之父Widenius先生离开了Sun以后,以为依靠Sun/Oracle来发展MySQL,实在很不靠谱,因而决定另开分支,这个分支的名字叫作MariaDB。

MariaDB跟MySQL在绝大多数方面是兼容的,对于开发者来讲,几乎感受不到任何不一样。目前MariaDB是发展最快的MySQL分支版本,新版本发布速度已经超过了Oracle官方的MySQL版本。
在Oracle控制下的MySQL开发,有两个主要问题:1. MySQL核心开发团队是封闭的,彻底没有Oracle以外的成员参加。不少高手即便有心作贡献,也没办法作到。2. MySQL新版本的发布速度,在Oracle收购Sun以后大为减缓。Widenius有一个ppt,用数据比较了收购以前和以后新版本的发布速度。有不少bugfix和新的feature,都没有及时加入到发布版本之中。

 

RDBMS

Relational Database Management System

  • sql语句主要分为:
    • DQL:数据查询语言,用于对数据进行查询,如select
    • DML:数据库操做语言,对数据库进行增删改查,如:insert,update,delete
    • TPL:事物处理语言,对事物进行处理,包括begin,transaction,commit,rollback
    • DCL:数据控制语言,如grant,revoke
    • DDL:数据定义语言:进行数据库,表的管理等,如create,drop
    • CCL:指针控制语言,经过控制指针完成表的操做,如declare cursor
  • sql是一门特殊的语言,专门用来操做关系型数据库
  • 不区分大小写

 

 

 

 

mariadb安装
[mariadb]
name = MariaDB
baseurl = http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos7-amd64/
gpgkey=http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1

 

忘记mysql的root密码
vim /etc/my.conf.d/server.conf
添加skip-grant-tables
mysql -uroot | mysql -u root -p    

查看数据库
show databases;  
 
         
#查看建立数据库状态
 show create database testdb;

          
#使用哪一个库
 use testdb

 

修改数据库
create database test03 

#建立数据库
create database testdb character set utf8;
 


#删除数据库
drop database testdb;
 
          

#修改数据库默认字符集
alter database 库名 default character set utf8;
 
          

#查看当前用户
select user();
 


#给aaa添加查询,建立,更新,删除的权限(在任意主机上)       
grant select,create,update,delete on test03.grade to aaa@'%'; 


#给aaa赋予test03数据库的grade表最高权限(在任意主机上)             grant all privileges on test03.grade to aaa@'%'; #查看aaa用户的权限(root用户)                         show grants for 'aaa'; #收回aaa在任意数据库的任意表的最高权限                     revoke all on *.* from aaa@'%';                            #查看本身权限show grants
相关文章
相关标签/搜索