MySQL 数据库深度解析:安装、语法与高级查询实战

news2024/11/16 9:23:07

一、引言

在现代软件开发和数据管理领域中,MySQL 数据库凭借其高效性、稳定性、开源性以及广泛的适用性,成为了众多开发者和企业的首选。无论是小型项目还是大型企业级应用,MySQL 都能提供可靠的数据存储和管理解决方案。本文将深入探讨 MySQL 数据库的各个重要方面,包括安装与连接、增删改查基本语法、库表管理、数据类型、函数与分组查询等,帮助读者全面掌握 MySQL 的使用。

二、安装与连接

1、安装 MySQL

下载安装包:在 MySQL 官方网站上,可以找到适用于不同操作系统的 MySQL 安装包。根据自己的系统选择相应的版本进行下载。

安装过程:

  • 运行安装包,按照安装向导逐步进行操作。在安装过程中,可以设置安装路径、数据库端口号、管理员密码等参数。
  • 选择安装类型,可以根据自己的需求选择典型安装、自定义安装或完全安装等。
  • 等待安装完成,安装过程可能需要一些时间,取决于系统性能和安装选项
2、连接 MySQL

使用命令行工具连接:

  • 打开命令提示符或终端窗口。
  • 输入 mysql -u 用户名 -p,然后按回车键。系统会提示输入密码,输入正确的密码后即可连接到 MySQL 数据库。
  • 例如,如果用户名是 root,密码是 123456,则命令为 mysql -u root -p123456

使用图形化工具连接:

  • MySQL Workbench:这是 MySQL 官方提供的图形化管理工具,功能强大且易于使用。打开 MySQL Workbench,在 “连接” 窗口中输入连接参数,包括主机名(通常为 localhost)、端口号(默认是 3306)、用户名和密码,然后点击 “连接” 按钮即可连接到数据库。
  • Navicat:这是一款流行的数据库管理工具,支持多种数据库包括 MySQL。在 Navicat 中,创建一个新的连接,设置连接参数后即可连接到 MySQL 数据库。

三、增删改查基本语法

1、插入数据(INSERT)

语法:INSERT INTO 表名 (字段1, 字段2,...) VALUES (值1, 值2,...);

说明:将指定的值插入到表中的指定字段中。字段列表和值列表的顺序必须一一对应。如果某些字段可以为空或者有默认值,可以不指定相应的值。

例如:

  • INSERT INTO students (name, age, gender) VALUES ('张三', 18, '男');:向 students 表中插入一条记录,包含 nameage 和 gender 三个字段的值。
  • INSERT INTO students (name, gender) VALUES ('李四', '女');:如果 age 字段可以为空或者有默认值,可以只插入 name 和 gender 字段的值。
2、查询数据(SELECT)

语法:SELECT 字段1, 字段2,... FROM 表名 [WHERE 条件];

说明:从指定的表中查询出满足条件的记录,并返回指定的字段值。如果不指定 WHERE 条件,则返回表中的所有记录。

例如:

  • SELECT name, age FROM students WHERE gender = '女';:从 students 表中查询出性别为 “女” 的记录,并返回 name 和 age 字段的值。
  • SELECT * FROM students;:查询 students 表中的所有记录,并返回所有字段的值。
3、更新数据(UPDATE)

语法:UPDATE 表名 SET 字段1 = 值1, 字段2 = 值2,... [WHERE 条件];

说明:更新表中满足条件的记录的指定字段值。如果不指定 WHERE 条件,则会更新表中的所有记录,这通常是非常危险的操作,应该谨慎使用。

例如:

  • UPDATE students SET age = 19 WHERE name = '李四';:将 students 表中名为 “李四” 的记录的 age 字段值更新为 19。
  • UPDATE students SET gender = '男' WHERE age > 20;:将年龄大于 20 的记录的性别更新为 “男”。
4、删除数据(DELETE)

语法:DELETE FROM 表名 [WHERE 条件];

说明:删除表中满足条件的记录。如果不指定 WHERE 条件,则会删除表中的所有记录,同样应该谨慎使用。

例如:

  • DELETE FROM students WHERE age < 18;:删除 students 表中年龄小于 18 的记录。
  • DELETE FROM students;:删除 students 表中的所有记录,这是一个非常危险的操作,在执行前应该确保有备份或者确认不再需要这些数据。

四、库表管理

1、创建数据库
  • 语法:CREATE DATABASE 数据库名;
  • 说明:创建一个新的数据库。数据库名必须是唯一的,不能与已有的数据库重名。
  • 例如:CREATE DATABASE mydb;:创建一个名为 mydb 的数据库。
2、选择数据库
  • 语法:USE 数据库名;
  • 说明:选择要操作的数据库。在进行表的创建、查询、更新和删除等操作之前,必须先选择一个数据库。
  • 例如:USE mydb;:选择名为 mydb 的数据库。
3、创建表
  • 语法:CREATE TABLE 表名 (字段1 数据类型1, 字段2 数据类型2,...);
  • 说明:在指定的数据库中创建一个新的表。表名必须是唯一的,不能与已有的表重名。字段名和数据类型根据实际需求进行定义。
  • 例如:CREATE TABLE students (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), age INT, gender VARCHAR(10));:在当前数据库中创建一个名为 students 的表,包含 idnameage 和 gender 四个字段。其中,id 字段是整数类型,作为主键,并且自动递增;name 字段是可变长度字符串类型,最大长度为 50;age 字段是整数类型;gender 字段是可变长度字符串类型,最大长度为 10。
4、删除表
  • 语法:DROP TABLE 表名;
  • 说明:删除指定的表。删除表是一个不可逆的操作,在执行前应该确保不再需要该表中的数据。
  • 例如:DROP TABLE students;:删除名为 students 的表。

五、数据类型

1、数值类型
  • INT:整数类型,用于存储整数值。可以指定整数的长度,例如 INT(11) 表示长度为 11 的整数。
  • FLOAT:单精度浮点数类型,用于存储小数。可以指定小数的精度和位数,例如 FLOAT(5,2) 表示总长度为 5,小数部分长度为 2 的浮点数。
  • DOUBLE:双精度浮点数类型,用于存储高精度的小数。可以指定小数的精度和位数,例如 DOUBLE(10,3) 表示总长度为 10,小数部分长度为 3 的浮点数。
2、字符串类型
  • VARCHAR:可变长度字符串类型,用于存储字符串值。需要指定最大长度,例如 VARCHAR(50) 表示最大长度为 50 的字符串。
  • CHAR:定长字符串类型,用于存储固定长度的字符串值。需要指定长度,例如 CHAR(10) 表示长度为 10 的字符串。
  • TEXT:长文本类型,用于存储大量的文本数据。可以存储任意长度的文本,但在存储和查询时可能会比其他字符串类型效率低一些。
3、日期和时间类型
  • DATE:日期类型,用于存储日期值,格式为 YYYY-MM-DD
  • TIME:时间类型,用于存储时间值,格式为 HH:MM:SS
  • DATETIME:日期和时间类型,用于存储日期和时间值,格式为 YYYY-MM-DD HH:MM:SS

六、函数与分组查询

1、函数
  • 数学函数:
    • ABS:返回一个数的绝对值。例如,SELECT ABS(-10); 返回 10。
    • ROUND:对一个数进行四舍五入。可以指定小数位数,例如 SELECT ROUND(3.14159, 2); 返回 3.14。
  • 字符串函数:
    • CONCAT:拼接两个或多个字符串。例如,SELECT CONCAT('Hello', ', ', 'World!'); 返回 Hello, World!
    • LENGTH:返回一个字符串的长度。例如,SELECT LENGTH('Hello'); 返回 5。
  • 日期函数:
    • NOW:返回当前的日期和时间。例如,SELECT NOW(); 返回当前的日期和时间,格式为 YYYY-MM-DD HH:MM:SS
    • YEAR:提取一个日期的年份部分。例如,SELECT YEAR('2024-08-23'); 返回 2024。
2、分组查询
  • 语法:SELECT 字段1, 函数(字段2) FROM 表名 GROUP BY 字段1;
  • 说明:根据指定的字段进行分组,然后对每个组应用一个函数。通常与聚合函数一起使用,如 COUNTSUMAVG 等。
  • 例如:
    • SELECT gender, AVG(age) FROM students GROUP BY gender;:根据性别对 students 表中的记录进行分组,然后计算每个组的平均年龄。
    • SELECT department, COUNT(*) FROM employees GROUP BY department;:根据部门对 employees 表中的记录进行分组,然后计算每个部门的员工人数。

七、总结

MySQL 数据库是一个功能强大且灵活的数据管理工具。通过掌握安装与连接、增删改查基本语法、库表管理、数据类型、函数与分组查询等方面的知识,开发者可以高效地进行数据存储、管理和分析。在实际应用中,还可以结合其他技术和工具,如编程语言、框架和数据可视化工具等,来构建更加复杂和强大的应用系统。不断学习和实践,将使我们在 MySQL 数据库的使用上更加得心应手,为软件开发和数据管理提供坚实的支持。

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

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

相关文章

QT Creator UI中文输入跳出英文

笔者用的是QQ拼音输入&#xff0c;发现只要在UI中加入了QTableWidget&#xff0c;输入多几次中文&#xff0c;就会跳入英文。 后面改用搜狗拼音稍微好一些&#xff0c;但是偶尔还是插入了空格。

JavaScript静态方法

介绍 在 JavaScript 中&#xff0c;static 方法是与类本身关联的方法&#xff0c;而不是与类的实例关联。也就是说&#xff0c;static 方法可以通过类直接调用&#xff0c;而不需要创建类的实例。 class PersonCl {constructor(fullName, birthYear) {this.fullName fullNam…

2024湖南自考报考详细流程建议收藏!!

&#x1f4e2;湖南自考报考时间 &#x1f449;新考生入籍时间&#xff1a;8月19日9:00 至 8月28日 12:00 &#x1f449;考生理论课程报考时间&#xff1a;8 月 27日 9:00 至 9月4 日 17:00 &#x1f4e2;湖南自考报考流程 &#x1f449;登录“湖南省高等教育自学考试综合管理平…

《机器学习》 AUC性能测试、回归树、随机森林

目录 一、AUC性能测试 1、什么是AUC 2、什么是AUC-ROC曲线 1&#xff09;TPR、FPR • TPR&#xff1a;真实值为1&#xff0c;预测值为1的概率 • FPR&#xff1a;真实值为0&#xff0c;预测值为1的概率 2&#xff09;如何绘制图示曲线 3、最理想的AUC-ROC曲线图 4、案…

C语言占领游戏

目录 开头程序程序的流程图程序的效果结尾 开头 大家好&#xff0c;我叫这是我58。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <Windows.h> void pri…

C语言 自定义类型-结构体 #结构体类型的声明 #结构体的自引用 #结构体内存对齐 #结构体位段的实现

文章目录 前言 一、结构体类型的声明 1、结构体的基础知识 2、结构体的声明 3、特殊声明 二、结构体的自引用 三、结构体变量的定义和初始化 1、结构体的定义分为两类 2、结构体的初始化 四、结构体内存对齐 1、结构体在内存中是怎样存放的呢&#xff1f; 2、结构体的对齐规则&…

数字卫星:「超实时仿真」实现处理器性能5倍提升

01.数字孪生in卫星 卫星及其附属系统在航天领域具有十分重要的意义。近年来&#xff0c;卫星产业发展迅猛&#xff0c;数字化、网络化、智能化、服务化转型升级需求日益增长。为进一步完善星务软件验证工作、获取在轨卫星模拟数据&#xff0c;“数字卫星”成为当下主流趋势。 …

考研数学快9月了才开始强化,《660》《880》哪本优先?

快9月了&#xff0c;如果你刚开始强化&#xff0c;那要抓点紧了&#xff01; 很多使用660880这两本习题册的同学提问&#xff1a;《660》《880》哪本优先&#xff1f; 其实&#xff0c;不管先做那本&#xff0c;都一样&#xff0c;做题的目的是为了查缺补漏&#xff0c;而不是…

一起学Java(5)-[起步篇]教你掌握本协作项目中的Gralde相关配置文件(下)

接上篇《一起学Java(4)-java-all-in-one协作项目相关文件研究&#xff08;Gradle篇-上&#xff09;》&#xff0c;本文继续研究项目中Gradle相关文件。 全文详见个人独立博客&#xff1a;https://www.coderli.com/java-go-5-project-config-files-intro-gradle-two/ 一起学Ja…

ACCESS 手工注入实战 凡诺靶场

简介 Access数据库注入攻击是一种常见的网络安全&#xff0c;通过注入SQL代码来获取未授权的数据访问权限。这种攻击利用了应用程序与数据库之间的交互漏洞&#xff0c;攻击者通过输入特定的SQL代码片段来操纵数据库查询&#xff0c;从而绕过应用程序的安全机制&#xff0c;获取…

R 语言学习教程,从入门到精通,R 绘图饼图(22)

1、R 绘图 饼图 R 语言提供来大量的库来实现绘图功能。 饼图&#xff0c;或称饼状图&#xff0c;是一个划分为几个扇形的圆形统计图表&#xff0c;用于描述量、频率或百分比之间的相对关系。 R 语言使用 pie() 函数来实现饼图&#xff0c;语法格式如下&#xff1a; pie(x, la…

软件测试——IDEA2023配置assert断言

IDEA2023配置assert断言 vm options输入框 输入以下内容 -ea -Dfile.encodingUTF-8 点击APPLY OK

js 手写图片懒加载插件

一、目标 模仿vue-lazyload插件 只需将img标签的src属性名替换为自定义属性v-lazy&#xff0c;即可实现图片懒加载功能 例如&#xff1a; 二、实现 不清楚图片懒加载原理的参考我的上一篇博客 1.封装自定义插件&#xff1a;暴露一个对象&#xff0c;包含一个install方法 …

咸鱼之王手游内购修复无bug运营版联网架设+后台

今天给大家带来一款单机游戏的架设&#xff1a;咸鱼之王手游。 另外&#xff1a;本人承接各种游戏架设&#xff08;单机联网&#xff09; 本人为了学习和研究软件内含的设计思想和原理&#xff0c;带了架设教程仅供娱乐。 教程是本人亲自搭建成功的&#xff0c;绝对是完整可…

在Ubuntu 部署 Grafana且监控MySQL数据

一、安装 打开终端按顺序执行以下命令 1.添加 Grafana 的 APT 仓库&#xff1a; sudo apt-get install -y software-properties-common sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main" 2.导入Grafana GPG key&#xff1a; wge…

国产光耦合器的应用和优势浅析

光耦合器&#xff0c;也称为光隔离器&#xff0c;是电子领域的关键元件&#xff0c;为系统的不同部分提供必要的电气隔离。在国内半导体行业&#xff0c;高性能光耦合器的开发已成为一个重点关注领域&#xff0c;因为它们广泛应用于各个领域&#xff0c;包括医疗设备、汽车电子…

安泰功率放大器怎么使用

功率放大器是电子电路中的重要组件&#xff0c;用于增加输入信号的幅度&#xff0c;以便驱动各种负载。在不同的应用中&#xff0c;功率放大器有不同的使用方法和技巧。下面安泰电子将介绍功率放大器的基本使用方法&#xff0c;以及一些常见的应用示例。 1.连接电源 首先&#…

创意无限:7 个顶级广告设计软件推荐

在竞争激烈的市场中&#xff0c;一款引人注目的平面广告设计能够为设计师带来显著的业绩提升和收益。然而&#xff0c;除了设计师的专业技能&#xff0c;设计软件的选择同样对广告的最终效果有着不可忽视的影响。本文将介绍几款经过作者亲自测试并极力推荐的平面广告设计软件&a…

安装 podman 与 podman-compose

文章目录 Github官网文档Podman 简介Podman 与 Docker 区别 Podman 安装下载安装&#xff08;推荐&#xff09;brew 安装&#xff08;Mac&#xff09; Podman 虚拟机虚拟机基础rootful 模式 Podman 镜像与容器安装 podman-composedocker-compose.yml Github https://github.co…

秋招突击——8/23——知识补充——反向代理和正向代理——负载均衡算法

文章目录 引言正文正向代理反向代理负载均衡 面试题1、nginx属于七层网络结构中的哪一层&#xff1f;2、Nginx有哪些负载均衡算法3、什么是反向代理&#xff1f;什么是正向代理&#xff1f; 总结 引言 一步一步把以前忘记的计算机网络知识再捡起来&#xff0c;重新整理一遍&am…