数据库管理与高可用-MySQL数据库操作

发布于:2025-05-29 ⋅ 阅读:(27) ⋅ 点赞:(0)

目录

#1.1MySQL数据库介绍

#2.1MySQL库操作

  2.1.1系统数据库

  2.1.2数据库操作

#3.1MySQL表操作

  3.1.1表介绍

  3.1.2查看表

  3.1.3创建表

  3.1.4查看表的结构

  3.1.5修改表

  3.1.6复制表

  3.1.7删除表

#4.1MySQL数据操作

  4.1.1介绍

  4.1.2插入数据INSERT

  4.1.3更新数据INSERT

  4.1.4查询数据INSERT

#5.1MySQL数据库用户授权

  5.1.1创建用户

  5.1.2授权操作

  5.1.3查看权限

  5.1.4撤销权限


1.1MySQL数据库介绍

   MySQL 是一款 开源、关系型数据库管理系统(RDBMS),由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下产品。它基于 Client-Server 架构,支持多用户、多线程,广泛应用于 Web 应用开发、企业级系统、数据分析等场景,是 LAMP(Linux + Apache + MySQL + PHP) 等经典技术栈的核心组件之一。

 SQL语言主要由以下几部分组成:

 DDL(Data Definition Language,数据定义语言):用来建立数据库,数据库对象和定义字段,如CREATE,ALTER,DROP.

 DML(Data Manipulation Language,数据操纵语言):用来插入,删除和修改数据库中的数据,如INSERT,UPDATE,DELETE.

 DQL(Data Query Language,数据查询语言):用来查询数据库中的数据,如SELECT.

 DCL(Data Control Language,数据控制语言):用来控制数据库组件的存取许可,存取权限,如COMMIT,ROLLBACK,GRANT,REVOKE.

2.1MySQL库操作

 2.1.1系统数据库

   经初始化后的MySQL服务器,默认建立了四个数据库:                   sys,mysql,information_schema,performance_schema.

组件 类型 核心功能 数据来源
MySQL 数据库系统 存储和管理业务数据,提供数据库服务 磁盘文件、内存
information_schema 系统数据库 存储元数据(表结构、权限等) 服务器内部字典
performance_schema 系统数据库 监控运行时性能数据(语句、锁、资源等) 服务器运行时状态
sys 工具型数据库 封装性能分析视图,简化复杂查询 information_schema + performance_schema

2.1.2数据库操作

 1.创建数据库

    语法:mysql>create database 数据库名;

 2.数据库命名规则

  可以由字母,数字,下划线,@,#,$

  区分大小写

  唯一性

  不能使用关键字如create select

  不能单独使用数字 

   最长128位

 3.选择数据库

 mysql>USE 数据库名;

 4.查看数据库

3.1MySQL表操作

 3.1.1表介绍

   表是由若干行和列组成的二维结构,用于组织和呈现具有相关性的数据或信息。每一行代表一个独立的记录或对象,每一列代表该对象的一个属性或特征。

 3.1.2查看表

   使用SHOW TABLES查看当前所在的数据库中包含的表,在操作前,需要使用USE语句切换到所使用的数据库。

 3.1.3创建表

  1.语法

CREATE TABLE table_name (
    column1 datatype [constraint],
    column2 datatype [constraint],
    column3 datatype [constraint],
    ...
    [PRIMARY KEY (column1, column2, ...)]
);

  2.类型介绍

    MySQL支持多种类型,大致可以分为三类:数值,日期,类型。

   数值的类型

分类 子类型 特点 典型取值范围 存储大小 应用场景
整数类型 TINYINT 小范围整数,通常用于枚举值或状态标识 无符号:0~255
有符号:-128~127
1 字节 性别标识(0/1)、状态码(如 0 = 禁用,1 = 启用)
SMALLINT 中等范围整数,适用于较小计数场景 无符号:0~65535
有符号:-32768~32767
2 字节 年龄、年份(非跨世纪场景)
INT(标准整数) 通用整数类型,满足大多数常规计数需求 无符号:0~4294967295
有符号:-2147483648~2147483647
4 字节 用户 ID、订单数量、商品库存
BIGINT 大范围整数,适用于需要存储极大值的场景(如时间戳、资产金额) 无符号:0~18446744073709551615
有符号:-9223372036854775808~9223372036854775807
8 字节 毫秒级时间戳(如1685289600000)、财务金额
浮点类型 FLOAT 单精度浮点数,精度较低(约 6~7 位有效数字),存储空间小但可能存在精度误差 ±1.175494351×10⁻³⁸ ~ ±3.402823466×10³⁸ 4 字节 非精确计算场景(如概率、科学实验近似值)
DOUBLE 双精度浮点数,精度较高(约 15~17 位有效数字),适合需要更高精度的计算 ±2.2250738585072014×10⁻³⁰⁸ ~ ±1.7976931348623157×10³⁰⁸ 8 字节 科学计算、金融计算(需结合舍入规则)
定点类型 DECIMAL(p, s) 高精度定点数,p为总位数,s为小数位数,完全精确存储(无精度损失) 取决于ps(如DECIMAL(10, 2)表示总 10 位,2 位小数) 可变(1~17 字节) 财务计算(如金额、汇率)、高精度测量数据

 日期类型

分类 子类型 特点 格式 / 取值范围 存储大小 应用场景
日期类型 DATE 存储纯日期(年 - 月 - 日),不包含时间部分 格式:YYYY-MM-DD(如2023-10-01
范围:0001-01-01~9999-12-31
3 字节 生日、纪念日、合同生效日期
时间类型 TIME 存储纯时间(时 - 分 - 秒),不包含日期部分 格式:HH:MM:SS(如14:30:45
范围:00:00:00~23:59:59
3 字节 会议时间、航班起飞时间、考勤打卡时间
日期时间类型 DATETIME 存储完整日期和时间(年 - 月 - 日 时 - 分 - 秒),不依赖时区 格式:YYYY-MM-DD HH:MM:SS(如2023-10-01 15:45:00
范围:1000-01-01 00:00:00~9999-12-31 23:59:59
8 字节 订单创建时间、日志记录时间(服务器本地时间)
TIMESTAMP 存储日期和时间,通常关联时区(不同数据库实现不同),自动转换为 UTC 存储 格式同DATETIME,但存储为 UTC 时间戳(如 MySQL 中范围:1970-01-01 00:00:01~2038-01-19 03:14:07 4 字节(MySQL) 跨国业务时间、需要时区转换的场景(如用户登录时间)
时间间隔类型 INTERVAL 存储时间间隔(如天数、小时数、分钟数),用于计算时间差 格式:PnYnMnDTnHnMnS(如P1Y2M3DT4H5M6S表示 1 年 2 个月 3 天 4 小时 5 分 6 秒) 可变 计算项目周期、租赁时长、倒计时
其他类型 YEAR 存储年份(简化格式),可指定 2 位或 4 位表示 格式:YYYY(4 位,如2023)或YY(2 位,如23对应 2023) 1 字节 书籍出版年份、学年(如2024学年

字符串类型

数据类型 存储方式 长度限制 适用场景
CHAR 固定长度存储 0-255 字符(取决于数据库) - 存储长度固定的数据(如身份证号、性别代码)
- 查询效率高(长度固定易定位)
VARCHAR 可变长度存储(需额外 1-2 字节记录长度) 0-65,535 字符(取决于数据库) - 存储长度可变的文本(如用户名、文章摘要)
- 节省空间(按需分配)
BLOB 二进制大对象(Binary Large Object) 最大支持 4GB(取决于具体类型,如 TINYBLOB、MEDIUMBLOB 等) - 存储二进制数据(如图像、音频、文件)
- 不处理字符编码,直接存储原始字节
TEXT 文本大对象(Text Large Object) 最大支持 4GB(取决于具体类型,如 TINYTEXT、MEDIUMTEXT 等) - 存储长文本(如文章内容、日志信息)
- 支持字符编码(如 UTF-8)

 3.创建表

3.1.4查看表结构

  describe语句:用于显示表的结构,即组成表的各字段的信息。

   查看表的详细结构,可加\G,\G表示长格式展示。

3.1.5修改表

 1.修改表名

  alter table 表名 rename 新表名;

 2.添加字段

  alter table 表名 add 字段名

 3.修改字段

  alter table 表名 modify 字段名 数据类型 [完整性约束条件...]

3.1.6复制表

 只复制表结构,不复制表中数据

3.1.7删除表

   删除表(DROP TABLE)是数据库管理系统(DBMS)中用于彻底移除数据表结构及所有数据的操作。

4.1MySQL数据操作

 4.1.1介绍

   可以通过DML使用INSERT用来插入,DELETE删除和UPDATE更新数据库中的数据,使用SELECT查询数据。

创建示例表

4.1.2插入数据INSERT

顺序插入:

  插入多条记录:

4.1.3更新数据INSERT

4.1.4查询数据INSERT

   SELECT语句:用于从指定的表中查找符合条件的数据记录。

 1.单表查询

(1)准备数据

(2)where条件

       WHERE 条件主要用于筛选数据,其作用是限制查询结果,使结果只包含符合条件的记录。它常被用在 SELECTUPDATEDELETE 等语句中,目的是精准定位到你想要操作的记录。

 1.比较运算符 :>,<,>=,<=,!=

   薪资大于17000的人姓名

  不是403办公室的人姓名

2.in:集合查询

   薪资是9000或10000或1000000的人姓名

3.like:像,模糊匹配

4.逻辑运算符:and or not

薪资17000并且办公室是403的人

薪资17000或者办公室是403的人

 薪资不是9000或10000或30000的人姓名

(3)group by 分组

  1.为什么是分组?

   分组指的是将所以记录按照某个相同字段进行归类。

2.聚合函数:count()计数 avg()平均值 max()最大值

 min()最小值 sum()总和

(4)having过滤

    有哪些岗位是平均工资大于10000的

(5)order by 排序

   order by是 SQL 语句中用于对查询结果进行排序的关键字,是数据库查询中实现结果有序化的核心功能之一。

(6)limit限制结果条目

   limit是 SQL 中用于限制查询结果返回行数的关键字,常用于分页查询或获取指定数量的记录。

(7)正则匹配

   正则匹配(正则表达式,Regular Expression)是一种用特定模式描述、匹配和操作字符串的工具,广泛应用于文本处理、数据验证、搜索替换等场景。

 Name是u结尾的姓名

 Name是wan和wu之间至少1个g的姓名

2.多表查询

(1)准备数据

(2)多表连接查询

    1.内连接(只连接匹配的行)

   2.左连接(优先显示左表全部记录)

    3.右连接(优先显示右表全部记录)

5.1MySQL数据库用户授权

   用户授权是 MySQL 通过权限系统控制用户对数据库对象(如表、视图、存储过程等)操作权限的机制,本质是通过GRANT语句将特定权限赋予指定用户,同时可限制用户的访问来源(IP / 主机),确保数据安全与访问可控。

5.1.1创建用户

 5.1.2授权操作

5.1.3查看权限

5.1.4撤销权限


网站公告

今日签到

点亮在社区的每一天
去签到