• MariaDB数据库的安装及对其管理


    MySQL的体系结构
     
    数据库安装完毕后,应该先对数据库进行配置,在对其进行数据的操作
    innodb 行级锁,互不影响别的数据操作,解决数据并发更改数据的冲突
     
    使用yum进行安装,但是yum源地址所依赖的库文件需要在挂载的光盘repo中
     
    MairaDB的特性:
    单进程,多线程
    多种存储引擎可选
     
    高版本不同的名字
    MyISAM==>Aria
    InnoDB==>XtraDB
    #~~~~~~~~~~~~~~~~~~~~~~~~~
    centos7启动mariadb服务命令:
    systemctl enable mariadb
     
    进入mariadb命令: mysql
    显示数据库中的表:show databases
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    maria数据库装完毕后只允许本机访问
     
    匿名账号不需要设置,随便输入,权限不大,访问数据不全
     
    用户设置账户密码命令:mysql_secure_installation
    mysql加帐号密码后的访问代码为: mysql -u??? -p????(明文显示,可以敲击回车不显示的输入密码)
     
    maria数据库的用户名为 user+host组成一个用户名
     
    linux下数据库默认的存储路径为:datadir=/var/lib/mysql(可以更改)
     
    在数据中创建一个新的库命令为:create database ***;
     
    构建数据表时,应考虑其属性之间的关系,按照第三范式的要求来进行创建
     
    mysql的数据类型分为可变和固定两种类型:固定的字节若达不到则会在末尾补零(建议使用固定,因为整体规整,方便查看和索引)
     
    使用可变字节:数据可长可短,但不规整,节省磁盘空间
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    常见数据单位:
    char(n):固定长度,最多255个字符
    varchar(n):可变长度,最多65535个字符
    tinytext :可变长度,最多255个字符
    text:可变长度,最多65535个字符
    BINARY(M)固定长度,可存二进制或字符,允许长度为0-M字节
     
    内建类型:enum枚举,set集合
    使用enum后,限定了数据可选的类型
    #~~~~~~~~~~~~~~~~~~~~
    数据库常用命令:
     
    show databases;     查看数据库
     
    use ***;     使用某个数据库,或者切换到某个数据库
     
    show tables;显示当前所在的数据库中的表信息
     
    desc ****;观看tables中某个表的结构
     
    在mysql数据库中插入属性:
    (1)insert 表名 (表中的属性,例如sid,name,sex) value(顺序对应个数的属性的值);     插入一条记录,并指定其属性对应的值(value)
    (2)insert 指定表 value(02,'yang','f');     若属性本身就是按照顺序来的,可以省略前面的属性值
    (3)insert 指定表(sid,name) value(02,'yang') 若某些属性不赋值,则可以根据其定义是否可以为NULL,来进行操作,若允许,则可以为空,否则必须要有
     
    update 表名 set 表内属性1='value',表内属性2='value'  where name='指定对谁操作'
     
    delete from 指定表名  where 属性名='value'     删除某个指定表中,指定的某一列
     
    truncate table 指定表名     无法还原,清空指定表名的所有数据
     
    select *(这个*代表所有数据) from students;     查看students中的所有数据
     
    show table status like '指定表名'G     查看指定表名的状态
     
    create table 表名 (参数1,可变或不可变长度,参数2,可变或不可变长度,参数3,可变或不可变长度) 在当前库中新建一个表,并指定其应有的属性和对应的参数条件
     
    select 属性1,属性2 from 表名 where 属性 = '指定属性';      显示表内指定属性为*的信息,(一个表中通常有很多信息,但是我们根据需求之查询某一些属性,但是他们得符合某些属
    性要求,所以就是这种写法)
     
    根据分组来进行数据统计:
    GROUP:根据指定的条件把查询结果进行‘分组’以用于做”聚合“运算
    select 指定属性,avg(要求平均值的属性) from 表名 group by 指定属性;     查看来自指定表名的指定属性的avg(平均值)
     
    select * from 指定表 order by 指定属性;     将指定表的指定属性排序后显示(默认升序)     (若属性指定为空,则默认排在升序最前)
    select * from 指定表 order by 指定属性 desc;     将指定表的指定属性倒序排序后显示          (若属性为空,倒序排序后在最末尾)
     
     
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    SQL语句规范:
    不区分大小写(建议大写);
    字符串常量区分大小写;
    SQL语句可单行或多行书写,以";"结尾
    关键词不能跨多行或简写;
    用空格和缩进来提高语句的可读性
    子句通常位于独立行,便于编辑,提高可读性
    注释:
    /*注释内容*/ 多行注释
    -- 注释内容     单行注释,之一空格
    MYSQL注释:
    #
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    在数据库中输入help,可以查询可用的非sql语句的命令
     
    #~~~~~~~~~~~~~~~~~~~~~~~~~~
    数据库对象的命名规则:
    同一database下,不能同名
    首字母必须英文
    可选三个特殊字符(#_$)
    不要使用MYSQL的保留字
     
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    索引的设置:
    create index 索引名 on 指定表 (指定索引作用的属性)
     
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~
    笛卡尔乘积:
    交叉连接:
    用一张表中的某一个属性,去和另一张表中的属性进行匹配,匹配后生成一个新的表,表中记录着匹配项与被匹配的属性,m(可以为多):n(可以为多),但是m有几个,n匹配的就有几个
    笛卡尔乘积的代码为: select * from 匹配项 cross join 被匹配项;
     
    内连接:取交集
    代码 1: select 属性1,属性2 from 指定表名x , 指定表名y where 指定表名x.指定属性m=指定表名y.指定属性n;     显示出自己想要的属性,但是他的某一个属性必须和其他表中的某一个属性一致    
    代码 2:select 属性1 ,属性2 from 指定表名x inner join 指定表名y on 指定表名x.指定属性m = 指定表名y.指定属性n ;        教新的写法,也是mysql推荐的写法
     
    求左外连接:
    select 属性1 ,属性2 from 指定表名x left outer join 指定表名y on 指定表名x.指定属性m = 指定表名y.指定属性n;    
     
    求右外连接:
    select 属性1 ,属性2 from 指定表名x right outer join 指定表名y on 指定表名x.指定属性m = 指定表名y.指定属性n;
     
    多表联合:
    select 属性1 ,属性2 from 指定表名x  union select 属性1 ,属性2 from 指定表名y;
     
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    设置同一网段的主机访问某个指定数据库:
     
    grant 权限 on 指定表 to 目标帐号@'目标ip地址,可用%代替网段'  identified by '密码' ;
    权限为: select ,delete ,update , all(所有权限)
     
    目标主机访问代码为:
    mysql -u服务器端分配的帐号 -p服务器端设置的密码 -h指定连接的mysql数据库ip地址
     
     
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Maria日志:
    慢查询日志:slow query log
     记录 某些进程访问数据库的时间,若超过了设置的值,则记录
     
    二进制日志:利用二进制日志对数据进行还原,将其重定向到需要还原的mysql数据库中即可
     
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Mysql复制:
    实现读写分离:
    读取数据 访问一个数据库
    写入数据 访问另一个数据库
    程序的主从分离需要设置:
    设置流程为:
    主库写,更新,删除 -->生成binary log(二进制日志) -->利用I/O thread 将此二进制日志写入一个relay log中,再由relay log启用SQL thread导出到从库中
    根据日志来写入从库,主库的数据发生变化,从库的数据也跟着发生变化
     
    start slave
    启动I/O thread,SQL thread线程;
  • 相关阅读:
    浏览器基础知识点及常考面试题
    java设计模式之综述
    maven的基本原理和使用
    maven的介绍和安装
    Spring整合Struts2的方法
    Spring整合Hibernate的方法
    Spring中的事务管理
    Spring中的JDBC操作
    基于XML配置的Sping AOP详解
    基于注解的Sping AOP详解
  • 原文地址:https://www.cnblogs.com/spidermansam/p/7978007.html
Copyright © 2020-2023  润新知