前言
本文是专栏【死磕数据库专栏】的第二篇文章,主要讲解MySQL语句最常用的增删改查操作。我一直觉得这个世界就是个程序,每天都在执行增删改查。
MySQL 中我们最常用的增删改查,对应SQL语句就是 insert 、delete、update、select,这种操作数据的语句,又叫Data Manipulation Statements(数据操作语句)。
当然今天我们主要探讨对数据库的增删改查操作,对表的操作,我们放在下篇文章进行。
🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,双一流院校计算机专业,阿里云社区专家博主😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘
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将把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 等),后来的版本直接取消了这条命令。
- mysqldump 导入导出的过程中改名
用 mysqldump 工具,在旧库导出再往新库导入(最原始、最慢、最容易想到)的方法:旧库 yttdb_old 导出(包含的对象:表、视图、触发器、事件、存储过程、存储函数)
这种方法适合数据量小的时候用。
- 改整库的表名
利用 MySQL 更改表名的方法来批量把旧库的所有表依次遍历,改名为新库的表。
可以写个脚本批量改,适合数据量大的时候用。
三. 其他操作方法
- 刚刚登录MySQL的时候查看自己默认所在的位置:
此时默认为空;
- 在命令行选择默认的数据库
- 使用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博客
- 💕 每一个你想要学习的念头,都是未来的你像现在的你求救,不辜负未来,全力奔赴