zoukankan      html  css  js  c++  java
  • MySQL数据库笔记

    MySQL/Mariadb:

      数据结构模型:层次模型、网状结构、关系模型(二维关系:row(行),column(列))

      关系型数据库的一种开源实现;

      数据库管理系统:DBMS

    补充材料:RDMBS设计范式基础概念

      设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,越高的范式数据库冗余越小。

      1.第一范式(1NF)

      指在关系型中,对域添加的一个规范要求,所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项;简而言之,第一范式就是无重复的域。(列是不可分割的,原子性,例姓名和年龄只能分两列,而不能放在一列里)

      2.第二范式(2NF)

      第二范式是在第一范式的基础上建立起来的,即满足第二范式必须先满足第一范式,简而言之,第二范式就是在第一范式的基础上属性完全依赖于主键。(行是有唯一标识的,不能有两行数据是完全一样的)

      3.第三范式(3NF)

      第三范式就是第二范式的一个子集,即满足第三范式就必须满足第二范式,简而言之,第三范式要求一个关系中不包含已在其他关系已包含的非主键信息。简而言之,第三范式就是属性不依赖于其它非主属性,也就是在满足第二范式的基础上,任何非主属性不得传递依赖于主属性。(不允许某个字段在多张表中同时出现)多张表中不能存储相同的非主属性字段

    关系型数据库管理系统必要组件:

    事务: 多个写操作被当作一个整体对待。A:原子性   C:一致性   I:隔离性    D:持久性

    SQL:Structure Query Language 结构化查询语言;

    数据存储协议:应用层协议,C/S

      S:server,监听于套接字,接受并处理客户端应用请求;

      C:Client   程序接口(CLI   GUI)

            应用编程接口:ODBC: Open DataBase Connection

    基础概念:

      约束:constraint,向数据表提供的数据要遵守的限制;

        主键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;必须提供数据,NOT NULL;一个表只能存在一个。

        唯一键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行,允许为NULL;一个表可以存在多个。

        外键: 一个表中的某字段可填入数据取决于另一个表的主键已有的数据;检查性。

      索引: 将表中的一个或多个字段中的数据复制一份另存,并且此些需要按特定次序排序存储。

    关系运算:

      选择:挑选出符合条件的行(部分)

      投影:挑选出需要的字段

    数据抽象:

      物理层:决定数据的存储格式,即RDBMS在磁盘上如何组织文件

      逻辑层:描述DB存储什么数据,以及数据间存在什么样的关系

      视图层:描述DB中的部分数据


    MySQL/Mariadb:插件式存储引擎,单进程,多线程。

       多线程:连接线程、守护线程(守护数据在内存和磁盘之间的写入等)

    配置文件:集中式的配置能够为MySQL的各应用程序提供配置信息。

      [mysqld]

      [mysqld_safe]

      [mysqld_multi]                     配置文件支持多种写法,例如:skip-name-resolve或skip_name_resolve     

      [server]

      [mysql]

      [mysqldump]

      [client]

    配置文件查找路径:   /etc/my.cnf --> /etc/mysql/my.cnf  --> $MYSQL-HOME/my.cnf --> --default-extra-file=/PATH/TO/CONF_FILE --> ~/.my.cnf

    安装方法: 1.rpm   2.展开可用  3.源码

    安装后的设定:为所有root用户设定密码

    三种改密方式:1.set password

           2.update mysql.user set password=password('your_pass') where cluase

           3.mysqladmin

    客户端程序:mysql交互式的CLI工具;

          mysqldump:备份工具,基于mysql协议向mysqld发起查询请求并将查得的数据换成insert等写操作语句保存在文本文件中;

          mysqladmin:基于mysql协议管理mysqld;

          mysqlimport:数据导入工具

    非客户端类管理工具: myisamchk    myisampack

     

    如何获取程序默认配置:

        1.mysql  --print  -defaults      2.mysqld  --print  --defaults

    客户端类应用程序的可用选项: 

        -u,   --user=

        -h,   --host=

        -p,  --password

        -P,  --port=

        -S,  --socket=

        -D,  --database=

        -C,  --compress=

        mysql  -e  "SQL语句"      (无需进入数据库)     例如:  mysql  -uroot  -pyourpassword  -e "show databases";

    mysql的使用模式: 交互式模式(SQL语句; h, help)

    脚本模式: #mysql  -uUSERNAME  -p PASSWORD  < /path/from/somefile.sql   或  mysql> source /path/from/somefile.sql

    获取可用参数列表: mysqld  --help  --verbose

    获取运行中的mysql进程使用各参数及其值

      mysql> show global variables;

      mysql> show session variables;

    修改服务器变量的值:

      mysql> help set;

      全局: mysql> set global system_var_name=value

         mysql> set @@global system_var_name=value

      会话:mysql> set [session] system_var_name=value

         mysql> set @@[session] system_var_name=value

      状态变量: 用于保存mysqld运行中的统计数据的变量;

        mysql> show global status;

        mysql> show [session] status;

     

     

  • 相关阅读:
    Fedora install chrome
    Ubuntu13.04 安装 chrome
    cjb
    屏蔽视频广告
    tars环境部署
    rpm包安装失败的解决办法
    Java环境变量配置错误
    Protobuf的安装使用
    fpm打包工具
    gcc6.3的安装
  • 原文地址:https://www.cnblogs.com/new-journey/p/10438858.html
Copyright © 2011-2022 走看看