【死磕数据库专栏】MySQL对数据库增删改查的基本操作

news2024/11/18 11:48:09

前言

本文是专栏【死磕数据库专栏】的第二篇文章,主要讲解MySQL语句最常用的增删改查操作。我一直觉得这个世界就是个程序,每天都在执行增删改查。

MySQL 中我们最常用的增删改查,对应SQL语句就是 insert 、delete、update、select,这种操作数据的语句,又叫Data Manipulation Statements(数据操作语句)。

当然今天我们主要探讨对数据库的增删改查操作,对表的操作,我们放在下篇文章进行。

🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,双一流院校计算机专业,阿里云社区专家博主😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘

在这里插入图片描述

MySQL专栏目前更文进度(表格内不代表全部内容,后续会持续增加):

序号题目更新进度
1在centos7中安装MySQL5.7版本实战已更新
2在centos7中安装MySQL8版本实战
3.使用dockers安装MySQL实战
4MySQL对数据库的增删改查操作已更新
5MySQL对数据库表的增删改查
6SQL语句进阶管理

文章目录

  • 前言
  • 一. 对默认数据库的说明
    • 1.1 MySQL数据库
    • 1.2 performance_schema 库
    • 1.3 sys 库
  • 二. MySQL数据库的操作
    • 2.1 创建数据库
    • 2.2 选中某个数据库 use
    • 2.3 删除数据库
    • 2.4 修改数据库名字
  • 三. 其他操作方法
  • 总结

一. 对默认数据库的说明

先登录数据库然后执行show命令,查看数据库的命令是 `show databases

[root@mufenggrow ~]# mysql -uroot -pMufenggrow123!
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.41 MySQL Community Server (GPL)

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mufeng             |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> 

从查询出来的表可以看到,一共有四个表,其中mufeng表是我自己创建的,其他四个是系统默认创建:

1.1 MySQL数据库

MySQL 系统自带的核心数据库,它存储了MySQL的用户账户和权限信息,一些存储过程、事件的定 义信息,一些运行过程中产生的日志信息,一些帮助信息以及时区信息等

  • information_schema数据库

information_schema也是MySQL系统自带的数据库,主要保存MySQL数据库服务器的系统信息,比如数据库的名称、数据表的名称、字段名称、存取权限、数据文件、所在的文件夹和系统使用的文件夹,还包括有哪些表,哪些视图,哪些触发器,列,索引。

这些信息并不是真实的用户数据,而是一些 描述性信息,有时候也称之为 元数据 。在系统数据库 info rmation_schema 中提供了一些以
innodb_sys 开头的表,用于表示内部系统表。

1.2 performance_schema 库

performance [pəˈfɔ:məns] 性能

"performance_schema"是MySQL系统自带的数据库,主要保存MySQL服务器运行过程中的一些状态信息,可以用来监控MySQL的各类性能指标。包括统计最近执行了哪些语句,在执行过程的每个阶段都 花费了多长时间,内存的使用情况等信息。

这个库是从 MySQL5.5之后开始增加的。

1.3 sys 库

这个库是MySQL5.7版本之后增加的。

"sys"数据库是MySQL系统自带的数据库,主要作用是通过视图的形式把information_schema和performance_schema结合起来以一种更容易被理解的方式展示MySQL数据库服务器的各类性能指标,帮助系统管理和开发人员监控 MySQL的技术性能。

二. MySQL数据库的操作

2.1 创建数据库

语法:create database 数据库名;

mysql> create database mufeng;
Query OK, 1 row affected (0.01 sec)

数据库名字也是有自己的规范的,比如当数据库有横线的时候会报错:

mysql> create database mufeng-grow
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-grow' at line 1

对于这种因为名字出现的错误,我们可以使用 反引号来解决:

mysql> create database  `mufeng-grow`
    -> ;
Query OK, 1 row affected (0.00 sec)

mysql> 

反引号是为了区分MYSQL的保留字与普通字符而引入的符号。

比如create是一个保留字:
在这里插入图片描述

如果不用反引号,MYSQL将把create视为保留字而导致出错,所以,有MYSQL保留字作为字段的,必须加上反引号来区分。

引号一般用在字段的值,如果字段值是字符或字符串,则要加引号,如:select=‘字段值’

不加反引号建的数据库或表不能包含MYSQL保留字,否则出错。

我们经常说,Linux中一切皆为文件,那创建的沐风数据库在哪里呢?

[root@mufenggrow ~]# find / -name mufeng
/var/lib/mysql/mufeng

可以看到这个目录下都是我们创建的数据库和系统创建的数据库:

在这里插入图片描述

暂时我们先知道创建的文件都在这里就可以了,后面我们来看看这些表结构和数据。

2.2 选中某个数据库 use

我们要选择某个数据库,可以使用use语句,use语句会选择一个数据库成为当前的数据库,之后的操作就在选中的数据库里操作。

mysql> use mufeng;
Database changed
mysql> show tables;
Empty set (0.00 sec)

mysql> 

可以使用select查看当前所在的位置:

mysql> select database();
+------------+
| database() |
+------------+
| mufeng     |
+------------+
1 row in set (0.00 sec)

mysql> 

如果什么数据库也没有选择,默认显示的是NULL,Null意味着没有选择数据库;

2.3 删除数据库

删除数据一定要慎重, 这里我们可以使用drop命令删除数据库,比如刚刚的mufeng-grow,我们来把它删除:

mysql> select database();
+------------+
| database() |
+------------+
| mufeng     |
+------------+
1 row in set (0.00 sec)

mysql> 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| create             |
| mufeng             |
| mufeng-grow        |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
7 rows in set (0.00 sec)

mysql> drop database `mufeng-grow`;
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| create             |
| mufeng             |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

可以看到删除的时候没有任何提示,直接就删除了,所以删除数据库一定要慎重!

2.4 修改数据库名字

MySQL 之前提供了一个 rename database db_old to db_new 的命令来直接对数据库改名,可能由于实现的功能不完备(比如,这条命令可能是一个超大的事务,或者是由于之前的表很多还是 MyISAM 等),后来的版本直接取消了这条命令。

  1. mysqldump 导入导出的过程中改名

用 mysqldump 工具,在旧库导出再往新库导入(最原始、最慢、最容易想到)的方法:旧库 yttdb_old 导出(包含的对象:表、视图、触发器、事件、存储过程、存储函数)

这种方法适合数据量小的时候用。

  1. 改整库的表名

利用 MySQL 更改表名的方法来批量把旧库的所有表依次遍历,改名为新库的表。

可以写个脚本批量改,适合数据量大的时候用。

三. 其他操作方法

  1. 刚刚登录MySQL的时候查看自己默认所在的位置:

在这里插入图片描述
此时默认为空;

  1. 在命令行选择默认的数据库

在这里插入图片描述

  1. 使用IF EXISTS 子句以避免删除不存在的数据库时出现的MySQL错误信息
mysql> drop database aa;
ERROR 1008 (HY000): Can't drop database 'aa'; database doesn't exist
mysql> drop database  if exists aa;
Query OK, 0 rows affected, 1 warning (0.00 sec)

总结

以上就是对数据库的增删改查,下篇文章我们开始对数据库表进行增删改查。

  • 💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!
  • 💕 博客主页:mufeng.blog.csdn.net
  • 💕 本文由沐风晓月原创,首发于CSDN博客
  • 💕 每一个你想要学习的念头,都是未来的你像现在的你求救,不辜负未来,全力奔赴

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

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

相关文章

亚马逊侵权了怎么办?不要恐慌,这套申诉方法教你解决

侵权,在亚马逊可是大忌!在亚马逊平台上,卖家侵权行为被认为是极为严重的违规行为。亚马逊采取的对待侵权的措施通常相当严厉,从轻者的产品下架到重者直接被禁售。所以如果你的产品涉嫌侵犯知识产权,那么想要在亚马逊上…

软件质量保证与测试(测试部分)

第九章、软件测试过程 9.1 计算机软件的可靠性要素 9.2 软件测试的目的和原则 9.3 软件测试过程 9.4 软件测试与软件开发的关系 9.7 测试工具选择 9.7.1 白盒测试工具 9.7.2 黑盒测试工具 第十章、黑盒测试 10.1 黑盒测试的基本概念 10.2 等价类划分 10.2.2 划分等价类的方法…

MinGW编译log4cpp

log4cpp的官网和下载地址 https://log4cpp.sourceforge.net/ https://sourceforge.net/projects/log4cpp/files/ 使用MinGW编译log4cpp 进入到log4cpp的源码目录 cd F:\3rdParty\Log\log4cpp\log4cpp-1.1.3\log4cpp 创建文件夹 mkdir build && mkdir outcd build …

死磕Spring,什么是SPI机制,对SpringBoot自动装配有什么帮助

文章目录如果没时间看的话,在这里直接看总结一、Java SPI的概念和术语二、看看Java SPI是如何诞生的三、Java SPI应该如何应用四、从0开始,手撸一个SPI的应用实例五、SpringBoot自动装配六、Spring SPI机制与Spring Factories机制做对比七、这里是给我自…

软件测试5年,历经3轮面试成功拿下华为Offer,24K/16薪不过分吧

前言 转眼过去,距离读书的时候已经这么久了吗?,从18年5月本科毕业入职了一家小公司,到现在快5年了,前段时间社招想着找一个新的工作,前前后后花了一个多月的时间复习以及面试,前几天拿到了华为的…

redis(4)String字符串

前言 Redis中有5大数据类型,分别是字符串String、列表List、集合Set、哈希Hash、有序集合Zset,本篇介绍Redis的字符串String Redis字符串 String是Redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value…

Python使用百度通用API进行翻译

想汉化StarUML这个软件,感觉工作量太大,想要用Python自动翻译。 结果网上找的一个个用不了,或者用一会儿就断。 于是自己手写了一个简单的,只有两个类:APIConfig和Translater 使用 demo my_api_config APIConfig(…

指针的进阶——(1)

本次讲解重点: 1、字符指针 2、数组指针 3、指针数组 4、数组传参和指针传参 5、函数指针 关于指针这个知识点的主题,我们在前面已经初级阶段已经对指针有了大致的理解和应用了。我们知道了指针的概念: 1、指针就是地址,但口…

PHP基础(3)

PHP基础表单提交文件处理PHP连接数据库异常抛出表单提交 PHP通过全局变量 $_GET和 $_POST来收集表单数据。 接下来改用post方式进行提交,再次查看是否隐藏了提交的内容: 发现提交的信息已经不在链接之中进行显示了。 GET与POST区别在于一个会在连接…

番外9:使用ADS对射频功率放大器进行非线性测试1(以IMD3测试为例)

番外9:使用ADS对射频功率放大器进行非线性测试1(以IMD3测试为例) 一般可以有多种方式对射频功率放大器的非线性性能进行测试,包括IMD3、ACPR、ACLR等等,其中IMD3的实际测试较为简单方便不需要太多的仪器。那么在ADS中…

VUE的生命周期- VUE2.x

1.生命周期有哪些VUE2.x 自带八个:beforeCreate,created,beforeMount,mounted,beforeUpdate,updated,beforeDestroy,destroyed2.一旦进入组件会执行哪些生命周期beforeCreate,created,beforeMount,mountedbeforeCreate,没有DOM($el),没有data,不能拿到方…

飞桨-鹏城云脑发行版亮相第四届启智开发者大会,软硬一体化助力科研

2月24日,主题为“算网筑基、开源启智、AI赋能”的第四届OpenI/O启智开发者大会在深圳开幕,大会由科技部指导、鹏城实验室与新⼀代人工智能产业技术创新战略联盟(AITISA)主办,科技部高新司副司长梅建平,中国…

Simple RNN、LSTM、GRU序列模型原理

一。循环神经网络RNN 用于处理序列数据的神经网络就叫循环神经网络。序列数据说直白点就是随时间变化的数据,循环神经网络它能够根据这种数据推出下文结果。RNN是通过嵌含前一时刻的状态信息实行训练的。 RNN神经网络有3个变种,分别为Simple RNN、LSTM、…

ESP-C3入门13. SoftAP模式

ESP-C3入门13. SoftAP模式一、 ESP32-C3 WIFI的工作模式二、SoftAP配置1. wifi_config_t 结构体2. wifi_event_handler 事件(1) esp_event_handler_instance_register 注册事件(2) system_event_sta_connected_t 结构体3. 关闭SoftAP三、示例1. main.c2. wifi_ap.h3. wifi_ap.…

自动化构建部署devops(CICD)--敏捷开发

一。gitlab结合jenkins自动化项目构建部署 代替早期的手动部署服务,写文档,java-jar启动啦。麻烦还容易出错。 二。DevOps 三。部署流水线 四,页面工具(类似于ones) 1,开发组长在页面添加项目成员&#…

integrationobjects点com all OPC Crack

Integration Objects 是世界领先的系统集成商和解决方案提供商,专门从事运营和制造智能、高级分析、异常事件的预防性检测、在线诊断和根本原因分析、OPC 连接、工厂自动化、知识管理解决方案、网络安全和企业电力和公用事业以及全球流程和制造行业的集成。 OPC UA …

storybook使用info插件报错

报错内容: RangeErrorMaximum call stack size exceededCall StackprettyPrintvendors-node_modules_pmmmwh_react-refresh-webpack-plugin_lib_runtime_RefreshUtils_js-node_mod-4ff2dd.iframe.bundle.js:160:27undefinedvendors-node_modules_pmmmwh_react-refresh-webpack-…

结构方程模型全流程

案例与数据 某研究者想要研究关于教师懈怠感的课题,教师懈怠感是指教师在教育情境的要求下,由于无法有效应对工作压力与挫折而产生的情绪低落、态度消极状态,这种状态甚至会引发心理、生理的困扰,终至对教育工作产生厌倦&#xf…

英语二-议论文写作词汇、话题、模板、范文参考

1. 词汇多样性 1. 表示因果关系 2. 表示转斩关系 3. 表示顺序关系 4. 表示递进关系 5. 表示对比关系 6. 表示总结关系 7. 连接论据的词 2. 高频考试话题 1. 有益身心的短语 2. 提高能力的短语 3. 写作模板 支持原创作文,如果不会,请牢记模板。 如果嫌…

Android源码分析 —— Activity栈管理(基于Android8)

0. 写在前面 本文基于 Android8.0源码,和Android9.0大同小异,但和Android10.0差别非常大!新版改用ATM来管理Activity的启动,Activity的生命周期也通过XXXItem来管理。由于我分析的Activity启动流程就是基于Android8/9的&#xff…