mysql增删改查

news/2024/11/13 3:30:24/

目录

    • 一、准备工作
      • 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

http://www.ppmy.cn/news/538710.html

相关文章

申万宏源程序化接口的编写

一个程序化接口的编写,接口不实现另一个通达信数据接口的编写,接口&#xff0c;但可以继承多个其他通达信数据接口的编写,接口。程序化接口的编写,接口的多继承特点弥补了类的单继承。

客户视频|申银万国期货金老师:选择ZStack,省钱省力又安心

申银万国期货交易系统部网络工程师 金晓骏表示&#xff1a; ZStack的解决方案确实帮我们节省了很多硬性成本&#xff0c;对比从前的实体机柜&#xff0c;现在我们只要2-3个机柜就可以搞定100多台机器&#xff0c;而且机柜也是可以租赁的&#xff0c;为我们省了很多费用。 从维…

客户视频|申银万国期货曹总:选择ZStack的3个关键因素

申银万国期货信息技术总部总经理 曹骏表示&#xff1a; 金融机构在选择基础云平台时&#xff0c;要充分考虑云平台的稳定性、灵活性、可持续性、安全性及管理运维的便利性。而ZStack的云服务就能很好的帮助我们解决了这些问题&#xff0c;这也是我们选择ZStack的原因所在。 从…

客户视频|申银万国期货,从ZStack社区版到私有云

​申银万国期货上云前面临的问题&#xff1a; 每当业务系统上线&#xff0c;就需要部署一台硬件服务器&#xff0c;这过程中会涉及到许多硬件服务器的采购、审批等流程&#xff0c;整个项目的实施周期都会变得非常长。另外设备的上下架、调试给机房运维人员带来很繁重的工作量。…

【从零开始玩量化14】如何获取申万行业数据

前言 申万行业分类&#xff0c;是我非常喜欢用的一个股票行业分类标准&#xff0c;用它来分类股票&#xff0c;做行业对比&#xff0c;梳理产业链上下游结构&#xff0c;都是非常好的工具。 申万行业标准 申万行业标准&#xff0c;是申万宏源研究所&#xff0c;发的的权威行…

网络检测,其实我们可以做的更多

上海朗坤信息系统有限公司成立于1999年&#xff0c;一直专注于网络测试以及网络维护领域&#xff0c;为用户提供各类网络测试、网络验收、系统评测等产品解决方案。上海朗坤技术部自成立以来&#xff0c;不断同各行业用户开展业务合作&#xff0c;提供各类测试和检测服务&#…

新算力下的2019 AI

https://www.toutiao.com/a6642122950688375309/ ▌AI步入下半场 IT每十年一阶段形成六大阶段 每一轮科技革命都会带来新的赢家 基础设施—通用平台—应用层的发展路径 每一轮科技革命均印证基础设施先行的发展路径 基础设施与通用平台易形成寡头垄断 应用层的发展愈来愈依…

申万一级行业日指数_申万一级行业指数

申万一级行业指数 2009年10月13日 06:27来源&#xff1a; 中国证券报 【字体&#xff1a;大 中 小】 代码 名称 最新 涨跌 涨跌幅 年初至今涨跌幅 &#xff18;&#xff10;&#xff11;&#xff11;&#xff11;&#xff10;&#xff0e;&#xff33;&#xff29; 家用电器(申…