MySQL其他篇

目录:

参考网站

1.1 数据库介绍返回顶部

  1、什么是数据库?
      1. 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同
          的API(接口)用于创建,访问,管理,搜索和复制所保存的数据
      2. 我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以,现在我们使用关系型数据
          库管理系统(RDBMS)来存储和管理的大数据量
      3. 所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据
      4.RDBMS即关系数据库管理系统(Relational Database Management System)的特点:
        1)数据以表格的形式出现
        2)每行为各种记录名称
        3)每列为记录名称所对应的数据域
        4)许多的行和列组成一张表单
        5)若干的表单组成database

  2、RDBMS 术语
      1. 数据库:  数据库是一些关联表的集合。
      2. 数据表:  表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格
      3. 列:  一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
      4. 行: 一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。

      5. 冗余: 存储两倍数据,冗余可以使系统速度更快
          1)查询时可能经常需要在多个表之间进行连接查询;而进行连接操作会降低查询速度
          2)学生的信息存储在student表中,院系信息存储在department表中,如果要查询一个学生所在系的名
               称,必须从student表中查找学生所在院系的编号,然后根据这个编号去department查找系的名称
          3)如果经常需要进行这个操作时,连接查询会浪费很多的时间,因此可以在student表中增加一个冗余
               字段dept_name,该字段用来存储学生所在院系的名称(这样就不用每次都进行连接操作了)

      6. 主键: 主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据
      7. 外键: 外键用于关联两个表(两个表通过都有的一个字段连接起来了)
      8. 复合键: 复合键(组合键)将多个列作为一个索引键,一般用于复合索引
      9. 索引: 使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。

          1) 当某个字段设置为索引后,就会将此字段中所有值对应自己的md5
          2) 当从数据库查询时可以通过二分法等算法快速查找到这个条目

      10. 参照完整性:  参照的完整性要求关系中不允许引用不存在的实体

  3、Mysql数据库特点
      1. Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database
        Management System:关系数据库管理系统)应用软件之一
      2. 由瑞典MySQL AB公司开发,目前属于Oracle公司
      3. MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大
        仓库内,这样就增加了速度并提高了灵活性
        1) Mysql是开源的,所以你不需要支付额外的费用
        2) Mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库
        3) MySQL使用标准的SQL数据语言形式
        4) Mysql对PHP有很好的支持,PHP是目前最流行的Web开发语言
        5) MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB
        6) Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统

  4、主键、外键、索引比较

    1. 主键与外键区别

        1. 主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。
            身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。

        2. 外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。
            比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键

    2. 主键与唯一索引区别

        1. 主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。
        2. 主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。
        3. 唯一性索引列允许空值,而主键列不允许为空值。
        4. 主键可以被其他表引用为外键,而唯一索引不能。
        5. 一个表最多只能创建一个主键,但可以创建多个唯一索引。
        6. 主键更适合那些不容易更改的唯一标识,如自动递增列、身份证号等。

1.2 视图返回顶部

  1、什么是视图
      1)视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】
      2)用户使用时只需使用视图【名称】即可获取结果集,并可以将其当作表来使用
      3)视图通常用在对某个结果查询的非常频繁,那么就可以使用视图虚拟出一张表,将这个查询结果放到这个视
           中,以后我们仅仅对这个视图就行查询是对上面结果的查询
      4)如果原表数据改变那么视图中的值也会随着改变,视图中的数据修改也会影响原表中数据
      5)一下几种情况视图中数据无法改变:
        a. 视图中的列不在原表中(比如视图中查询时取得别名列:商品平均价格)
        b. 视图中的那个数据对应原表中多个数据时也无法修改

  2、为什么要有视图?
      1)可以简化查询
      2)可以进行权限限制(将一部分列放到视图中让其他人操作)
      3)大数据分表时可以用到

  3、视图例子
      1)比如现在我们有一张商品表,表中有许多字段,现在我们需要经常查询商品价格和名称这两个字段
      2)并且我们只想显示这个表中价格大于100的所有商品
      3)那么我们就可以创建一个视图good_price,然后将需要查的指定信息存储到这个视图中

    #1 创建视图good_price

        create view good_price as select name,price from goods where price > 100;

    #2 修改视图

        alter view good_price as select name,price from goods where price >300;

    #3 删除视图

        drop view good_price;

1.3 触发器返回顶部

  1、什么是触发器
      1)对某个表进行【增/删/改】操作的前后如果希望触发某个特定的行为时,可以使用触发器
      2)触发器用于定制用户对表的行进行【增/删/改】前后的行为
      3)触发器只能对永久表使用,不能对临时表 创建
      4)MySQL对同一表相同触发时间的相同触发事件,只能定义一个触发器

  2、创建触发器使用语法

    1. 创建触发器基本语法

      Create trigger 触发器名
        {before | after}                                #insert,update,delete之前还是之后触发
        {insert | update | delete}                #触发的事件是什么
        On 表明 for each row 要出发的SQL语句:

    2. 触发器使用举例

        说明:创建一个触发器t1每次向data表中插入一条数据后就计算一下插入后的新表中数据条目数放到total表

        Create trigger t1                                        #创建触发器名称是:t1
          after                                                   #在下面插入语句insert之后执行这个触发器
          insert                                                 #指定只有当执行insert语句才会触发
          on data for each row                         #指定是对表data执行每行都会执行触发器update操作
          update total set count=char_length(NEW.name)                    #指定触发的事件即执行这条SQL语句

  3、删除触发器
      DROP TRIGGER t1;
  4、使用触发器
      触发器无法由用户直接调用,而是由于对表的【增/删/改】操作被动引发的

1.4 事物返回顶部

  1、事务的定义 (作用是可以撤销begin后面执行的命令)

      1)MySQL 事务主要用于处理操作量大,复杂度高的数据。

      2)在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等

      3)这样,这些数据库操作语句就构成一个事务!

      4)在MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务

      5)事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行

      6)事务用来管理insert,update,delete语句

  2、事务是必须满足4个条件

      1、原子性:一组事务,要么成功;要么撤回

      2、稳定性 : 有非法数据(外键约束之类),事务撤回

      3、隔离性:事务独立运行。一个事务处理后的结果,影响了其他事务,那么其他事务会撤回

      4、可靠性:软、硬件崩溃后,InnoDB数据表驱动会利用日志文件重构修改。可靠性和高速度不可兼得,
                       innodb_flush_log_at_trx_commit选项 决定什么时候吧事务保存到日志里。

  3、使用事务手动撤销对MySQL的操作

      mysql> begin;                                 #开始一个事务

      mysql> insert into student(name,age,register_data) values("wangwu",99,"2016-06-20");      #执行一条命令

      mysql>rollback;                               #回滚 , 这样数据是不会写入的

      mysql> commit;                               #执行commit后命令执行结果是正真的写入硬盘了(rollback也无法撤回)

      注:当然如果上面的数据没问题,就输入commit提交命令就行

01: MySql简介的更多相关文章

  1. 01 . Mysql简介及部署

    Mysql数据库简介 什么是数据? ​ 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材,数据是信息的表现形式和载体,可以是符号,文字,数字,语音,图 ...

  2. 01 mysql 基础一 (进阶)

    mysql基础一 1.认识mysql与创建用户 01 Mysql简介 Mysql是最流行的关系型数据库管理系统之一,由瑞典MySQLAB公司开发,目前属于Oracle公司. MySQL是一种关联数据库 ...

  3. MySQL简介及安装

    一.DBA工作内容及课程体系 二.MySQL课程体系介绍 三.DBA的职业素养 四.MySQL简介及安装 01 什么是数据? 02 什么是数据库管理系统 03 数据库管理系统种类 04 MySQL发展 ...

  4. 6.MySQL简介

    MySQL简介 ·点击查看MySQL官方网站 ·MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,后来被Sun公司收购,Sun公司后来又被Oracle公司收购,目前属于facle旗下 ...

  5. 32、MySQL简介

    一.MySQL简介 1.数据库管理软件分类 主要分为关系型和非关系型. 可以简单的理解为,关系型数据库需要有表结构,非关系型数据库是key-value存储的,没有表结构. 关系型:如sqllite,d ...

  6. 01 HDFS 简介

    01.HDFS简介 大纲: hadoop2 介绍 HDFS概述 HDFS读写流程 hadoop2介绍 框架的核心设计是HDFS(存储),mapReduce(分布式计算),YARN(资源管理),为海量的 ...

  7. 第一章 Mysql 简介及安装和配置

    Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一. ...

  8. mysql基础篇-----mysql简介

    2017-04-19 一.mysql简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 ...

  9. MySQL(一)之MySQL简介与安装

    大家可能都在用MySQL,其实我也是在用MySQL的,但是你知道吗?大部分人都是在windows中使用,这里将介绍一下在windows中的安装分为安装包安装与MSI包安装,以及在linux中的在线安装 ...

随机推荐

  1. TACOTRON:端到端的语音合成

    tacotron主要是将文本转化为语音,采用的结构为基于encoder-decoder的Seq2Seq的结构.其中还引入了注意机制(attention mechanism).在对模型的结构进行介绍之前 ...

  2. VMware esxi 5.5装机方案

    1.测试环境下,VMware esxi 5.5环境基本配置如下(主机环境以实际为准): 2.裸机安装VMware esxi 5.5步骤: 1)将ESXi安装程序CD/DVD 插入 CD/DVD-ROM ...

  3. Oracle安装部署之dbca静默建库和删除库

    dbca查看帮助: [oracle@wen ~]$ dbca -help 1).运行静默建库语句 [oracle@wen ~]$ dbca -silent -cloneTemplate -gdbNam ...

  4. centos source install

    CentOS Kernel Source Install Mar 12th, 2012 | Comments CentOS kernel source install, first off if yo ...

  5. Kubernetes网络的4种解决方案

    一.Kubernetes + Flannel Kubernetes的网络模型假定了所有Pod都在一个可以直接连通的扁平的网络空间中,这在GCE(Google Compute Engine)里面是现成的 ...

  6. pyqt5核心-信号与槽(第二弹)

    果: from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Form(object): def setupUi(self, Form): Form.s ...

  7. hibernate注解(一)JoinColumn

    @Entity @Table(name="t_group") public class Group { private int id; private String name; p ...

  8. curl 一个无比有用的网站开发工具

    1.Common Line Url Viewer curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面. 2.-i参数可以显示h ...

  9. 前端 HTML 常用标签 head标签相关内容

    HTML常用标签 head标签 我们首先来介绍一下head标签的主要内容和作用,文档的头部描述了文档的各种属性和信息,包括文档的标题.编码方式及URL等信息,这些信息大部分是用于提供索引,辩认或其他方 ...

  10. MyEclipse中jquery.js文件报missing semicolon的错误解决

    myeclipse的验证问题不影响jquery的应用,如果看着别扭,解决办法如下:选中你想去掉的js文件:右键选择 MyEclipse-->Exclude From Validation :然后 ...