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

目录

#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撤销权限

相关推荐
深栈8 分钟前
MySQL进阶篇(存储引擎、索引、视图、SQL性能优化、存储过程、触发器、锁)
sql·mysql·性能优化
睡觉z1 小时前
MySQL数据库初体验
数据库·mysql·oracle
CC同学呀2 小时前
从0到1:多医院陪诊小程序开发笔记(上)
数据库·笔记
十年砍柴---小火苗2 小时前
gin使用Mysql连接池用法
数据库·mysql·gin
天河归来2 小时前
通过阿里云服务发送邮件
数据库·阿里云·云计算
Chasing__Dreams3 小时前
Redis--基础知识点--28--慢查询相关
数据库·redis·缓存
C182981825753 小时前
小表驱动大表更快吗,不是
数据库
熙曦Sakura3 小时前
【MySQL】用户管理
android·mysql·adb
cookqq4 小时前
mongodb源码分析session接受客户端find命令过程
数据库·sql·mongodb·nosql
小天努力学java5 小时前
Java -- 并发编程
java·数据库