数据库 - MySQL介绍

news2024/9/23 13:24:33

目录

前言

一、MySQL介绍

(一)关系型数据库

(二)SQL支持

(三)开源

(四)性能和拓展性

(五)支持多种存储引擎

(六)事物与锁机制

(七)跨平台支持

(八)社区支持与生态系统

(九)适用场景

(十)优缺点

 总结

二、MySQL的简单操作

(一)连接数据库

(二)创建数据库

(三)创建表

(四)插入数据

(五)查询数据

(六)更新数据

(七)删除数据

(八)删除表

(九)删除数据库

(十)数据类型简介

(十一)导入和导出数据

(十二)用户管理


前言

从这篇文章就开始讲述MySQL相关知识,数据库在项目中是非常重要的存在,主要用于存储数据,让我们接着往下看。


一、MySQL介绍

MySQL 是一个广泛使用的开源关系型数据库管理系统(RDBMS),主要用于管理和组织存储在表格中的数据。它由瑞典的 MySQL AB 公司开发,现属于 Oracle 公司。MySQL有以下几个关键点:

(一)关系型数据库

MySQL 使用关系型模型存储数据,这意味着数据被组织成表格,表格之间可以通过特定的字段(如外键)建立关系。每张表由组成,列代表数据的属性,而行则是实际的记录。

(二)SQL支持

MySQL 支持SQL(结构化查询语言),这是数据库操作的标准语言。你可以使用 SQL 来执行数据查询、插入、更新、删除操作。常见的 SQL 语句包括:

  • SELECT:从表中查询数据。

  • INSERT:向表中插入新数据。

  • UPDATE:更新表中的现有数据。

  • DELETE:删除表中的数据。

(三)开源

MySQL 是一个开源软件,这意味着你可以免费下载、使用和修改其源代码。尽管 MySQL 现在属于 Oracle,但其社区版仍然保留开源模式,用户可以根据需要进行扩展和定制。

(四)性能和拓展性

MySQL 因其高性能扩展性而广受欢迎。它可以处理从小型应用程序到大型系统的多种数据工作负载,适合高并发的在线事务处理(OLTP)系统。MySQL 的存储引擎(如 InnoDB 和 MyISAM)提供了不同的方式来管理数据和提高性能。

(五)支持多种存储引擎

MySQL 支持多种存储引擎,这让用户可以根据具体需求选择适合的引擎。常用的存储引擎包括:

  • InnoDB:支持事务、外键和行级锁,适用于高一致性要求的应用。

  • MyISAM:不支持事务,适用于高读取速度的应用。

这些引擎之间的差异让 MySQL 在不同场景下表现灵活,适合多种需求。

(六)事物与锁机制

MySQL 支持事务处理,这意味着一组 SQL 操作可以作为一个原子操作执行,要么全部成功,要么全部失败。事务通常用于确保数据一致性和完整性。MySQL 还提供了锁机制,以防止并发操作时的数据冲突问题。

(七)跨平台支持

MySQL 是跨平台的,支持多种操作系统,包括 Linux、Windows、macOS 等,这使得它可以在不同的开发环境中广泛使用。

(八)社区支持与生态系统

由于 MySQL 的流行,它拥有强大的社区支持和丰富的第三方工具、库与扩展。你可以很容易地找到文档、教程、插件,以及与 MySQL 相关的各种资源。

(九)适用场景

MySQL 适用于各种类型的应用,特别是在网络应用中十分流行。例如,许多 Web 开发框架(如 PHP、Python 的 Django)都可以与 MySQL 无缝集成。它在内容管理系统(CMS)电子商务社交媒体平台等方面有广泛应用。

(十)优缺点

  • 优点

    • 免费开源:对于大部分应用场景来说,MySQL 的社区版已经足够使用。

    • 快速性能:尤其是对读取和查询操作优化得很好。

    • 易于学习:语法直观,学习门槛较低。

    • 广泛的第三方工具支持:例如 phpMyAdmin、HeidiSQL 等工具使数据库管理更简单。

  • 缺点

    • 事务处理较弱(尤其是相比于 PostgreSQL 等其他数据库)。

    • 功能相对简单:对于一些高级数据需求,MySQL 可能不够强大。

 总结

MySQL 是一款轻量级、灵活、可靠的数据库管理系统,适用于各种网络应用。它的广泛使用、良好的社区支持、以及跨平台的特性,使得 MySQL 成为现代开发中不可或缺的一部分。


二、MySQL的简单操作

MySQL 的基本操作主要围绕数据库和表的创建、管理以及数据的增删改查。以下是一些常见的 MySQL 操作及其 SQL 语句示例。

(一)连接数据库

首先,连接到 MySQL 服务器,可以通过命令行工具或图形化界面来连接。

mysql -u 用户名 -p

输入正确的密码后,你就会进入 MySQL 命令行界面,准备执行 SQL 语句。

(二)创建数据库

创建一个新的数据库可以使用 CREATE DATABASE 语句:

CREATE DATABASE test_db;

创建后,可以选择使用这个数据库:

USE test_db;

(三)创建表

创建表需要指定表的名称和列的结构,包括列的数据类型、长度等。例如,创建一个用户表 users

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
  • id 列是主键(PRIMARY KEY),并且自动递增(AUTO_INCREMENT)。

  • username 列是 VARCHAR(50) 类型,表示最多包含 50 个字符,且不能为空(NOT NULL)。

  • email 列是 VARCHAR(100) 类型,可以为空。

  • created_at 列是时间戳类型,默认值是当前时间。

(四)插入数据

向表中插入数据可以使用 INSERT INTO 语句。例如,向 users 表中插入一条新记录:

INSERT INTO users (username, email) 
VALUES ('JohnDoe', 'johndoe@example.com');

如果某些列具有默认值,或者可以为空,那么这些列可以不在 INSERT INTO 语句中指定。

(五)查询数据

使用 SELECT 语句来从表中查询数据。以下是一些常见的查询操作:

查询所有数据:

SELECT * FROM users;

查询特定列:

SELECT username, email FROM users;

添加条件查询:

SELECT * FROM users WHERE username = 'JohnDoe';

排序查询结果:

SELECT * FROM users ORDER BY created_at DESC;

限制返回的记录数:

SELECT * FROM users LIMIT 5;

(六)更新数据

使用 UPDATE 语句来修改表中的数据。例如,修改用户 JohnDoe 的邮箱地址:

UPDATE users 
SET email = 'newemail@example.com' 
WHERE username = 'JohnDoe';

注意WHERE 子句是必要的,如果不加 WHERE,则所有的记录都会被更新。

(七)删除数据

使用 DELETE 语句来删除表中的数据。例如,删除用户名为 JohnDoe 的记录:

DELETE FROM users WHERE username = 'JohnDoe';

同样需要注意 WHERE 子句,否则会删除所有记录。

(八)删除表

删除表时,使用 DROP TABLE 语句:

DROP TABLE users;

(九)删除数据库

如果不再需要某个数据库,可以删除它:

DROP DATABASE test_db;

(十)数据类型简介

在创建表时,你需要为每一列指定适当的数据类型。常用的数据类型包括:

  • 整数类型INTTINYINTBIGINT 等。

  • 字符串类型VARCHAR(n)TEXT 等。

  • 日期和时间类型DATEDATETIMETIMESTAMP 等。

  • 浮点数类型FLOATDOUBLE

(十一)导入和导出数据

可以使用 MySQL 的导入导出功能来备份和恢复数据。

导出数据库:

mysqldump -u 用户名 -p 数据库名 > backup.sql

导入数据库:

mysql -u 用户名 -p 数据库名 < backup.sql

(十二)用户管理

MySQL 也支持用户管理,例如创建用户并赋予权限:

创建新用户:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

授予权限:

GRANT ALL PRIVILEGES ON test_db.* TO 'newuser'@'localhost';

刷新权限:

FLUSH PRIVILEGES;

三、总结

该篇文章主要是MySQL的入门简介,主要是MySQL的介绍和较为基础的操作,下篇文章会进行数据查询相关的探讨,拭目以待吧!

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

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

相关文章

C++之GradeBook类

主文件 #include <iostream> #include "GradeBook.h"using namespace std;int main() {GradeBook myGradeBook; // 创建一个对象cout << "请输入课程名称:" ;string courseName;cin >> courseName;cout << "请输入学生人数&…

iOS常见锁及应用(笔记版)

什么是锁&#xff1f; 在程序中&#xff0c;当多个任务&#xff08;或线程&#xff09;同时访问同一个资源时&#xff0c;比如多个操作同时修改一份数据&#xff0c;可能会导致数据不一致。这时候&#xff0c;我们需要“锁”来确保同一时间只有一个任务能够操作这个数据&#…

vue打包exe之electron-quick-start的npm install 报错

vue打包exe之electron-quick-start的npm install 报错 1、github地址2、问题3、解决4、其他(打包exe)参考 1、github地址 https://github.com/electron/electron-quick-start2、问题 我使用的pnpm install正常安装&#xff0c;执行npm start提示错误 3、解决 在package.js…

Python之一些列表的练习题

1.比较和对比字符串、列表和元组。例如&#xff0c;它们可以容纳哪类内容以及在数据结构上可以做哪些操作。 1. 内容类型:- 字符串: 只能包含字符(文本)。- 列表: 可以包含任意类型的数据,如数字、字符串、其他列表等。- 元组: 可以包含任意类型的数据,与列表类似。3. 操作:(1…

Kaggle-狗种类的识别(Pytorch框架)基本图像识别流程

狗类别实现过程 一. 将数据集按标签分类&#xff0c;将标签转换为数字表示&#xff0c;并制作数据集 二. 搭建网络框架&#xff0c;inception&#xff0c;或者ResNet 三. 选择优化函数&#xff0c;训练模型 数据集制作 首先分析数据集&#xff0c;题中已经很明确告诉有120 种…

头晕,脖子酸痛?颈椎有问题,人就废了一半!颈椎病分3级,不同阶段治疗方法不一样!

每天下午快下班时&#xff0c;在办公室就会看到一种现象&#xff1a; 大家纷纷扭脖子、抬头、耸肩膀......诶&#xff0c;脖子太难受了&#xff01; 毕竟每天长时间的面对电脑&#xff0c;我们的脖子在承受着巨大的压力。尤其&#xff0c;低头 45 度时&#xff0c;脖子甚至承受…

Fyne ( go跨平台GUI )中文文档- 扩展Fyne (七)

本文档注意参考官网(developer.fyne.io/) 编写, 只保留基本用法 go代码展示为Go 1.16 及更高版本, ide为goland2021.2 这是一个系列文章&#xff1a; Fyne ( go跨平台GUI )中文文档-入门(一)-CSDN博客 Fyne ( go跨平台GUI )中文文档-Fyne总览(二)-CSDN博客 Fyne ( go跨平台GUI…

图像处理软件,常用于照片编辑和修饰

一、简介 1、一款功能强大的图像处理软件&#xff0c;常用于照片编辑和修饰。它提供多种工具和特效&#xff0c;允许用户调整照片的亮度、对比度、色彩、锐化等 二、下载 1、文末有下载链接,不明白可以私聊我哈&#xff08;麻烦咚咚咚&#xff0c;动动小手给个关注收藏小三连&a…

【掘金量化使用技巧】用日线合成长周期k线

掘金API中的接口最长的周期是‘1d’的&#xff0c;因此周线/月线/年线等数据需要自己进行合成。 基本思路 用日线合成长周期的k线只需要确定好合成的周期以及需要的数据即可。 周期: 一般行情软件上提供年k、月k、周k&#xff0c;我也选择年、月、周再加一个季度频率。 数据:…

图纸加密防泄密软件 | 从设计到交付,2024年值得关注的图纸加密软件大盘点!

图纸者&#xff0c;匠心之凝聚&#xff0c;智慧之结晶。然&#xff0c;信息之海浩瀚无垠&#xff0c;暗流涌动&#xff0c;图纸之安全&#xff0c;实乃企业之头等大事。 故&#xff0c;择一良器&#xff0c;以密护图纸&#xff0c;实为当务之急。 以下&#xff0c;七款图纸加密…

Linux之实战命令01:xargs应用实例(三十五)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…

高刷显示器哪个好?540Hz才有资格称高刷

高刷显示器哪个好&#xff1f;说实话&#xff0c;540Hz这些才能成为高刷显示器&#xff0c;什么200,240的&#xff0c;都不够高&#xff0c;什么是从容&#xff0c;有我不用才叫从容。下面我们一起来看看540Hz的高刷显示器都有哪些吧&#xff01; 1.高刷显示器哪个好 - 蚂蚁电…

2024风湿免疫科常用评估量表汇总,附操作步骤与评定标准!

常笑医学整理了5个风湿免疫科常用的评估量表&#xff0c;包括类风湿关节炎患者病情评价&#xff08;DAS28&#xff09;、系统性狼疮活动性测定&#xff08;SLAM&#xff09;等。这些量表在常笑医学网均支持在线评估、下载和创建项目使用。 01 类风湿关节炎患者病情评价 &#x…

实践中如何选择o1或sonnet3-5?

简述 AI更新太快导致我们不知选择什么使用更好&#xff1f;本文对比了新模型o1系列和Claude-3.5-sonnet的一些特点&#xff0c;针对不同开发场景提供了选择建议&#xff0c;希望能为你提供一些模型选择的参考。 模型对比 o1系列: 优势&#xff1a; 推理能力非常强&#xff0…

【动态规划】两个数组的 dp 问题二

两个数组的 dp 问题 1.正则表达式匹配2.交错字符串3.两个字符串的最小ASCII删除和4.最长重复子数组 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1…

高德地图自定义点标记

const markerContent <div class"custom-content-marker"> <span>摄像机<span> <img src"//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-red.png"> </div> marker.value new AMap.Marker({position:…

Ubuntu搭建java开发环境

一&#xff1a;Ubuntu安装 1、下载Ubuntu 24.04.1 LTS 官网下载地址&#xff1a;https://releases.ubuntu.com/24.04.1/ubuntu-24.04.1-desktop-amd64.iso 可以直接点击这里下载 2、使用VMware安装 新建虚拟机 之后一直下一步&#xff0c;到如下界面&#xff0c;选择 刚刚…

【MYSQL】聚合查询、分组查询、联合查询

目录 聚合查询聚合函数count()sum()avg()max()和min()总结 分组查询group by 子句having 子句 联合查询笛卡尔积内连接外连接自连接子查询单行子查询多行子查询from子句使用子查询 合并查询 聚合查询 聚合查询就是针对表中行与行之间的查询。 聚合函数 count() count(列名)&a…

战神5/战神:诸神黄昏/God of War Ragnarok(容量175GB)百度网盘下载

版本介绍 v1.0.612.4312|容量175GB|官方简体中文|支持键盘.鼠标.手柄|赠单板学习补丁 配置要求 战神5/战神&#xff1a;诸神黄昏/God of War Ragnarok 游戏介绍 不灭的北欧传奇 由Santa Monica Studio出品、Jetpack Interactive负责PC移植的佳作《God of War Ragnark》将带您…

python实现语音唤醒

1. 环境 python版本&#xff1a;3.11.9 2.完整代码 import sqlite3 import timefrom funasr import AutoModel import sounddevice as sd import numpy as np from pypinyin import lazy_pinyin# 模型参数设置 chunk_size [0, 10, 5] encoder_chunk_look_back 7 decoder_c…