MySQL简介与视图,触发器

本文介绍了数据库的基本概念,重点讲解了MySQL数据库的特点,包括数据类型和主键、外键、索引的区别。接着深入讨论了视图的概念、作用及创建、修改和删除视图的示例,最后探讨了触发器的功能,如何创建和使用触发器,以及其在数据操作中的重要性。
摘要由CSDN通过智能技术生成

目录:

一. 数据库介绍

1、什么是数据库?

  • 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API(接口)用于创建,访问,管理,搜索和复制所保存的数据
  • 我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量
  • 所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据

RDBMS即关系数据库管理系统(Relational Database Management System)的特点:

  • 1)数据以表格的形式出现
  • 2)每行为各种记录名称
  • 3)每列为记录名称所对应的数据域
  • 4)许多的行和列组成一张表单
  • 5)若干的表单组成database

2、rdbms 术语

  • 数据库: 数据库是一些关联表的集合。
  • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格
  • 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
  • 行: 一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
  • 冗余: 存储两倍数据,冗余可以使系统速度更快
    • 1)查询时可能经常需要在多个表之间进行连接查询;而进行连接操作会降低查询速度
    • 2)学生的信息存储在student表中,院系信息存储在department表中,如果要查询一个学生所在系的名称,必须从student表中查找学生所在院系的编号,然后根据这个编号去department查找系的名称
    • 3)如果经常需要进行这个操作时,连接查询会浪费很多的时间,因此可以在student表中增加一个冗余字段dept_name,该字段用来存储学生所在院系的名称(这样就不用每次都进行连接操作了)
  • 主键: 主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据
  • 外键: 外键用于关联两个表(两个表通过都有的一个字段连接起来了)
  • 复合键: 复合键(组合键)将多个列作为一个索引键,一般用于复合索引
  • 索引: 使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
    • 1)当某个字段设置为索引后,就会将此字段中所有值对应自己的md5
    • 2)当从数据库查询时可以通过二分法等算法快速查找到这个条目
  • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体

3、Mysql数据库特点

  • Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一
  • 由瑞典MySQL AB公司开发,目前属于Oracle公司
  • 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. 主键与外键区别

  • 主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。
  • 外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。 比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键

2. 主键与唯一索引区别

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

5、MySQL常用的数据类型

在这里插入图片描述

二. 视图

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、什么是触发器

  • 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、使用触发器

  • 触发器无法由用户直接调用,而是由于对表的【增/删/改】操作被动引发的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值