MySQL 数据库基础操作详解

news/2024/6/15 15:38:58/文章来源:https://blog.csdn.net/Z1tai/article/details/137182461

文章目录

  • 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.luyixian.cn/news_show_1035370.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式-结构型-享元模式Flyweight

享元模式的特点&#xff1a; 享元模式可以共享相同的对象&#xff0c;避免创建过多的对象实例&#xff0c;从而节省内存资源 使用场景&#xff1a; 常用于需要创建大量相似的对象的情况 享元接口类 public interface Flyweight { void operate(String extrinsicState); } 享…

计算机网络-TCP/IP 网络模型

TCP/IP网络模型各层的详细描述&#xff1a; 应用层&#xff1a;应用层为应用程序提供数据传输的服务&#xff0c;负责各种不同应用之间的协议。主要协议包括&#xff1a; HTTP&#xff1a;超文本传输协议&#xff0c;用于从web服务器传输超文本到本地浏览器的传送协议。FTP&…

计算机视觉之三维重建(5)---双目立体视觉

文章目录 一、平行视图1.1 示意图1.2 平行视图的基础矩阵1.3 平行视图的极几何1.4 平行视图的三角测量 二、图像校正三、对应点问题3.1 相关匹配法3.2 归一化相关匹配法3.3 窗口问题3.4 相关法存在的问题3.5 约束问题 一、平行视图 1.1 示意图 如下图即是一个平行视图。特点&a…

怎样在Linux搭建NTP服务器

搭建 NTP&#xff08;Network Time Protocol&#xff09;服务器可以帮助你在局域网内提供时间同步服务&#xff0c;让网络中的设备都使用统一的时间。以下是在 Linux 系统上搭建 NTP 服务器的基本步骤&#xff1a; 安装 NTP 服务器软件&#xff1a; 在终端中执行以下命令安装 N…

第二十章 红黑树

大家应该都接触过平衡二叉树(AVLTree)&#xff0c;了解到 AVL 树的性质&#xff0c;其实平衡二叉树最大的作用就是查找&#xff0c;AVL 树的查找、插入和删除在平均和最坏情况下都是 O(logn)。AVL 树的效率就是高在这个地方。如果在 AVL 树中插入或删除节点后&#xff0c;使得高…

JUC:synchronized优化——锁的升级过程(偏向锁->轻量级锁->重量级锁)以及内部实现原理

文章目录 锁的类型轻量级锁重量级锁自旋优化偏向锁偏向锁的细节偏向锁的撤销批量重偏向批量撤销锁消除 锁的类型 重量级锁、轻量级锁、偏向锁。 加锁过程&#xff1a;偏向->轻量级->重量级 轻量级锁 轻量级锁的使用场景&#xff1a;如果一个对象虽然有多线程要加锁&am…

HarmonyOS 应用开发之Actor并发模型对比内存共享并发模型

内存共享并发模型指多线程同时执行复数任务&#xff0c;这些线程依赖同一内存并且都有权限访问&#xff0c;线程访问内存前需要抢占并锁定内存的使用权&#xff0c;没有抢占到内存的线程需要等待其他线程释放使用权再执行。 Actor并发模型每一个线程都是一个独立Actor&#xf…

IDEA无法连接虚拟机中的Redis的解决方案,无法连接Jedis,无法ping通虚拟机的解决方案

首先&#xff0c;笔者先说明一下自身的情况&#xff0c;怎么连接都连不上&#xff0c;网上的教程全部都看了一遍&#xff0c;基本上没用得上的&#xff0c;这篇文章里面的解决方案包括了笔者能在网上找到了最全面的办法总结&#xff0c;最后终于是连上了 目录 一.连接Jedis出错…

大数据学习第十一天(复习linux指令3)

1、su和exit su命令就是用于账户切换的系统命令 基本语法&#xff1a;su[-] [用户名] 1&#xff09;-表示是否在切换用户后加载变量&#xff0c;建议带上 2&#xff09;参数&#xff1a;用户名&#xff0c;表示切换用户 3&#xff09;切换用户后&#xff0c;可以通过exit命令退…

数据结构——lesson12排序之归并排序

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是大耳朵土土垚~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#x…

【CANN训练营笔记】AscendCL图片分类应用(C++实现)

样例介绍 基于PyTorch框架的ResNet50模型&#xff0c;对*.jpg图片分类&#xff0c;输出各图片所属分类的编号、名称。 环境介绍 华为云AI1s CPU&#xff1a;Intel Xeon Gold 6278C CPU 2.60GHz 内存&#xff1a;8G NPU&#xff1a;Ascend 310 环境准备 下载驱动 wget ht…

小折叠手机无法使用车上的无线充电?车和手机都没问题

最近看到一个案例——一位新入手Pocket 2的机主&#xff0c;发现自己的手机无法在车上进行无线充电。检查了手机和汽车都没问题&#xff0c;折腾大半天结果发现是电磁线圈没对准无线充电的位置。 无线充电的原理是手机的无线充电电磁线圈对准电磁线圈&#xff0c;通过电磁波感…

Wireshark TS | HTTP 传输文件慢问题

问题背景 之前有几篇文章写过关于应用传输慢的问题&#xff0c;延用之前的老套话&#xff0c;应用传输慢是一种比较常见的问题&#xff0c;慢在哪&#xff0c;为什么慢&#xff0c;有时候光从网络数据包分析方面很难回答的一清二楚&#xff0c;毕竟应用的定义范围实在太广&…

汽车租赁(源码+文档)

汽车租赁&#xff08;小程序、ios、安卓都可部署&#xff09; 文件包含内容程序简要说明含有功能项目截图客户端登录界面首页订单个人信息我的界面新手指引注册界面车型选择支付界面修改信息 管理端用户管理订单管理分类管理 文件包含内容 1、搭建视频 2、流程图 3、开题报告 …

vue3+threejs新手从零开发卡牌游戏(二十四):添加p2战斗逻辑

用代码模拟p2战斗逻辑&#xff0c;按流程进行步骤拆分&#xff1a; 1.p2抽卡 2.p2召唤怪兽上场 3.p2战斗 其中战斗部分分为几种情况&#xff1a; 情况一&#xff1a;p2场上卡牌由大到小进行排序&#xff0c;按序轮询可以攻击的卡牌&#xff0c;然后攻击p1场上卡牌由大到小…

[蓝桥杯嵌入式]hal库 stm32 (DMA串口1收发,采用空闲中断方法)

前言&#xff1a; 本系列教程将 对应外设原理&#xff0c;HAL库与STM32CubeMX结合在一起讲解&#xff0c;使您可以更快速的学会各个模块的使用 所用工具&#xff1a; 1、芯片&#xff1a; STM32G431RBT6 2、STM32CubeMx软件 3、IDE&#xff1a; MDK-Keil软件 4、STM32G4xx…

supersqli-攻防世界

题目 加个报错 1 and 11 #没报错判断为单引号字符注入 爆显位 1 order by 2#回显正常 1 order by 3#报错 说明列数是2 尝试联合查询 -1 union select 1,2# 被过滤了 return preg_match("/select|update|delete|drop|insert|where|\./i",$inject); select|update|d…

SpringBoot+thymeleaf完成视频记忆播放功能

一、背景 1)客户要做一个视频播放功能,要求是系统能够记录观看人员在看视频时能够记录看到了哪个位置,在下次观看视频的时候能够从该位置进行播放。 2)同时,也要能够记录是谁看了视频,看了百分之多少。 说明:由于时间关系和篇幅原因,我们这里只先讨论第一个要求,第…

Lambda表达式,Stream流

文章目录 Lambda表达式作用前提函数式接口特点 语法省略模式和匿名对象类的区别 Stream流思想作用三类方法获取方法单列集合(Collection[List,Set双列集合Map(不能直接获取)数组同一类型元素(Stream中的静态方法) 常见的中间方法终结方法收集方法 Optional类 Lambda表达式 作用…

HarmonyOS 应用开发之通过标准化数据通路实现数据共享

场景介绍 在多对多跨应用数据共享的场景下&#xff0c;需要提供一条数据通路能够接入多个不同应用的数据并共享给其他应用进行读取。 UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化的数据通路&#xff0c;提供了标准化的数据接入与读取接口。 标准化数据通路的定…