MySQL基础

数据库是按照数据结构组织、存储和管理数据的系统,常见的数据库管理系统如MySQL、Oracle和DB2等。关系型数据库如MySQL支持SQL语言,其主要对象包括表、字段和索引。MySQL是开源且广泛应用于中小型网站的数据库,具有多种存储引擎,如InnoDB(支持事务处理)和MyISAM(读写速度快)。
摘要由CSDN通过智能技术生成

一、基本概念

1、数据库

  • 概念:按照数据结构来组织、存储和管理数据的仓库,数据库是一个数据的集合
  • 英文:DataBase
  • 本质:数据库是一个文件系统,以文件的方式,将数据保存在电脑上

2、数据库管理系统

  • 概念:一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库
  • 英文:DataBase Management System,简称 DBMS
  • 普通用户通过DBMS访问数据库中的数据,数据库管理员通过DBMS进行数据库维护。DBMS允许多个应用程序或者多个用户使用不同的方法,在同一时刻或者不同时刻去建立、修改和访问数据库
  • 由于直接操作数据文件非常麻烦,所以各数据库厂商在数据库(文件)之上进行了封装,形成了DBMS。MySQL是一种DBMS。我们平常说的某某数据库,其实是某某的DBMS,并不是指文件
    • Oracle公司的Oracle和MySQL
    • IBM公司的DB2
    • Microsoft公司的Access和SQL Server
    • 国产的如达梦,oceanbase,tidb等

3、数据库特定

  • 数据存储方式的比较
存储方式优点缺点
内存速度块容量有限,不能永久保存,数据是临时状态
文件数据永久保存少量数据直接打开获取数据,大量数据使用程序IO流操作文件,不方便;同一时间多人操作某一个文件可能出现问题
数据库海量数据存储,提供不错的查询效率;数据永久保存;方便存储和管理数据;使用统一的方式操作数据库占用资源(重型武器);部分数据库需要收费

4、数据库分类

4.1、关系型数据库

  • 概念:可以使用SQL语言(语句)来操作的数据库
  • 关系型数据库是创建在关系模型基础上的数据库
  • 关系模型:有明确的行和列的二维表格模型
  • 典型代表
    • MySQL
    • Oracle
    • Microsoft SQL Server
    • Access
    • PostgreSQL
    • DB2

4.2、非关系型数据库

  • 概念:常规情况不能使用SQL进行操作的数据库
  • 不适用关系模型
  • 非关系型数据库也叫NoSQL数据库
  • 典型代表
    • Hbase
    • MongoDB
    • Redis(k/v)
    • CouchDB

5、关系型数据库主要对象

  • 由于关系型数据库是基于关系模型设计的,故使用大家都了解的EXCLE进行对比
    • Excel:创建一个Excel文档–>创建一个Sheet–>在sheet中操作数据
    • MySQL:创建一个数据库–>创建一个–>在表中记录数据
    • 表是包含数据库中所有数据的数据库对象,由行和列组成(二维表格模型,类似EXCEL中的Sheet),用于组织和存储数据
  • 字段
    • 表中每一列称为一个字段,字段有自己的属性,如字段类型、字段大小等。其中,字段类型是字段最重要的属性,他决定了字段能够存储哪种数据(类型于一整列的单元格属性)
    • 与EXCEL不同,字段只是针对列,该列存储什么类型数据,长度多少需要提前进行定义
  • 索引
    • 索引是一个单独的、物理的数据库结构,它依赖于表建立,在数据库中使用索引,无须对整个表进行扫描,就可以找到需要的数据
  • 视图
    • 视图是从一张或者多张表中导出的表,也称虚拟表,是用户查看数据表中数据的一种方式

6、简易原理

  • 关系型数据库是c/s架构

二、MySQL数据库

1、起源和发展

  • MySQL是一个关系型数据库管理系统(RDBMS),由瑞典MySQLAB公司开发,属于Oracle旗下产品,MySQL是最好的RDBMS应用软件之一。
  • 关系型数据库把数据保存在不同的表中,而不是所有数据都放在一个仓库内,这样就增加了速度并且提高了灵活性。所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,分社区版和商业版。由于体积小、速度快、总体拥有成本低,并且是开源这特点,所以一般中小型网站的开发都选择MySQL作为数据库。
  • MySQL特性
    1. MySQL使用C和C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性。
    2. 支持AIX、HP-UX、Linux、MacOS、OpenBSD、Solaris、Windows等多种操作系统。
    3. 为多种编程语言提供了API,包括C、C++、Python、Java、Perl、PHP、Ruby、.NET等。
    4. 支持多线程,充分利用CPU资源。
    5. 优化的SQL查询算法,有效地提高查询速度。
    6. 既可以作为单独的应用程序应用在客户端服务器网络环境中,也可以作为一个库嵌入到其他软件中。
    7. 提供TCP/IP、ODBC和JDBC等多种数据库连接途径。
    8. 提供用于管理、检查、优化数据库操作的管理工具。
    9. 支持大型的数据库,可以处理拥有上万条记录的大型数据库。
    10. 支持多种存储引擎。
    11. MySQL是开源的,不需要支付费用。
    12. MySQL使用标准的SQL数据语言形式。
    13. MySQL对PHP有很好的支持,PHP是比较流行的web开发语言。

2、存储引擎

  • 存储引擎是MySQL数据库的核心、心脏、发动机,他决定了数据如何存储,查询的时候如何搜索数据,索引如何创建等等
  • MySQL 5.1版本之前默认的存储引擎是MyISAM,5.1版本之后默认是InnoDB
  • 本质
    • 对于数据库文件的一种存取机制,如何实现存储数据,如何为存储的数据建立索引以及如何更新,查询数据等技术实现的方法。
  • 常用存储引擎
    • InnoDB
      • 事务处理、回滚、崩溃修复能力和多版本并发控制
      • 自增长AUTO_INCREMENT
      • 外键
      • 优势
        • 提供良好的事务处理、崩溃修复能力和并发控制
      • 缺点
        • 读写效率较差
        • 占据数据空间相对较大
    • MyISAM
      • 优势
        • 占用空间小
        • 处理速度快
      • 缺点
        • 不支持事务的完整性和并发性
    • Memory
      • 数据全部放在内存中
      • 哈希索引
      • 缺点
        • 数据存储在内存中,生命周期短,一般是一次性的

3、数据类型

  • 数值类型
    • 整数型
      • TINYINT:一个非常小的整数,可以带符号。如果有符号,允许范围是 -128~~127;如果没有符号,允许范围是0~255。
      • INT:正常大小的整数,可以带符号。如果有符号,允许范围是-2147483648~~2147483647 ;如果没有符号,允许范围是0~4294967295。
      • BIGINT:一个大的整数,可以带符号。如果有符号,允许范围是 -9223372036854775808~~9223372036854775807;如果没有符号,允许范围是0~18446744073709551615
    • 小数型
      • FLOAT(M,D):无符号的浮点数字。可以定义显示长度(M)和小数位数(D)。这不是必需的,并且默认为10,2。其中2是小数点位数,10是数字长度(包括小数)。
      • DOUBLE(M,D):无符号的双精度浮点数。可以定义显示长度(M)和小数位数(D)。这不是必需的,默认为16,4。其中4是小数点位数,16是数字长度(包括小数)。
  • 字符串类型
    • 普通类型
      • CHAR:固定长度的字符串,长度为1~255之间字符长度,存储右空格填充到指定的长度。限定长度不是必需的,默认为1。例如:CHAR(5),长度为5的字符串。
      • VARCHAR:可变长度的字符串,长度为1~255之间字符长度(高本版的MySQL超过255)。例如:VARCHAR(25),定义长度为25的字符串,当存入abcd时,则字符串长度变为4位。
    • 可变类型
      • TEXT:字段最大长度65535个字符。不区分大小写。不能指定长度。
      • BLOB:二进制大对象,用来存储大的二进制数据,如图像或者其他类型的文件。区分大小写。不能指定长度。
    • 日期和时间类型
      • DATE:以YYYY-MM-DD格式的日期,在1000-01-01和9999-12-31之间。例如:2023年4月14日,被存储为2023-04-14。
      • DATETIME:日期和时间组合,以YYYY-MM-DD HH:MM:SS格式的时间,在1000-01-01 00:00:00到9999-12-31 23:59:59之间。例如:2023年4月14日15点30分,被存储为2023-04-14 15:30:00 。
      • TIMESTAMP:以1970年1月1日午夜跟某一时间的时间戳,到2037年的某时间。无需格式,只是个数字。
      • TIME:存储时间在HH:MM:SS格式。
      • YEAR(M):以2位或者4位数字格式来存储年份。当M为2时,即YEAR(2),年份范围从1970年至2069年(70~69);当M为4时,年份范围从1901年至2155年。默认M为4。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值