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

前言

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

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

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

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

【死磕数据库专栏】MySQL对数据库增删改查的基本操作_第1张图片

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

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

文章目录

  • 前言
  • 一. 对默认数据库的说明
    • 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对数据库增删改查的基本操作_第2张图片

如果不用反引号,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的时候查看自己默认所在的位置:

【死磕数据库专栏】MySQL对数据库增删改查的基本操作_第3张图片
此时默认为空;

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

【死磕数据库专栏】MySQL对数据库增删改查的基本操作_第4张图片

  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博客
  • 每一个你想要学习的念头,都是未来的你像现在的你求救,不辜负未来,全力奔赴

你可能感兴趣的:(#,5,-,数据库入门到精通篇,数据库,mysql,运维,服务器)