目录
前言
一、数据库中的数据结构 与SQL语言
1、数据结构
2 、SQL语言
1、安装
2、配置防火墙
3、初始化服务
4、小试牛刀
1、创建用户
2、给用户授权
3、查看用户权限
4、移除用户权限
1、创建数据库
2、创建数据库表单
3、修改数据表单及数据
①插入数据
②修改数据
③删除数据
1、数据库备份
2、数据库恢复
前言:
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB之于MySQL,类似于CentOS之于Redhat。由于Oracle拥有MySQL的名字和海豚商标,基于此如果各公司继续用Mysql可能存在法律纠纷,于是纷纷开始选择兼容性好而且研发力量强大的MariaDB。
一、数据库中的数据结构 与SQL语言
1、数据库简介及数据结构
数据库系统是一个用于数据查询管理的软件,数据库系统查询的是以特定格式存储数据的数据库。所以数据库系统可以操作的数据库并不止一个。数据库下的数据整合单位为表,表中每行为一个元组,也就是一个实体属性的集合,表中每一列为每个实例的形同属性值的集合。
MariaDB属于关系型数据库系统(RDBS),即用实体的一些属性信息,构成一个集合(元组),多个实体的具有相同属性集元组构成一张列表,表内在通过域,键,属性和元组上的约束条件与其他表建立关联关系。
数据要遵守的约束 constraint:
●主键:在众多列中有一个列(或多个列)被标识为特殊列,此列中属性的值在众多实体相同的属性中具有唯一性,该列中的值被称为主键。主键的值不能为空。且一张表中只能有一个主键。
●唯一键:在众多列中有一个(或多个列),每个值都能表示出该元组,也就是说该列的值具有唯一性。该列中的元素可以成为唯一键
●外键:一个表中的某字段可填入的数据取决于另一个表的主键或唯一键已有的数据
●检查:字段值在一定范围内
2、 SQL语言:
SQL语言可以理解成向服务端提问的语言,SQL语言按照功能可以分为几种子语言:
数据定义语言(DDL):创建和管理数据库,包括创建修改表,定义索引,管理约束条件。DDL操作对象为数据库内部的对象。
数据操纵语言(DML):查询和更新数据库中的数据,用于添加,删除,更新,查询。DML的操作对象是表的内部数据。而不会涉及到表的定义,结构的修改。
数据控制语言(DCL) :对用户的权限控制
数据查询语言(dql):对数据库查询
SQL语言查询的的操作可以分为:
限制(选择):挑选出符合条件的行。返回与查询语句中的条件(断言相匹配的元组)
投影:只返回元组中相关的列,即返回元组中相关的属性
联结:返回与联结条件相匹配的元组,
联结条件可以分为:
有条件联结(条件联结)
无需满足任何条件(笛卡尔积)
二、MariaDB安装及初始化配置
1、安装:
Centos 7 yum仓库默认就有mariadb安装包直接安装即可。
yum install mariadb mariadb-server -y #安装mariadb客户端和服务端程序 systemctl start mariadb #启动程序 systemctl enable mariadb #设为开机自启动
2、配置防火墙
很多生产环境中需要使用站库分离的技术,如果需要让root管理员帐户能够用远程访问数据库,可设置防火墙允许对本机mysql服务程序的访问请求即可:
3、初始化服务
安装完成后需进行初始化设置:
mysql_secure_installation #直接执行初始化命令,会弹出交互配置信息 Enter current password for root (enter for none):#初次进入密码为空,直接回车 New password: #输入要为root用户设置的数据库密码。 Re-enter new password: #重复再输入一次密码。 Remove anonymous users? [Y/n] y #删除匿名帐号 Disallow root login remotely? [Y/n] n #是否禁止root用户从远程登录,安全起见应禁止,这里为做实验方便这里不禁止。 Remove test database and access to it? [Y/n] y #是否删除test数据库,想留着也随意 Reload privilege tables now? [Y/n] y #刷新授权表,让初始化后的设定立即生效
确认服务是否开启,默认监听在tcp的3306端口
4、小试牛刀
①使用mysql -u “用户名” -p 指明用密码登录,回车输入密码即可。可输入help;查看使用帮助。
tips:-u用用户名之间可用空格也可不用空格。
-p不指定密码可回车输入密文密码,如想明文输入与密码间不能用空格。
如:
mysql -uroot -p12345678
②使用set password = password(‘密码‘) ; 设定密码
使用select user(); 查看当前登录用户 tips:① mariadb中命令都要以";" 结尾,表示命令输入完毕。
② 数据库中的用户root和其他用户名与当前操作系统用户名无关,你可以把数据库软件当作一种操作系统,有自己的用户列表,root为管理员。
三、管理用户及授权
生产中数据库管理系统需要多部门协同管理数据库内容,所以需要创建出多个数据库专用的帐户,然后再进行合理的权限分配,以达到提升工作效率的目的。
1、创建用户的语法为:CREATE USER 用户名@主机名 IDENTIFIED BY ‘密码‘;
tips: 数据库中用户名全称由两部分组成,"用户名"@"登陆终端(可以是IP地址)"。
2、给用户授权使用GRANT命令,授权命令常用格式如下:
命令 | 作用 |
GRANT 权限 ON 数据库.表单名称 TO 用户名@主机名 | 对某个特定数据库中的特定表单给予授权。 |
GRANT 权限 ON 数据库.* TO 用户名@主机名 | 对某个特定数据库中的所有表单给予授权。 |
GRANT 权限 ON *.* TO 用户名@主机名 | 对所有数据库及所有表单给予授权。 |
GRANT 权限1,权限2 ON 数据库.* TO 用户名@主机名 | 对某个数据库中的所有表单给予多个授权。 |
GRANT ALL PRIVILEGES ON *.* TO 用户名@主机名 | 对所有数据库及所有表单给予全部授权,(谨慎操作)。 |
例:
3、查看用户权限使用show grants for "用户名全称";
4、同时移除用户权限用命令revoke代替GRANT即可。
四、创建及管理数据库、表单
MariaDB数据库管理系统最重要的作用之一就是能够管理数据库及表单内容,一个数据库中可以存放多个数据表,数据表是数据库中最实质的内容。
常用管理数据库及表单命令:
用法 |
作用 |
CREATE database 数据库名称。 |
创建新的数据库。 |
DESCRIBE 表单名称; |
描述表单。 |
UPDATE 表单名称 SET attribute=新值 WHERE attribute > 原始值; |
更新表单中的数据。 |
USE 数据库名称; |
指定使用的数据库。 |
SHOW databases; |
显示当前已有的数据库。 |
SHOW tables; |
显示当前数据库中的表单。 |
SELECT * FROM 表单名称; |
从表单中选中某个记录值。 |
DELETE FROM 表单名 WHERE attribute=值; |
从表单中删除某个记录值。 |
1、创建数据库示例:
2、创建数据库表单示例:
要想创建数据表单,就要用use切换到某个指定的数据库中,如在新建的shudian数据库中创建一个叫做mybook的表单。新建表单需要进行表单初始化即需要定义存储数据内容的结构,咱们分别定义三个字段项,能够存储15个字符的name字段是用来保存书籍名称的,而整数类型的price与pages则分别存储书籍价格和页数。
3、修改数据表单及数据
①插入数据:
向刚刚创建的mybook数据库表单写入一条书籍信息,插入数据库内容要使用insert命令,写清表单名称以及对应的字段项目,就可以插入一条名称叫做linuxprobe的书籍啦,它的价格和页数分别是60元和518页。命令执行后也就意味着书籍信息已经被写入成功了,咱们便可以来查询表单中的内容啦,使用select命令查询表单内容的时候需要加上想要查询的字段,如果想查看表单中的所有内容也可以干脆使用*(星号)通配符来显示所有内容:
②修改数据:
用update命令把刚刚插入的书籍价格修改为55元,然后再用select命令指定查看下书籍的名称和价格信息。
③删除表单
4、数据库内容查询
一般数据库表单中都会有成千上万条的数据条目,例如刚刚创建用于保存书籍信息的mybook表单,如果经过时间的推移里面的书籍信息也会变得越来越多,那么如果只是想查看售卖价格大于某个价格的书籍时又该如何定义查询语句呢?咱们先使用刚刚学习过的insert插入命令来依次插入4条书籍信息:
要想让查询结果更加精准,那么就需要把select结合where命令来一起使用了,where是用于在数据库中进行匹配查询的条件命令,咱们可以设置一个查询的条件,那么就仅会查找出符合该条件的数据内容,常用的参数包括有:
参数 |
作用 |
= |
相等。 |
<>或!= |
不相等。 |
> |
大于。 |
< |
小于。 |
>= |
大于或等于。 |
<= |
小于或等于。 |
BETWEEN |
在某个范围内。 |
LIKE |
搜索一个例子。 |
IN |
在列中搜索多个值。 |
例:查找出mybook表单中价格大于40元或价格不等于60元的书籍
五、数据库备份与恢复
1、数据库备份
mysqldump命令用于备份数据库数据,格式为:“mysqldump [参数] [数据库名称],其中参数与mysql命令大致相同,-u参数用于定义登陆数据库的用户名称,而-p参数代表密码提示符。例如接下来把linuxprobe数据库内容导出成一个文件保存到root管理员用户的家目录中:
2、数据库恢复
上一步中已将数据库备份,这次我们来尝试删除数据库并恢复。
数据恢复方法如下:
mysql -u root -p linuxprobe < /root/linuxprobeDB.dump