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. ZOJ 3985 - String of CCPC - [字符串处理]

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3985 题意: 给出一个长度为n的字符串,全部由'C'和'P'组成 ...

  2. Django的URL name 学习

    1.打开工程文件下的url.py: from django.contrib import admin from django.urls import path from django.conf.url ...

  3. sublime安装install package

    通过 https://sublime.wbond.net/Package%20Control.sublime-package 下载packageControl文件 下载完成后,打开sublime te ...

  4. LightOJ 1038 - Race to 1 Again(期望+DP)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1038 题意是:给你一个N (1 ≤ N ≤ 105) 每次N都随机选一个因子d,然后让 ...

  5. Python实现常用的逻辑数据结构

    逻辑数据结构包括:线形结构.树形结构.图形结构.集合:存储结构包括:顺序存储.链式存储.索引存储.散列存储. 同一种逻辑结构可以有四种存储结构,不同的存储结构增.删.查.改的速度不同.逻辑结构与存储结 ...

  6. MSMQ研究

    开发过程记录如下: 1.   本机配置MSMQ ------控制面板-------启动或者关闭Windows功能----默认安装MSMQ即可 注意:本地安装后再VS中才能引用System.Messag ...

  7. 006-Redis 发布订阅

    Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. Redis 客户端可以订阅任意数量的频道. 下图展示了频道 channel1 , 以及订 ...

  8. js-jquery-SweetAlert【一】使用

    一.下载安装 地址:http://t4t5.github.io/sweetalert/ 二.页面引用 <script src="dist/sweetalert.min.js" ...

  9. [py][mx]django使用class写views-免去判断方法的烦恼

    修改views使用class模式 类模式写views - 免去了函数模式的判断的烦恼 users/views.py from django.views.generic import View clas ...

  10. glob.glob()、os.path.split()函数、global和nonlocal关键字

    1. glob.glob() glob模块是Python最简单的模块之一, 内容非常少, 用它可以查找符合特定规则的文件路径名, 查找文件时只会用到三个匹配符: * :匹配0个或多个字符 ? : 匹配 ...