mysql增删改查

目录

    • 一、准备工作
      • 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_64
 GPG  密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
解决
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

你可能感兴趣的:(mysql,linux基础,mysql)