MySQL 数据库操作

news2025/5/10 16:15:19

目录

一、 MySQL 数据库介绍

二、 MySQL 库操作

1. 系统数据库

2. 数据库操作

三、 MySQL 表操作

1. 表介绍

2. 查看表

3. 创建表

4. 查看表结构

5. 修改表

6. 删除表

四、 MySQL 数据操作

4.1 单表查询

4.2 多表查询


一、 MySQL 数据库介绍

数据库目前标准的指令集是 SQL。SQL是 Structured Query Language 的缩写,即结构化查询语言。它是1974年由 Boyce 和 Chamberlin 提出来的,1975~1979 年 IBM 公司研制的关系数据库管理系统原型 System R实现了这种语言。经过多年的发展,SQL 语言得到了广泛的应用。

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。

二、 MySQL 库操作

1. 系统数据库

经初始化后的 MySQL 服务器,默认建立了四个数据库:sys、mysql、information schema  performance schema。

  • information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等
  • performance schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件、锁等现象
  • mysql:授权库,主要存储系统用户的权限信息
  • sys: 主要用于存储系统性能信息和监控数据,对数据库的性能优化和故障排除具有关键作用

2. 数据库操作

(1) 创建数据库

语法:

CREATE DATABASE 数据库名:

(2) 数据库命名规则

  • 可以由字母、数字、下划线、@、#、$
  • 区分大小写
  • 唯一性
  • 不能使用 MySQL 保留字(如 SELECT、FROM 等)
  • 不能单独使用数字
  • 最长 128 位

(3) 选择数据库

语法:

USE 数据库名;

(4) 查看数据库

使用如下命令查看当前库中有哪些表

show databases;

(5) 删除数据库

语法:

DROP DATABASE 数据库名;

三、 MySQL 表操作

1. 表介绍

库相当于文件夹。而表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段

2. 查看表

使用 SHOW TABLES 查看当前所在的数据库中包含的表。在操作之前,需要先使用 USE 语句切换到所使用的数据库,就像要査看一个文件夹里面有多少文件,要先进入这个文件夹

3. 创建表

 (1) 语法

语法:

create table表名(字段名1 类型[(宽度)约束条件],
字段名 2 类型[(宽度)约束条件],
字段名 3 类型[(宽度)约束条件]

);

在创建表时有以下几点需要注意:

  • 在同一张表中,字段名是不能相同
  • 宽度和约束条件可选
  • 字段名和类型是必须的,字段的类型宽度和约束条件是可选项
  • 表中最后一个字段不要加逗号

 (2) 类型介绍

表内存放的数据有不同的类型,类似于使用excel存储数据时也需要设置的数据类型,每种数据类型都有自己的宽度,但宽度是可选的,不设置宽度时,会使用字段的默认宽度。MySQL, 支持多种类型,大致可以分为三类:数值、日期/时间字符串(字符)类型。对于我们约束数据的类型有很大的帮助

数值类型

类型大小范围(有符号)范围(无符号)用途
INT4 字节(-2 147 483 648,2 147483 647)(0,4 294 967 295)大整数值
DOUBLE8 字节(-1.797E+308,-2.22E-
308)
(0,2.22E-308,1.797E+308)双精度浮点数值
DOUBLE(M,D)8个字节,M表示长度,D表示小数位数同上,受M和D的约束DOUBLE(5,2)-999.99-999.99同上,受M和D的约束双精度浮点数值
DECIMAL(M,D)DECIMAL(M,D)依赖于M和D的值,M最大值为65依赖于M和D的值,M最大值为65小数值

日期类型

类型大小范围格式用途
类型31000-01-01/9999-12-31YYYY-MM-DD日期值
TIME3'-838:59:59"/'838:59:59'HH:MM:SS时间值或持续时间
YEAR11901/2155YYYY年份值
DATETIME81000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DDHH:MM:SS混合日期和时间值
TIMESTAMP41970-01-0100:00:00/2038 结束时间是第 2147483647 秒北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨03:14:07YYYYMMDDHH鵓ù蕪捧比MSS混合日期和时间值,时间戳

字符串类型

类型大小用途
CHAR0-255字符定长字符串 char(10) 10个字符
VARCHAR0-65535 字节变长字符串 varchar(10) 10个字符
BLOB(binary large object)0-65535字节二进制形式的长文本数据
TEXT0-65535字节长文本数据

 (3) 约束条件

约束条件与数据类型的宽度一样,都是可选参数,类似于使用excel存储数据时,可以利用 excel 的公式限制员工 ID 列:禁止重复值,且不能为空约束条件作用:用于保证数据的完整性和一致性,主要分为:

约束条件说明
PRIMARY KEY (PK)标识该字段为该表的主键,可以唯一的标识记录
FOREIGN KEY (FK)标识该字段为该表的外键
NOT NULL标识该字段不能为空
UNIQUE KEY(UK)标识该字段的值是唯一的
AUTO INCREMENT标识该字段的值自动增长(整数类型,而且为主键)
DEFAULT为该字段设置默认值
UNSIGNED无符号
ZEROFILL使用 0填充
ENMU()限制字段可以存储的值集合

4. 查看表结构

DESCRIBE 语句:用于显示表的结构,即组成表的各字段(列)的信息。需要指定“数据库名.表名”作为参数;若只指定表名参数,则需先通过 USE 语句切换到目标数据库

查看详细表结构或者创建表所使用的语句可以执行 show create table tl\G;#查看表详细结构,可加\G。\G表示以长格式展示结果

5. 修改表

(1) 修改表名

ALTER TABLE表名RENAME 新表名;

(2) 增加字段

ALTER TABLE表名ADD 字段名数据类型[完整性约束条件…],ADD 字段名数据类型[完整性约束条件…]
ALTER TABLE 表名 ADD 字段名,数据类型[完整性约束条件…]FIRST;
ALTER TABLE 表名 ADD 字段名,数据类型[完整性约束条件…]AFTER 字段名;

(3) 删除字段

ALTER TABLE 表名DROP 字段名;

(4) 修改字段

ALTER TABLE 表名 MODIFY 字段名 数据类型[完整性约束条件…];ALTER TABLE 表名 CHANGE 旧字段名 新字段名 旧数据类型[完整性约束条件…];
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型[完整性约束条件…];

6. 删除表

删除数据库中的表,需要指定“数据库名.表名”作为参数;若只指定表名参数,则需先通过执行“USE”语句切换到目标数据库

DROP TABLE 表名;

四、 MySQL 数据操作

4.1 单表查询

(1) 单表查询语法

SELECT 字段1,字段 2...FROM 表名WHERE 条件GROUP BY 字段HAVING 筛选ORDER BY 字段LIMIT 限制条数

(2) 关键字执行的优先级

from
where
group by
having
select
order by
limit

说明:

  1. 找到表:from
  2. 拿着 where 指定的约束条件,去文件/表中取出一条条记录
  3. 将取出的一条条记录进行分组 group by,如果没有 group by,则整体作为组
  4. 将分组的结果进行 having 过滤
  5. 执行 select
  6. 将结果按条件排序:order by
  7. 限制结果的显示条数:limit

(3) 简单查询

语法:把表中需要的列的数据查询出来

SELECT 字段 1,字段 2... FROM 表名

(4) where 条件
WHERE是 SQL, 中用于筛选数据的核心子句,其作用是通过指定条件从表中过滤出符合条件的记录。它可应用于 SELECT、UPDATE、DELETE 等语句中,控制操作的范围
where 字句中可以使用:

  1. 比较运算符:>く>=<=く>!=
  2. between 80 and 100 值在 10 到20 之间
  3. in(80,90,100)值是 10 或 20 或 30
  4. like 'egon%'pattern 可以是%或,%表示任意多字符表示一个字符
  5. 逻辑运算符:在多个条件直接可以使用逻辑运算符 and or not

4.2 多表查询

(1) 子查询

子查询也被称作内查询或者嵌套查询,是指在一个查询语句里面还嵌套着另一个查询语句。子查询语句是先于主查询语句被执行的,其结果作为外层的条件返回给主查询进行下一步的查询过滤。子查询不仅可以在 SELECT 语句中使用,在 INERT、UPDATE、DELETE 中也同样适用。在嵌套的时候,子查询内部还可以再次嵌套新的子查询,也就是说可以多层嵌套。
在开始实际的举例之前,先来学习一下IN 这个操作符的用法,IN 用来判断某个值是否在给定的结果集中,通常结合子查询来使用。IN的语法结构如下:

<表达式>[NOT]IN<子查询>

当表达式与子查询返回的结果集中的某个值相等时,返回TRUE,否则返回FALSE。若启用了 NOT 关键字,则返回值相反。需要注意的是,子查询只能返回一列数据,如果需求比较复杂,一列解决不了问题,可以使用多层嵌套的方式来应对。

(2) 多表连接查询

MySQL 的连接查询,通常都是将来自两个或多个表的行结合起来,基于这些表之间的共同字段,进行数据的拼接。首先,要确定一个主表作为结果集,然后将其他表的行有选择性的连接到选定的主表结果集上。使用较多的连接查询包括内连接、左连接和右连接。

内连接

MySQL中的内连接就是两张或多张表中同时符合某种条件的数据记录的组合。通常在FROM 子句中使用关键字INNERJOIN 来连接多张表,并使用 ON 子句设置连接条件。内连接的语法格式如下。

SELECT column name(s)FROM tablel

INNER JOIN table2 ON tablel.column name = table2.column name;

左连接

MySQL 除了内连接,还可以使用外连接。区别于MySQL 外连接是将表分为基础表和参考表,再依据基础表返回满足条件或不满足条件的记录。外连接按照连接时表的顺序来分,有左连接和右连接之分。
左连接也可以被称为左外连接,在FROM 子句中使用LEFT JOIN 或者 LEFI0UTER JOIN 关键字来表示。左连接以左侧表为基础表,接收左表的所有行,并用这些行与右侧参考表中的记录进行匹配,也就是说匹配左表中的所有行以及右表中符合条件的行

右连接

右连接也被称为右外连接,在FROM 子句中使用RIGHT JOIN 或者 RIGHTOUTER JOIN 关键字来表示。右连接跟左连接正好相反,它是以右表为基础表,用于接收右表中的所有行,并用这些记录与左表中的行进行匹配。也就是说匹配右表中的每一行及左表中符合条件的记录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2372430.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业高性能WEB服务器—Nginx

Nginx介绍 Nginx是一款轻量级的网页服务器、反向代理服务器以及电子邮件代理服务器。 具有高并发&#xff08;特别是静态资源&#xff09;、占用系统资源少的特性。它不仅是Web服务软件&#xff0c;还具有反向代理负载均衡功能和缓存服务功能 具备如下基本特性 可针对静态资…

Python MNE-Python 脑功能磁共振数据分析

一、什​​么​​是​​Python MNE-Python 脑​​功​​能​​磁​​共​​振​​数​​据​​分​​析 为大脑功能磁共振成像数据分析工具&#xff0c;致力于为神经科学研究提供便捷、高效的数据分析处理工具。MNE-Python提供了处理和分析脑电图&#xff08;EEG&#xff09;、…

DevExpressWinForms-AlertControl-使用教程

文章目录 AlertControl-使用教程一、将 AlertControl 添加到 Form二、编辑 AlertControl 的 HtmlTemplateHTML Template Editor介绍编辑HTML Template 三、使用AlertControl弹出AlertAlert中的按钮事件获取 Alert 标题等信息向Alert传递参数 总结源码 AlertControl-使用教程 一…

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】电商数据分析案例-9.4 可视化报告输出

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 电商数据分析实战&#xff1a;基于PostgreSQL的可视化报告生成全流程9.4 可视化报告输出9.4.1 可视化报告设计框架9.4.1.1 报告目标与受众9.4.1.2 数据准备与指标体系 9.4.2…

屎上雕花系列-2nd

以下为“屎上雕花”的尝试2nd 使用Deepseek扩容而来&#xff0c;我竟然没有找到明显的错误&#xff0c;太强大了&#xff0c;工作改变生活了 LeCroy 以太网与 SAN 网络测试解决方案 硬件平台一&#xff1a;Xena 以太网流量生成器 Xena 以太网流量生成器是一款高性能的网络测…

MCP专题| 突破LLM三大瓶颈!模型上下文协议(MCP)如何重塑AI交互体验?

最近引爆了整个AI圈的Model Context Protocol&#xff08;MCP&#xff09;到底是什么&#xff1f;你是否也和小编一样一头雾水&#xff0c;不是说好的LLM风潮呢&#xff0c;怎么现在变成通信协议啦&#xff1f;最近小编也是找到一篇神仙综述&#xff0c;带你一遍搞清什么是MCP的…

我的AD快捷键方案【留存】

留存我的快捷键方案文件&#xff0c;以便换电脑的时候能够快速导入快捷键。 我的快捷键文件&#xff1a; 通过网盘分享的文件&#xff1a;JB20250509.DXPPrf 链接: https://pan.baidu.com/s/1t6V0GjdGFPNSFydP5Z_tfg?pwde4xs 提取码: e4xs 复制这段内容后打开百度网盘手机Ap…

Edwards爱德华STP泵软件用于操作和监控涡轮分子泵

Edwards爱德华STP泵软件用于操作和监控涡轮分子泵

QT6(35)4.8定时器QTimer 与QElapsedTimer:理论,例题的界面搭建,与功能的代码实现。

&#xff08;112&#xff09; &#xff08;113&#xff09;模仿随书老师给的源代码搭建的&#xff0c; LCD 显示的部分不一样 &#xff1a; &#xff08;114&#xff09;以下开始代码完善&#xff1a; 关联定时器的信号与槽函数 &#xff1a; &#xff08;115&#xff09;…

02 mysql 管理(Windows版)

一、启动及关闭 MySQL 服务器 1.1 通过 “服务” 管理工具 winr打开运行&#xff0c;输入services.msc 找到MySQL80&#xff0c;这个是我们在安装mysql的时候给的服务的名称&#xff0c;具体见文章mysql 安装 右键选择启动或者停止。 1.2 通过命令提示符 1.2.1 关闭命令…

不同渲染任务,用CPU还是GPU?

一、CPU与GPU渲染的核心差异与选型建议 CPU渲染的核心优势与适用场景 复杂场景处理能力&#xff1a;CPU凭借强大的多核性能&#xff08;如AMD Threadripper 3990x的64核&#xff09;和高内存容量&#xff08;最高支持512GB&#xff09;&#xff0c;擅长处理影视级光线追踪、全…

硅基计划 学习总结 拾贰

一、二级指针 难道指针也有分等级的吗&#xff0c;我们学过的指针要存放变量的地址的&#xff0c;那二级指针是干嘛的呢&#xff1f; 一级指针&#xff1a;int a 10; int *pa &a; 指针变量&#xff0c;它终究是个变量&#xff0c;也有自己的地址 那我们以后是不是可以通…

【C语言指针超详解(三)】--数组名的理解,一维数组传参的本质,冒泡排序,二级指针,指针数组

目录 一.数组名的理解 二.使用指针访问数组 三.一维数组传参的本质 四.冒泡排序 五.二级指针 六.指针数组 6.1--指针数组的定义 6.2--指针数组模拟二维数组 &#x1f525;个人主页&#xff1a;草莓熊Lotso的个人主页 &#x1f3ac;作者简介&#xff1a;C方向学习者 &…

QT聊天项目DAY10

1.封装redis操作类 头文件 #ifndef REDISMANAGE_H #define REDISMANAGE_H#include "Singletion.h" #include "GlobalHead.h"class RedisManage : public Singletion<RedisManage> {friend class Singletion<RedisManage>; public:~RedisMana…

养生:开启健康生活的钥匙

养生&#xff0c;是对生活的精心呵护&#xff0c;是通往健康之路的秘诀。以下从饮食、运动、睡眠和心态四个方面&#xff0c;为你呈现科学养生之道。 饮食养生&#xff1a;营养均衡的智慧 合理的饮食是养生的基础。遵循 “食物多样&#xff0c;谷类为主” 的原则&#xff0c;…

基于springboot的海洋环保知识分享系统的设计与实现

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过上千套毕业设计程序&#xff0c;没有什么华丽的语言&#xff0…

操作系统 第2章节 进程,线程和作业

一:多道程序设计 1-多道程设计的目的 for:提高吞吐量(作业道数/处理时间),我们可以从提高资源的利用率出发 2-单道程序设计缺点: 设备的利用率低,内存的利用率低,处理机的利用率低 比如CPU去访问内存,CPU空转.内存等待CPU访问也是没有任何操作的.要是有多个东西要去访问不冲…

RT-Thread 深入系列 Part 2:RT-Thread 内核核心机制深度剖析

摘要&#xff1a; 本文从线程管理、调度器原理、中断处理与上下文切换、IPC 同步机制、内存管理五大核心模块出发&#xff0c;深入剖析 RT-Thread 内核实现细节&#xff0c;并辅以源码解读、流程图、时序图与性能数据。 目录 线程管理与调度器原理 1.1 线程控制块&#xff08;T…

在线caj转换word

CAJ格式是中国知网特有的一种文献格式&#xff0c;在学术研究等领域广泛使用&#xff0c;但有时我们需要将其转换为Word格式&#xff0c;方便编辑、引用文献。本文分享如何轻松将CAJ转换为word的转换工具&#xff0c;提高阅读和办公效率。 如何将CAJ转换WORD? 1、使用CAJ转换…

25:三大分类器原理

1.分类的逻辑&#xff1b; 2.统计学与数据分析。 ************************ Mlp 多层感知系统 GMM 高斯混合模型-极大似然估计法 SVM 支持向量机建立一个超平面作为决策曲面&#xff0c;使得正例和反例的隔离边界最大化 Knn 1.MLP整个模型就是这样子的&#xff0c;上面…