MySQL 数据库基础操作详解

news2024/11/27 14:28:57

文章目录

  • MySQL 数据库基础操作详解
    • 1. 基本概念
    • 2. 库的操作
    • 3. 表的操作
    • 4. 数据操作
    • 5. 示例
      • 示例一:创建表和插入数据
      • 示例二:查询数据
      • 示例三:更新数据
      • 示例四:删除数据


MySQL 数据库基础操作详解

MySQL 是一种常用的关系型数据库管理系统,广泛应用于 Web 开发、数据分析、企业信息管理等领域。本文将详细介绍 MySQL 数据库的基础操作,包括库的操作和表的操作,并提供了一些实用的 SQL 示例。

1. 基本概念

数据可以存储在文件中,但数据库更安全、便于管理查询和程序访问。数据库本质上是一套数据存储的解决方案,底层还是依托文件进行存储。

数据库通过网络的形式提供服务。用户通过客户端访问服务端,服务端对数据库进行增删查改的操作,再将结果返回给客户端。
在这里插入图片描述

mysql -h 127.0.0.1 -P 3306 -u root -p

MySQL中,创建数据库本质就是创建一个目录,创建表本质就是在目录中创建文件,增删查改也就是访问该文件。

MySQL是关系型数据库,数据存储是按行列存储的。通常把一行称为记录,一列称为属性。
请添加图片描述

最底层是磁盘文件系统,往上是存储引擎,存储引擎是系统文件的封装,帮助我们进行文件操作。其上还有分析器,对SQL语句分析翻译成文件操作。

SQL分类解释
DDL数据定义语言用来维护存储数据的结构,如:create、drop、alter
DML数据操纵语言对数据进行操作增删查改,如:insert、delete、update、select
DCL数据控制语言负责权限管理和事务管理,如:grant、revoke、commit

2. 库的操作

创建库

使用 CREATE DATABASE 语句创建数据库,可以指定字符集和校验规则。

create database if not exists `my_database` charset=utf8 collate=utf8_general_ci;

如果不指定字符集和校验规则使用默认规则

create database `my_database` 

展示库
使用 SHOW DATABASES 可以展示所有数据库,使用 SHOW CREATE DATABASE 可以查看创建数据库的语句。

show databases;  
show create database `my_database`;

删除库
使用 DROP DATABASE 可以删除数据库。

drop database  `my_database`;

使用库

使用 USE 命令可以切换当前数据库。

use `my_database`;

查看连接情况

show processlist;

存储规则和校验规则

show variables like 'character_set_database';
show variables like 'collation_database';
# 如果存储规则是utf8,校验规则就应是utf8_general_ci。校验规则表示如何看待数据库中的数据,二者应该对应。

备份数据库
使用 mysqldump 命令备份数据库。

mysqldump -P3306 -u root -p123456 -B `db_name` > backup_file

恢复数据库
使用 source 命令恢复数据库。

source backup_file;

3. 表的操作

创建表
使用 CREATE TABLE 创建表,可以指定字段、数据类型和约束。

create table [if not exists] `tb_name` (
	field1 datatype,
    field2 datatype,
	field3 datatype
) [character set 字符集 collate 校验规则 engine 存储引擎];

删除表
使用 DROP TABLE 删除表。

drop table `tb_name`;

查看所有表
使用 SHOW TABLES 查看所有表,使用 DESC 查看表结构。

show tables;
show create database `tb_name`; # 查看创建表的语句

查看表结构
使用 DESC 查看表结构

desc `tb_name`;

更改表
使用 ALTER TABLE 进行改名、添加列、删除列、修改列等操作。

  • 改名
alter table `old_name` rename to `new_name`;
  • 添加列
alter table `tb_name` add (`field_name2` datatype, ...) after `field_name1`
  • 删除列
alter table `tb_name` drop (`field_name` datatype, ...)
  • 修改列
alter table `tb_name` modify (`field_name` datatype, ...) # 修改列会覆盖列的原有属性
  • 更改列名称
alter table `tb_name` change `old_name` `new_name` datatype; # 改列名也会覆盖列的原有属性

4. 数据操作

插入数据
使用 INSERT INTO 插入数据。

INSERT INTO `my_table` (`name`, `age`, `email`) VALUES ('Alice', 25, 'alice@example.com');

查询数据
使用 SELECT 查询数据。

SELECT * FROM `my_table` WHERE `age` > 30;

更新数据
使用 UPDATE 更新数据。

UPDATE `my_table` SET `email` = 'bob@example.com' WHERE `name` = 'Bob';

删除数据
使用 DELETE FROM 删除数据。

DELETE FROM `my_table` WHERE `age` < 18;

5. 示例

示例一:创建表和插入数据

假设我们要创建一个学生信息表,包含学生的学号、姓名、年龄和性别等信息。

CREATE TABLE IF NOT EXISTS `student` (
    `student_id` INT AUTO_INCREMENT PRIMARY KEY,
    `name` VARCHAR(50) NOT NULL,
    `age` INT,
    `gender` ENUM('Male', 'Female', 'Other')
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;

INSERT INTO `student` (`name`, `age`, `gender`) VALUES ('张三', 20, 'Male');
INSERT INTO `student` (`name`, `age`, `gender`) VALUES ('李四', 22, 'Female');
INSERT INTO `student` (`name`, `age`, `gender`) VALUES ('王五', 21, 'Other');

示例二:查询数据

查询年龄大于 20 岁的学生信息。

SELECT * FROM `student` WHERE `age` > 20;

示例三:更新数据

将姓名为“张三”的学生信息的年龄更新为 22 岁。

UPDATE `student` SET `age` = 22 WHERE `name` = '张三';

示例四:删除数据

删除年龄小于 20 岁的学生信息。

DELETE FROM `student` WHERE `age` < 20;

通过以上示例,我们可以看到 MySQL 数据库的基本操作方式,包括创建表、插入数据、查询数据、更新数据和删除数据。这些操作是数据库开发中最基础、最常见的操作,掌握好这些操作对于开发者来说是非常重要的。

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

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

相关文章

linux查找指定目录下包含指定字符串文件,包含子目录

linux查找指定目录下包含指定字符串的文件&#xff0c;包含子目录 linux查找指定目录下包含指定字符串的指定文件格式&#xff0c;包含子目录 指定目录 cd /home/www/linux查找指定目录下包含指定字符串的文件&#xff0c;包含子目录 grep -r "指定字符串"注释 gr…

深入理解Happens-Before原则:以实例解析并发编程的基石

在最近的一次面试中面试官问到了Happens-Before原则&#xff0c;作此篇回顾下知识点。 在并发编程中&#xff0c;为了保证程序的正确性和可预测性&#xff0c;我们需要理解并遵循一系列内存访问规则。Happens-Before原则定义了线程间可见性和顺序性的保证。所有此篇文章将通过…

代码随想录训练营Day39:● 62.不同路径 ● 63. 不同路径 II

62.不同路径 题目链接 https://leetcode.cn/problems/unique-paths/description/ 题目描述 思路 dp[i][j] 表示的是走到&#xff08;i&#xff0c;j&#xff09;有多少种不同的路径 第一行和第一列都需要初始化为1&#xff0c;因为这些位置都只有一种路径 class Solution {…

头歌 实验一 关系数据库标准语言SQL湖北汽车工业学院 )

头歌 实验一 关系数据库标准语言SQL 制作不易&#xff01;点个关注呗&#xff01;为大家创造更多的价值&#xff01; 目录 头歌 实验一 关系数据库标准语言SQL**制作不易&#xff01;点个关注呗&#xff01;为大家创造更多的价值&#xff01;** 第一关&#xff1a;创建数据库第…

C++ :STL中deque的原理

deque的结构类似于哈希表&#xff0c;使用一个指针数组存储固定大小的数组首地址&#xff0c;当数据分布不均匀时将指针数组内的数据进行偏移&#xff0c;桶不够用的时候会像vector一样扩容然后将之前数组中存储的指针拷贝过来&#xff0c;从原理可以看出deque的性能是非常高的…

用Kimichat拆解雷军在小米汽车SU7发布会上的演讲技巧

小米SU7发布会可以说是非常成功。雷军的演讲技巧是发布会成功的重要因素之一&#xff0c;很值得借鉴学习。 可以借助Kimichat来深度拆解雷军在小米汽车SU7发布会上的演讲技巧。 在kimichat中输入提示词&#xff1a; 根据文件《雷军小米SU7发布会演讲文字稿》&#xff0c;总结…

C# 微软官方学习文档

链接&#xff1a;https://learn.microsoft.com/zh-cn/dotnet/csharp/ 在C#的学习过程中&#xff0c;我们可以参考微软官方的学习文档。它是一个免费的学习平台&#xff0c;提供了丰富的C#学习路径和教程&#xff08;如下图&#xff09;&#xff0c;对我们入门到高级应用开发都…

spring-boot之shiro安全框架配置使用

shiro架构&#xff08;外部&#xff09; shiro架构(内部) 具体API操作 获取当前的用户对象 Subject currentUser SecurityUtils.getSubject();通过当前用户拿到session Session session currentUser.getSession(); session.setAttribute("someKey", "aValu…

代码随想录算法训练营第二十五天| 回溯算法理论基础、LeetCode77.组合

一、216.组合总和III 题目链接/文章讲解/视频讲解&#xff1a; https://programmercarl.com/0216.%E7%BB%84%E5%90%88%E6%80%BB%E5%92%8CIII.html 状态&#xff1a;已解决 1.思路 做过77题&#xff08;上篇博客&#xff09;后&#xff0c;这道题也就不难了&#xff0c;无非是多…

为什么在Python中总是使用【字典】这种类型呢?

你好&#xff0c;我是安然无虞。 文章目录 创建字典新增字典元素update 方法 删除字典元素pop 方法popitem 方法 查找字典元素in 和 in not 操作符get 方法thisdict[key] 修改字典元素遍历字典元素for循环遍历keys方法values方法items方法 合并字典字典中的key 字典常用接口汇…

深入解析大语言模型显存占用:训练与推理

深入解析大语言模型显存占用&#xff1a;训练与推理 文章脉络 估算模型保存大小 估算模型在训练时占用显存的大小 全量参数训练 PEFT训练 估算模型在推理时占用显存的大小 总结 对于NLP领域的从业者和研究人员来说&#xff0c;有没有遇到过这样一个场景&#xff0c;你的…

Java8之接口默认方法

Java8之接口默认方法 一、介绍二、代码1、接口2、实现类3、测试代码4、效果 一、介绍 在Java8中&#xff0c;允许为接口方法提供一个默认的实现。必须用default修饰符标记这样一个方法。默认方法也可以调用其他方法 二、代码 1、接口 public interface PersonService {void…

基于ARM内核的智能手环(day1)

整体介绍 智能手环由 ARM 内核 MCU(Cortex-M 系列)、TFTLCD 屏、温湿度传感器、心率传感器、 加速度传感器等主要几部分构成。该平台硬件采用 STM32 芯片&#xff0c;通过对温湿度传感器的驱动编写&#xff0c;获取周围温湿度数据&#xff0c;并在 LCD 屏显示&#xff0c;通过对…

算法学习——LeetCode力扣动态规划篇8

算法学习——LeetCode力扣动态规划篇8 300. 最长递增子序列 300. 最长递增子序列 - 力扣&#xff08;LeetCode&#xff09; 描述 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删…

会话跟踪技术(Session 以及Cookie)

一: 前提概要 1>会话: 会话指的是用户打开浏览器, 访问某些web服务器资源的时候, 会话就会进行建立, 直到有一方断开, 那么会话才会结束, 需要注意的一点是, 一次的会话可以有多次的请求以及响应 2>会话跟踪: 是一种用于维护浏览器状态的方法, 服务器需要识别多次的请求,…

基于springboot的船舶维保管理系统

文章目录 项目介绍主要功能截图&#xff1a;部分代码展示设计总结项目获取方式 &#x1f345; 作者主页&#xff1a;超级无敌暴龙战士塔塔开 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、 简历模板、学习资料、面试题库【关注我&#xff0c;都给你】 &…

深入理解Docker-使用Docker有什么优势?

Docker是什么&#xff1f; 我们先给出Docker官网给出的定义来看下Docker是什么&#xff1f; Docker加速你应用的构建&#xff0c;共享和运行。 怎么来加速的那&#xff1f; without tedious envionment configuration or management 不用进行哪些乏味的环境配置和管理。 怎么…

U盘无法打开?教你几招轻松解决数据恢复难题

在日常生活和工作中&#xff0c;U盘作为移动存储设备&#xff0c;承载着我们大量的重要数据。然而&#xff0c;当某一天我们满怀期待地将U盘插入电脑&#xff0c;却发现它无法被正常打开时&#xff0c;那种焦虑和挫败感简直让人崩溃。我们可能会尝试各种方法&#xff0c;如重新…

java将文件转成流文件返回给前端

环境&#xff1a;jdk1.8&#xff0c;springboot2.5.3,项目端口号&#xff1a;9100 1.待转换的文件 一、路径 二、文件内容 2.controller中代码 package com.example.pdf.controller;import com.example.pdf.service.GetFileStreamService; import org.springframework.web.b…

Java项目修改了代码总是不生效咋么个事

1.问题发现 自己修改了yml配置文件&#xff0c;然后发现重启项目访问还是原来的配置 查看target下的class文件 发现&#xff0c;这个值并没有变&#xff0c;也就是我们修改完代码其实是没有触发编译文件重新生成class的&#xff0c;这时候我们可以手动解决&#xff0c;选择m…