Web——Mysql数据库(一)

目录

一、数据库相关概念

1.1 什么是数据库

1.2数据库的实际应用

1.3 最常用的数据库模式

1.4 数据库相关名词

二、 Mysql数据库

2.1 Mysql数据库介绍

基础概念

特点

应用场景

2.2 Mysql服务端架构(从内到外)

2.3 数据库管理工具

2.3.1 命令行窗口

2.3.2 Navicat

2.4 Mysql默认的三个库

2.5 数据库数据类型

一、数值类型

1. 整数类型

2. 浮点数类型

二、日期和时间类型

三、 字符串类型

2.6 主键和外键

一、主键(Primary Key)

二、外键(Foreign Key)

三、使用场景总结


一、数据库相关概念

1.1 什么是数据库

数据库是统一管理的、长期储存在计算机内的、有组织的相关数据的集合。数据库的基本特征包括:数据按 一定的数据模型组织、描述和储存;数据间联系密切、冗余度较小;数据独立性较高;易扩展;可为各种用户共享。

1.2数据库的实际应用
  • 数据存储:数据库能够存储和管理大量的数据,将数据以一定的结构存储计算机中,使得数据的存储、管理、检索更加高效和便捷。

  • 数据管理:数据库可以对数据进行增加、删除、修改、查询等操作,并且可以对数据进行权限控制,保证数据的安全性和完整性。

  • 数据分析:数据库可以连接各种数据源,对数据进行提取、转换、加载等操作,从而将数据转换成有用的信息,为决策提供 支持

1.3 最常用的数据库模式
  1. 关系型数据库

    • 特点:数据像表格一样存储(表、行、列),通过 “关系” 连接不同表(比如学生表和课程表通过学号关联)。

    • 代表:MySQL(免费开源,网站开发常用)、Oracle(企业级,安全性强)、SQL Server(微软出品,和 Windows 集成好)。

    • 适用场景:数据结构固定、需要复杂查询(如订单统计、财务报表)。

  2. 非关系型数据库

    • 特点:不依赖表格,数据存储灵活(比如键值对、文档型、图结构)。

    • 代表:Redis(内存数据库,读写速度极快,常用来缓存数据)、MongoDB(文档型,适合存 JSON 格式数据,如社交媒体内容)。

    • 适用场景:数据量大、结构多变(如日志记录、实时推荐系统)

1.4 数据库相关名词
  1. 表(Table):数据库里的数据表格,比如 “用户表”“商品表”。

  2. 字段(Column):表中的一列,定义数据类型(如姓名 - 文本、年龄 - 数字)。

  3. 记录(Row):表中的一行,代表一条完整数据(如某个用户的所有信息)。

  4. 主键(Primary Key):表中唯一标识每一行的字段(如用户 ID、订单号),不能重复。

  5. 外键(Foreign Key):用于连接不同表的字段,建立表与表的关系(如订单表的 “用户 ID” 关联用户表)。

  6. SQL(结构化查询语言):操作数据库的 “命令语言”,用来查询、插入、修改、删除数据(如 SELECT * FROM users)。

  7. 事务(Transaction):一组必须全部成功或全部失败的操作(如转账时,扣款和入账必须同时完成)。

  8. 索引(Index):给字段加 “快速查找标签”,加快查询速度(类似书的目录)。

二、 Mysql数据库

2.1 Mysql数据库介绍

基础概念

Mysql数据库是一个开源的关系型数据库管理系统(RDBMS),由瑞典的MySQL AB公司开发,现属于Oracle旗下产品。它是目前最流行的关系型数据库之一,特别在WEB应用方面表现出色 开源性、高性能、简单易用、安全性、可扩展性、支持多种编程语言

特点
  • 开源免费:成本低,任何人都可以自由使用、修改和分发,适合各种规模的项目。

  • 性能高效:具备良好的并发处理能力和查询优化机制,能快速处理大量数据的读写操作。

  • 使用便捷:简单易学,有丰富的文档和工具支持,易于安装和管理。

  • 跨平台性:可在多种操作系统上运行,如 Windows、Linux、Mac OS 等,具有很强的适应性。

应用场景
  • Web 应用程序:常用于与各种 Web 框架结合,存储用户信息、文章内容、评论等数据,如 WordPress 等内容管理系统就常使用 MySQL 数据库。

  • 电子商务系统:可用于存储商品信息、订单数据、用户购物车等,支持高并发的交易处理。

  • 企业信息管理系统:如员工信息管理、库存管理、客户关系管理等系统,能满足企业对数据存储和管理的需求。

2.2 Mysql服务端架构(从内到外)

  1. 数据库管理系统(DBMS) - 最外层 “大管家” 相当于数据库的 “总控中心”,负责管理整个服务器端的运行。它能处理用户请求、控制数据安全(比如设置权限)、优化查询效率,还能协调多个数据库同时工作。常见的 DBMS 有 MySQL、Oracle、SQL Server 等。

  2. 数据库(Database) - 第二层 “数据仓库” 是 DBMS 管理下的大型数据集合,像一个独立的仓库,里面可以存放不同类型的数据。一个 DBMS 能管理多个数据库,比如电商系统可能有 “用户库”“商品库”“订单库”,各管各的业务数据。

  3. 二维数据表(Table) - 第三层 “数据表格” 数据库里的数据按表分类存放,每个表就像 Excel 表格,有行和列。比如 “用户表” 存用户信息,“商品表” 存商品详情。表和表之间能通过关联(外键)建立关系,方便查询复杂数据。

  4. 字段(Field) - 第四层 “最小存储单元” 表中的 “列” 就是字段,规定了数据类型(文本、数字等)。比如 “用户表” 里的 “姓名” 字段存文字,“年龄” 字段存数字,是实际存储数据的最小单位,一行数据的完整信息由多个字段共同组成。

2.3 数据库管理工具

2.3.1 命令行窗口

打开我们的phpstudy,启动mysql服务,找到网站根目录

进入到命令行后,输入myaql -u root -p

用户名和密码都是:root

2.3.2 Navicat

Navicat 是一款功能强大的数据库管理工具,能连接 MySQL 服务器。

  1. 数据库操作:可进行数据库的创建、修改和删除。

  2. 数据表操作:支持创建、修改、删除数据表,以及对数据的增删改查。

  3. 可视化工具:提供可视化查询构建工具,让查询操作更直观便捷 ,降低操作难度,提高工作效率。

这里给大家一个Navicat官网:Navicat图形界面 | 功能全面的数据库管理工具

2.4 Mysql默认的三个库

MySQL 默认的三个库分别是information_schemamysqlperformance_schema,以下是对它们的详细介绍:

  • information_schema

    • 这是一个存储了 MySQL 服务器元数据的数据库,它包含了关于数据库、表、列、索引、用户权限等各种数据库对象的信息。例如,通过查询information_schema.tables表可以获取数据库中所有表的基本信息,包括表名、所属数据库、创建时间等;查询information_schema.columns表可以获取列的详细信息,如列名、数据类型、是否为主键等。这些信息对于数据库管理员和开发人员来说非常有用,有助于了解数据库的结构和状态,进行数据库的管理、优化和开发工作。

  • mysql

    • 该库是 MySQL 数据库系统的核心库,存储了 MySQL 服务器运行所需的各种系统信息和配置数据。比如,mysql.user表存储了数据库用户的账号信息、权限设置等;mysql.db表定义了数据库级别的权限;mysql.tables_privmysql.columns_priv表分别存储了表级和列级的权限信息。此外,它还包含一些与存储引擎、字符集等相关的系统表,这些表对于 MySQL 服务器的正常运行和管理至关重要。

  • performance_schema

    • 主要用于收集 MySQL 服务器性能相关的信息。它可以帮助数据库管理员和开发人员深入了解数据库的性能瓶颈,进行性能分析和优化。例如,通过该库可以查看查询执行的时间、等待事件、锁信息、内存使用情况等详细的性能指标。可以通过查询performance_schema.events_statements_summary_by_digest表来获取不同查询语句的执行统计信息,包括执行次数、总执行时间、平均执行时间等,从而找出执行效率较低的查询进行优化。

这三个默认库在 MySQL 数据库系统中各自发挥着重要的作用,是管理和优化 MySQL 数据库的重要依据。

2.5 数据库数据类型

MySQL 数据类型用于定义表中列可存储的数据类别,每种类型都有特定用途和存储限制,合理使用能提升数据库性能和数据准确性。

一、数值类型
1. 整数类型
类型存储字节有符号取值范围无符号取值范围应用场景
TINYINT1-128 ~ 1270 ~ 255存储小范围计数、状态标志
SMALLINT2-32768 ~ 327670 ~ 65535短整型数据
MEDIUMINT3-8388608 ~ 83886070 ~ 16777215中等范围整数
INT4-2147483648 ~ 21474836470 ~ 4294967295常规整数存储
BIGINT8-2^63 ~ 2^63-10 ~ 2^64-1超大整数(如银行流水号)
2. 浮点数类型
  • FLOAT:占用 4 字节,单精度浮点数,适合对精度要求不高的计算(如商品折扣率)

  • DOUBLE:占用 8 字节,双精度浮点数,精度更高,适合科学计算或金融计算

  • DECIMAL(M,D):可自定义精度(M 总位数,D 小数位数),常用于银行账户金额存储,确保数值准确无误差

二、日期和时间类型
类型存储字节取值范围格式典型用途
DATE31000-01-01 ~ 9999-12-31YYYY-MM-DD仅存储日期(如订单日期)
TIME3-838:59:59 ~ 838:59:59HH:MM:SS时间值或持续时间
YEAR11901 ~ 2155YYYY年份记录
DATETIME81000-01-01 00:00:00 ~ 9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS完整日期时间(如日志时间)
TIMESTAMP41970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07YYYY-MM-DD HH:MM:SS自动记录数据修改时间戳

注意:TIMESTAMP 受时区影响,DATETIME 存储的是绝对时间

三、 字符串类型
类型最大长度存储性质典型用途
CHAR0 - 255 bytes定长字符串固定长度编号、短标识
VARCHAR0 - 65535 bytes变长字符串用户名、商品描述
TINYBLOB0 - 255 bytes二进制数据小图标、短二进制片段
TINYTEXT0 - 255 bytes文本数据短评论、标签
BLOB0 - 65,535 bytes二进制数据图片、音频片段
TEXT0 - 65,535 bytes文本数据文章内容、长评论
MEDIUMBLOB0 - 16,777,215 bytes二进制数据高清图片、短视频
MEDIUMTEXT0 - 16,777,215 bytes文本数据小说章节、中型文档
LONGBLOB0 - 4,294,967,295 bytes二进制数据大型文件、完整视频
LONGTEXT0 - 4,294,967,295 bytes文本数据整本书籍、超长篇报告

2.6 主键和外键

一、主键(Primary Key)
  1. 定义:用于唯一标识表中每一行数据的一列或多列组合

  2. 核心约束

    • 唯一性:主键列中的每个值必须唯一,不允许重复

    • 非空性:主键列不允许存储 NULL 值

  3. 作用

    • 快速定位与检索数据(提升查询效率)

    • 确保表中数据的完整性和准确性

  4. 示例:用户表中的user_id、订单表中的order_id

二、外键(Foreign Key)
  1. 定义:用于建立表与表之间关联关系的约束,保证数据一致性

  2. 工作机制

    • 子表(从表)中的外键列,其值必须在父表(主表)的主键或唯一键列中存在

    • 例如:订单表中的user_id作为外键,必须对应用户表中已存在的user_id

  3. 作用

    • 防止子表出现孤立数据(无对应主表记录的数据)

    • 维护表间数据逻辑关系,保证数据完整性

  4. 级联操作

    (可选):

    • CASCADE:父表数据删除 / 更新时,子表相关数据自动同步删除 / 更新

    • SET NULL:父表数据删除 / 更新时,子表外键列自动设为 NULL(需允许 NULL 值)

三、使用场景总结
  • 主键:每个表建议设置主键,作为数据的唯一标识

  • 外键:当存在表间关联关系(如一对多、多对一)时,通过外键约束确保数据一致性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值