Mysql基础简介

67 阅读6分钟

数据库简介

数据的时代

  • 涉及的数据量大
  • 数据不随程序的结束而消失
  • 数据被多个应用程序共享
  • 大数据

数据的分类

  • 结构化的数据:即有固定格式和有限长度的数据。
  • 非结构化的数据:非结构化的数据越来越多,就是不定长、无固定格式的数据。
  • 半结构化数据

数据库的发展史

文件管理系统的缺点

  • 编写应用程序不方便
  • 数据冗余不可避免
  • 应用程序依赖性
  • 不支持对文件的并发访问
  • 数据间联系弱
  • 难以按用户视图表示数据
  • 无安全控制功能

数据库系统发展阶段

  • 萌芽阶段:文件系统

使用磁盘文件来存储数据

  • 初级阶段:第一代数据库

出现了网状模型、层次模型的数据库

  • 中级阶段:第二代数据库

关系型数据库和结构化查询语言

  • 高级阶段:新一代数据库

“关系-对象”型数据库

DBMS 数据库管理系统

  • Database:数据库是数据的汇集,它以一定的组织形式存于存储介质上
  • DBMS:是管理数据库的系统软件,它实现数据库系统的各种功能。是数据库系统的核心
  • DBA:负责数据库的规划、设计、协调、维护和管理等工作
  • 应用程序:指以数据库为基础的应用程序

数据库管理系统的优点

  • 相互关联的数据的集合
  • 较少的数据冗余
  • 程序与数据相互独立
  • 保证数据的安全、可靠
  • 最大限度地保证数据的正确性
  • 数据可以并发使用并能同时保证一致性

数据库管理系统的基本功能

  • 数据定义
  • 数据处理
  • 数据安全
  • 数据备份

数据库系统的架构

  • 单机架构
  • 大型主机/终端架构
  • 主从式架构(C/S)
  • 分布式架构

当今主流数据库介绍

SQL Server(微软公司产品)

  • 面向Windows操作系统
  • 简单、易用

Oracle(甲骨文公司产品)

  • 面向所有主流平台
  • 安全、完善,操作复杂

DB2 (IBM公司产品)

  • 面向所有主流平台
  • 大型、安全、完善

MySQL(甲骨文公司收购)

  • 免费、开源、体积小

数据库分类

关系型数据库

  • 关系数据库系统是基于关系模型的数据库系统
  • 关系模型的数据结构使用简单易懂的二维数据表
  • 关系模型可用简单的“实体-关系”(E-R)图来表示
  • E-R图中包含了实体(数据对象)、关系和属性三个要素

实体:

  • 也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物。

属性:

  • 实体所具有的某一特性,一个实体可以有多个属性。

联系:

  • 实体集之间的对应关系称为联系,也称为关系。
  • 如银行客户和银行账户之间存在“储蓄”的关系。

所有实体及实体之间联系的集合构成一个关系数据库

关系型数据库的存储结构

关系型数据库的存储结构是二维表格。

在每个二维表中:

  • 每一行称为一条记录,用来描述一个对象的信息。
  • 每一列称为一个字段,用来描述对象的一个属性。

关系型数据库的优缺点

优点:

  • 易于维护:都是使用表结构,格式一致;
  • 使用方便:SQL语言通用,可用于复杂查询;
  • 复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。

缺点:

  • 读写性能比较差,尤其是海量数据的高效率读写;
  • 固定的表结构,灵活度稍欠;
  • 高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。

非关系型数据库

  • 非关系数据库也被称作NoSQL (Not Only SQL)
  • 存储数据不以关系模型为依据,不需要固定的表格式。

非关系型数据库的优缺点

优点:

  • 数据库可高并发读写。
  • 对海量数据高效率存储与访问。
  • 数据库具有高扩展性与高可用性。
  • 成本低:nosql数据库部署简单,基本都是开源软件。
  • 格式灵活

缺点:

  • 不提供sql支持,学习和使用成本较高;
  • 无事务处理;
  • 数据结构相对复杂,复杂查询方面稍欠。

MySQL数据库介绍

  • MySQL是一款深受欢迎的开源关系型数据库。
  • Oracle旗下的产品。
  • 遵守GPL协议,可以免费使用与修改。

Mysql特点

  • 性能卓越、服务稳定
  • 开源、无版权限制、成本低
  • 多线程、多用户
  • 基于C/S(客户端/服务器)架构
  • 安全可靠

MySQL商业版与社区版

  • MySQL商业版是由MySQL AB公司负责开发与维护,需要付费才能使用。
  • MySQL社区版是由分散在世界各地的MySQL开发者、爱好者一起开发与维护,可以免费使用。

区别

  • 商业版组织管理与测试环节更加严格,会比社区版更稳定。
  • 商业版不遵守GPL,社区版遵从GPL可以免费使用。
  • 商业版可获得7*24小时的服务,社区版则没有。

数据库基本操作

SQL分类

  • 数据库:database
  • 表:table,行:row 列:column
  • 索引:index
  • 视图:view
  • 存储过程:procedure
  • 存储函数:function
  • 触发器:trigger
  • 事件调度器:event scheduler,任务计划
  • 用户:user
  • 权限:privilege

SQL 语言规范

  • 在数据库系统中,SQL 语句不区分大小写,建议用大写
  • SQL语句可单行或多行书写,默认以 " ; " 结尾
  • 关键词不能跨多行或简写
  • 用空格和TAB 缩进来提高语句的可读性
  • 子句通常位于独立行,便于编辑,提高可读性

数据库的组件(对象)

数据库、表、索引、视图、用户、存储过程、函数、触发器、事件调度器等

命名规则:

必须以字母开头,后续可以包括字母,数字和三个特殊字符(# _ $)

不要使用MySQL的保留字,如tabble select show databases

SQL语句分类

  • DDL: Data Defination Language 数据定义语言

CREATE,DROP,ALTER

  • DML: Data Manipulation Language 数据操纵语言

INSERT,DELETE,UPDATE

软件开发:CRUD

  • DQL:Data Query Language 数据查询语言

SELECT

  • DCL:Data Control Language 数据控制语言

GRANT,REVOKE

TCL:Transaction Control Language 事务控制语言

管理数据库

创建数据库

image.png

修改数据库

image.png

删除数据库

image.png