目录
- 一、准备工作
- 1.1 安装或关闭以下服务
- 1.2 本次安装环境
- 2、MYSQL增加数据
- 2.1 准备工作
- 2.2 创建新表
- 2.3 查看新增表
- 2.4 MYSQL写入数据
- 3、删除数据
- 3.1 删除数据表中某列
- 3.2 删除数据表中的数据
- 3.3 删除数据表
- 4、MYSQL修改
- 4.1 修改数据表名称
- 4.2 修改数据表列名称
- 4.3修改数据库列的数据类型
- 5、MYSQL数据查看
- 5.1 基础查看命令
- 5.2 简单查询
- 6、 其他
- 6.1 备份与还原
- 6.2 报错
一、准备工作
1.1 安装或关闭以下服务
关闭防火墙等
linux时间校对
mysql8安装
1.2 本次安装环境
配置信息 | 说明 |
---|---|
linux系统版本 | CentOS7.4 |
内核 | ml-3.10.0 |
mysql版本 | 8.0.33 |
2、MYSQL增加数据
2.1 准备工作
mysql8安装
完成mysql8安装并登录数据库
创建数据表
mysql> CREATE DATABASE testdb;
进入指定数据库
mysql> use testdb;
Database changed
2.2 创建新表
创建数据表
mysql> CREATE TABLE 第99小学 (序号 INT NOT NULL AUTO_INCREMENT,姓名 VARCHAR(50) NOT NULL,年龄 INT NOT NULL,性别 ENUM('男', '女') NOT NULL,年级 VARCHAR(10) NOT NULL,PRIMARY KEY (序号)-> );
注:
- INT是用于创建一个整数类型的列,它可以存储整数值。INT是一种常用的数据类型,用于表示整数。
- NOT NULL是一种列约束(column constraint),它用于指定某一列在插入或更新数据时不能为空值。是一个列属性,用于指定一个自增长的整数列。当插入一条新的记录时,如果该列没有指定值,则系统会自动为其分配一个唯一的、递增的整数值。这个整数值就是该列的当前最大值加1。这个属性通常用于定义主键列,以确保每个记录都具有唯一的标识符。
- 5.0版本以上,varchar(50),代表50字符。即:无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放50个。
- ENUM是一种数据类型,它代表枚举类型。当你在数据库表中添加一个ENUM列时,你可以指定该列只能包含预定义的值中的一个。
- PRIMARY KEY 是一种约束(constraint),用于定义表中的主键。主键是用于唯一标识表中每一行数据的列或列组合。当一个表有主键时,它可以确保表中的每一行都有一个唯一的标识符,并且可以使用该标识符进行快速查找和访问。 PRIMARY KEY 约束还可以确保表中不会有重复的行。因此,添加 PRIMARY KEY 可以提高表的性能和数据完整性。
2.3 查看新增表
查看数据库中有哪些表
mysql> SHOW TABLES;
+------------------+
| 第99小学 |
+------------------+
显示表结构
mysql> desc 第99小学;
+--------+-----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-----------------------+------+-----+---------+----------------+
| 序号 | int | NO | PRI | NULL | auto_increment |
| 姓名 | varchar(50) | NO | | NULL | |
| 年龄 | int | NO | | NULL | |
| 性别 | enum('男','女') | NO | | NULL | |
| 年级 | varchar(10) | NO | | NULL | |
+--------+-----------------------+------+-----+---------+----------------+
2.4 MYSQL写入数据
插入数据
mysql> INSERT INTO 第99小学 (姓名, 年龄, 性别, 年级) VALUES ('张三', 8, '男', '二年级'),('李四', 9, '女', '三年级'),('王五', 10, '男', '四年级'),('赵六', 11, '女', '五年级');
验证数据是否插入成功
mysql> SELECT * FROM 第99小学;
+--------+--------+--------+--------+-----------+
| 序号 | 姓名 | 年龄 | 性别 | 年级 |
+--------+--------+--------+--------+-----------+
| 1 | 张三 | 8 | 男 | 二年级 |
| 2 | 李四 | 9 | 女 | 三年级 |
| 3 | 王五 | 10 | 男 | 四年级 |
| 4 | 赵六 | 11 | 女 | 五年级 |
+--------+--------+--------+--------+-----------+
3、删除数据
3.1 删除数据表中某列
在数据表中新增列
mysql> ALTER TABLE 第99小学
ADD COLUMN 备注信息 VARCHAR(100) ;
将新增的列删除
mysql> ALTER TABLE 第99小学 DROP COLUMN 备注信息;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
验证
mysql> DESC 第99小学;
3.2 删除数据表中的数据
删除数据表中王五
mysql> DELETE FROM 第99小学 where 姓名 = "王五";
验证
mysql> SELECT * FROM 第99小学;
3.3 删除数据表
删除数据表
mysql> DROP TABLE 第99小学;
验证
mysql> DESC 第99小学;
4、MYSQL修改
4.1 修改数据表名称
mysql> ALTER TABLE 第99小学 rename 第9小学;
验证
mysql> SHOW TABLES;
4.2 修改数据表列名称
mysql> ALTER TABLE 第9小学 RENAME COLUMN 年级 TO 几年级;
验证
mysql> SELECT * FROM 第9小学;
4.3修改数据库列的数据类型
mysql> ALTER TABLE 第9小学 MODIFY COLUMN 姓名 VARCHAR(100);
验证
mysql> DESC 第99小学;
5、MYSQL数据查看
5.1 基础查看命令
查看数据库版本
mysql> SELECT version();
查看数据库使用端口
mysql> show variables like 'port';
5.2 简单查询
查询数据表中年龄大于10岁
mysql> SELECT * FROM 第9小学 WHERE 年龄 > 10;
+--------+--------+--------+--------+-----------+
| 序号 | 姓名 | 年龄 | 性别 | 年级 |
+--------+--------+--------+--------+-----------+
| 4 | 赵六 | 11 | 女 | 五年级 |
+--------+--------+--------+--------+-----------+
查询数据表中男女同学数量
mysql> SELECT 性别, COUNT(1)数量 FROM 第9小学 GROUP BY 性别;
+--------+--------+
| 性别 | 数量 |
+--------+--------+
| 男 | 2 |
| 女 | 2 |
+--------+--------+
2 rows in set (0.00 sec)
查询数据表中男女同学平均年龄
mysql> SELECT 性别, AVG(年龄) 平均年龄 FROM 第9小学 GROUP BY 性别;
+--------+--------------+
| 性别 | 平均年龄 |
+--------+--------------+
| 男 | 9.0000 |
| 女 | 10.0000 |
+--------+--------------+
2 rows in set (0.00 sec)
查询数据表,按照年龄降序排序,年纪升序排序(DESC降,ASC升)
mysql> SELECT * FROM 第9小学 ORDER BY 年龄 DESC, 几年级 ASC;
+--------+--------+--------+--------+-----------+
| 序号 | 姓名 | 年龄 | 性别 | 几年级 |
+--------+--------+--------+--------+-----------+
| 4 | 赵六 | 11 | 女 | 五年级 |
| 3 | 王五 | 10 | 男 | 四年级 |
| 2 | 李四 | 9 | 女 | 三年级 |
| 1 | 张三 | 8 | 男 | 二年级 |
+--------+--------+--------+--------+-----------+
查询数据表中含有王姓的同学
mysql> SELECT 序号, 姓名 FROM 第9小学 WHERE 姓名 LIKE '王%';
+--------+--------+
| 序号 | 姓名 |
+--------+--------+
| 3 | 王五 |
+--------+--------+
1 row in set (0.00 sec)
新建一个表
和上面99小学一样 改成中学
6、 其他
6.1 备份与还原
在操作mysql前,一定要记得备份数据!!
备份
登陆服务器,确认要备份的数据库
mysqldump -u root -p testdb 第9小学 > 06-22backup.sql
- 这将把 “testdb” 数据库"第9小学"数据表导出为名为 “06-22backup.sql” 的 SQL 文件。其中如果不添加“第9小学”,为空则整个数据库备份。
要一次备份多个数据库
mysqldump -u root -p --databases testdb testdb2 testdb3 > 06-22backup.sql
还原
直接覆盖老数据,也可以在自建一个库还原查看
mysql -u root -p testdb < 06-22backup.sql
在进行MySQL数据还原时,需要注意以下事项:
- 备份文件和还原文件必须是同一版本的MySQL,否则会出现兼容性问题。
- 在还原数据之前,需要先创建好相应的数据库和表。
- 还原数据前,最好先备份一份原始数据,以防还原出错导致数据丢失。
- 在还原数据时,需要使用正确的命令和参数,以确保数据能够被正确还原。
- 还原数据时,需要确保MySQL服务已经启动,并且具有足够的权限。
- 如果还原数据过程中出现错误,需要及时查找并修复错误,以确保数据能够被完整地还原。
总之,在进行MySQL数据还原时,需要认真对待,按照正确的步骤进行操作,以确保数据能够被完整地还原。
6.2 报错
安装mysql8失败,之前测试安装正常,本次安装时报错
源 "MySQL 8.0 Community Server" 的 GPG 密钥已安装,但是不适用于此软件包。请检查源的公钥 URL 是否配置正确。失败的软件包是:mysql-community-common-8.0.33-1.el7.x86_64GPG 密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
解决
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022