MySQL数据库基础知识

  • 表与表之间的引用,即为外键

  • 范式:第一范式,第二范式,第三范式

  • 关系运算
    选择:挑选符合的行
    投影:挑选符合的列

  • 表与表之间的连接,外链接、内连接

  • 数据库是由表组成的,索引是表中的某个字段或特定数据,B+树等,索引会影响写入操作

  • 视图:虚表,即select后的结果

  • SQL:结构化查询语言,

    • DDL:数据定义语言,操作表,索引等
    • DML:数据操作语言,操作表中的数据
  • 也提供了编程接口:代码片段

    • 存储过程:没有返回值的函数,对数据的加工,
    • 存储函数:有返回结果的代码片段,funciton,有输入、输出
    • 触发器:一类sql语句,或一段代码,如插入语句执行时,会触发原
      有的插入程序。
  • 表连接:join,为了满足关系范式,拆表之后再合表去查询数据,会消耗内存

  • RDBMS:

    • MySql:MySql、MariaDB,Percona-server
    • PostgreSQL:即pgsql,商业版为EnterpriseDB
    • Oracle:
    • MSSQL:微软的数据库,只能运行在windows上
  • 独占锁和共享锁:写的过程不能读,读的时候可以都读

  • 事务:ACID:原子性、一致性、隔离性、持久性

  • 事务日志和数据日志,在放写入事务日志而没来得及写入数据日志时,出现问题。则恢复管理器从事务日志中恢复写入数据日志中

  • SQL:Structure Qurey Language结构化查询语言

    • 数据存取协议:mysql协议、oracle协议都属于应用层协议。
    • server端监听在套接字,接收请求
    • client端:程序接口(CLI和GUI)、应用编程接口(ODBC:Open Database Connection开放数据库系统互联)
      * (1)现成的程序:如php-mysql客户端程序
      • (2)通过自己编写代码实现交互
  • 基础概念:

    • 1、约束:constraint,输入的数据符合一定的规范,向数据表提供的数据要遵守的限制
      主键(也是一种约束):只能有1个,一个或多个字段组合,能唯一标识本行,并且不能为空,not null
      唯一键:可以有多个,与主键描述一致,只是允许为空,null
      外键:一个表中的某字段填入的数据,取决于另一个表的主键已有的数据
  • 2、索引:将1个或几个字段数据抽取出来,并按照特定顺序排序存储
    稠密索引:
    稀疏索引:

  • 3、关系运算 :选择(挑选部分行)、投影(挑选需要的字段,挑选列)、连接(笛卡尔乘积、左联接、右联结)

  • 4、数据抽象:
    物理层:决定数据的存储格式,在磁盘上如何组织文件,一张表存储于多个文件or多张表存储于一个文件
    逻辑层:描述DB存储什么数据,以及数据间存在什么样的关系。100张表,某个用户只能查看20张表

  • 5、关系模型的分类:
    关系模型
    实体-关系模型
    基于对象的关系模型
    半结构化的关系模型:以XML格式存储数据

  • 6、安装MySQL:
    源代码:编译安装:
    二进制格式的程序包:展开至特定路径,简单配置后即可使用
    程序包管理的程序包:
    rpm
    deb

  • 7、 MariaDB:存储引擎也称之为“表类型”
    支持更多的存储引擎:MyISAM的升级版----->Aria、InnoDB升级版--->XtraDB

  • 8、centos7:直接提供MariaDB

    centos6: 自行安装

    rpm -e 包名 卸载包

  • 9、MySQL配置文件查找次序:
    /etc/my.cnf--->/etc/mysql/my.cnf----> --default-extra-file=/PATH/TO/CONF_FILE---> ~/.my.cnf/

  • 10、在mysql的bin目录下,是mysql的执行程序,其中的mysqld_multi是mysql的多实例程序,类似于虚拟主机的概念,通过不同的端口启用多个mysql进程

  • 11、MariaDB的程序组成:

Client:
mysql:cli交互式客户端程序
mysqldump,mysqladmin

Server:
mysqld_safe
mysqld
mysqld_multi

  • 12、服务器监听的两种socket:
    ip socket:监听在tcp的3306端口,支持远程通信
    unix sock:监听在sock文件(/tmp/mysql.sock,/var/lib/mysql/mysql.sock),仅支持本地通信,server地址只能为localhost或127.0.0.1

  • 13、mysql:
    -uUSERNAME:用户名,默认为root
    -hHOST:服务器主机,默认为localhost
    -pPASSWORD:用户的密码,默认为空密码
    用户账号由两部分组成:‘USERNAME'@'HOST';其中HOST用于限制此用户可通过哪些主机远程连接mysql服务
    支持使用通配符:
    %:匹配任意长度的任意字符
    _:匹配任意单个字符
    安全初始化:执行/usr/local/mysql/bin/mysql_secure_installation

  • 命令:
    客户端命令:本地执行,如在mysql下执行help,查看status
    服务端命令:通过mysql协议发往服务器执行并取回结果,每个命令都必须有命令结束符号,默认为分号;

  • 14、关系型数据库的常见组件:
    数据库:database,由多张表组成的数据集合
    表:table,包含行和列
    索引:index
    视图:view虚拟出的多个表
    用户:user
    权限:privilege用户对数据库、表的访问权限

    被调用代码:
    存储过程:procedure,调用一下,执行,使用call,没有返回值
    存储函数:function,使用select,有返回值
    触发器:trigger,触发已经写好的代码片段,触发额外代码,如谁查了表等代码
    事件调度器:event scheduler

  • 15、SQL语句
    DDL:数据定义语言
    create、drop、alter
    DML:数据操纵语言
    insert、delete、update、select
    grant、revoke

使用:
(1)创建数据库:create database|schema 'DB_NAME';
        帮助命令:myslq>help create database
        字符集和排序规则
(2)删除数据库:drop database|schema 'DB_NAME';

你可能感兴趣的:(MySQL数据库基础知识)