数据库 - MySQL介绍

news/2024/9/28 21:14:28/

目录

前言

一、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.ppmy.cn/news/1530765.html

相关文章

Python Web项目管理与团队协作

Python Web项目管理与团队协作 目录 ✨ 版本控制与分支管理 Git 在项目管理中的核心作用GitFlow 工作流的最佳实践Pull Request 和 Code Review 的规范与流程 &#x1f6e0;️ 项目依赖管理 pipenv 和 poetry 的项目依赖管理方式如何通过依赖锁定文件保证环境一致性 &#x1f…

Apache Cordova和PhoneGap

Apache Cordova和PhoneGap是两个在移动应用开发领域备受关注的开源框架&#xff0c;它们有着紧密的联系和显著的区别。本文将从起源与发展、技术特点、功能与应用、社区与文档资源、性能与限制以及未来发展趋势等多个方面&#xff0c;对Apache Cordova和PhoneGap进行详细探讨。…

Redis结合Caffeine实现二级缓存:提高应用程序性能

本文将详细介绍如何使用CacheFrontend和Caffeine来实现二级缓存。 1. 简介 CacheFrontend: 是一种用于缓存的前端组件或服务。通俗的讲&#xff1a;该接口可以实现本地缓存与redis自动同步&#xff0c;如果本地缓存&#xff08;JVM级&#xff09;有数据&#xff0c;则直接从本…

net.sf.json.JSONException: There is a cycle in the hierarchy!

在用com.google.gson.JsonArray把list对象转jsonarray后&#xff0c;把jsonarray放入了新的json内时&#xff0c;异常net.sf.json.JSONException: There is a cycle in the hierarchy! 意思是&#xff1a;将Java对象转换为JSON时发现了层级&#xff08;循环&#xff09;引用。即…

docker 部署minio

docker部署minio 前提部署minio连接minio参考链接 前提 已安装docker 部署minio mkdir -p ~/minio/datadocker run \-p 9000:9000 \-p 9001:9001 \--name minio \-v ~/minio/data:/data \-e "MINIO_ROOT_USERROOTNAME" \-e "MINIO_ROOT_PASSWORDCHANGEME123&…

0-1开发自己的obsidian plugin DAY 4

今天想把源代码都放在/src文件夹下&#xff0c;然后在不同的.ts脚本中实现子模块功能 一步一步来&#xff0c;第一步先分离main出去以后引用格式类似&#xff1a; import { ExampleSettingTab } from ./settings; 然后把main.ts和settings.ts都移入新建的src/文件夹下。然后有…

uniapp小程序使用canvas画圆

<view class"container"><canvas canvas-id"arcCanvas" id"arcCanvas" class"arc-canvas" width"300" height"300"></canvas> </view> 最开始我使用…

Django一分钟:借助Django的认证系统快速实现RBAC权限校验以及Session会话

引言 Django自带一套认证与权限系统帮助我们快速的实现RBAC权限控制。今天我们要讨论的是Django的认证与权限系统怎么使用&#xff0c;以及Django在背后为我们做了些什么。 一、权限系统会创建数据库表 如果使用了Django的认证系统(在settings中注册appdjango.contrib.auth)…