MySQL增删改查
1.创建数据库: 使用CREATE DATABASE
语句
CREATE DATABASE school;show databases; 列出MySQL数据库管理系统的数据库列表
2.切换数据库: 使用USE
语句选择要操作的数据库
USE school;select database (); 当前所在库mysql> select version (); 查看版本号
+------------+
| version () |
+------------+
| 8.0.20 |
+------------+
1 row in set (0.00 sec)show variables like 'datadir'; 在数据库中查看数据库目录存储位置mysql> show variables like 'datadir';
+---------------+--------------+
| Variable_name | Value |
+---------------+--------------+
| datadir | /data/mysql/ |
+---------------+--------------+
1 row in set (0.01 sec)如果使用的是InnoDB存储引擎.frm表结构文件.ibd表内数据(表数据和索引文件)一起存放在data目录下。
MySQL 8.0开始,.frm文件不再单独存在,而是被整合到了.ibd文件中。
3.创建表: 使用CREATE TABLE
语句创建表
1-create table 表名 (id int, name char(10));2-CREATE TABLE student (id INT PRIMARY KEY,name VARCHAR(10),gender VARCHAR(10),age INT
);3-create table student2 (id int primary KEY AUTO_INCREMENT,name varchar(50) not null,gender varchar(5) not null,age int not null
);drop table 表名; 删除所在库中的数据表delete from 表名; 清除表内容不删除结构show tables; 查看所在库的表有哪些select * from student; 查看指定表
4.查看当前表结构
DESCRIBE 表名; 查看当前表结构
desc student2; 显示数据表的结构mysql> DESCRIBE student2;
+--------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| name | varchar(10) | NO | | NULL | |
| gender | varchar(10) | NO | | NULL | |
| age | int | NO | | NULL | |
| phone | varchar(20) | YES | | 未知 | |
+--------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
5.表结构 增加删除指定列
在表中增加电话列及数据类型 默认为null
alter table student2 add column phone varchar(20); mysql> select * from student;
+----+------+--------+-----+-------+
| id | name | gender | age | phone |
+----+------+--------+-----+-------+
| 1 | jack | male | 22 | NULL |
| 2 | mak | male | 17 | NULL |
| 4 | lily | male | 18 | NULL |
+----+------+--------+-----+-------+
3 rows in set (0.00 sec)在表中增加电话列及数据类型 列的默认值为‘未知’
ALTER TABLE student ADD COLUMN phone VARCHAR(20) DEFAULT '未知';mysql> select * from student2;
+----+------+--------+-----+--------+
| id | name | gender | age | phone |
+----+------+--------+-----+--------+
| 1 | tom | male | 21 | 未知 |
| 2 | lily | Female | 21 | 未知 |
| 3 | lucy | Female | 17 | 未知 |
| 4 | bibo | male | 17 | 未知 |
+----+------+--------+-----+--------+
4 rows in set (0.00 sec)alter table student2 add column address varchar(255); 增加student2表地址列列 地址
alter table student2 drop column address; 删除student2表地址列
6.表结构 修改
mysql> select * from student;
+----+------+--------+-----+-------+
| id | name | gender | age | phone |
+----+------+--------+-----+-------+ 电话列修改为地址
| 1 | jack | male | 22 | NULL |
| 4 | lily | male | 18 | NULL |
+----+------+--------+-----+-------+
2 rows in set (0.01 sec)mysql> alter table student change phone address varchar(50);
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0mysql> select * from student;
+----+------+--------+-----+---------+
| id | name | gender | age | address |
+----+------+--------+-----+---------+
| 1 | jack | male | 22 | NULL |
| 4 | lily | male | 18 | NULL |
+----+------+--------+-----+---------+
2 rows in set (0.00 sec)mysql> alter table student modify address char(50); 修改字段数据类型
Query OK, 2 rows affected (0.02 sec)
Records: 2 Duplicates: 0 Warnings: 0mysql> desc student;
+---------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| name | varchar(50) | NO | | NULL | |
| gender | varchar(5) | NO | | NULL | |
| age | int | NO | | NULL | |
| address | char(50) | YES | | NULL | |
+---------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)https://www.runoob.com/mysql/mysql-data-types.html 菜鸟教程
7.修改数据表名
rename table 表名 to 新表名;show tables; 查看修改结果
8.插入数据: 使用INSERT INTO
语句向表中插入数据
insert into 表名 set id=1, name='lee', age=21;INSERT INTO student (id, name, gender, age) VALUES (1, 'John', male, 30);INSERT INTO student (id, name, gender, age) VALUES (1, 'lily', Female, 31);update 表名 set id=8 where name='lee'; 修改lee的id编号为8
9.查询数据表: 使用SELECT
语句从表中检索数据
SELECT * FROM student;select id, name from student where gender ='Female'; 查询所有女生的学号和姓名select id,name from student2 where age >20; 查询年龄大于20的id和姓名
10.更改数据: 使用UPDATE
语句更新表中的数据
UPDATE student SET age = 35 WHERE id = 1; 修改id为1的年龄为35
11.删除数据: 使用DELETE FROM
语句从表中删除数据
DELETE FROM student WHERE id = 1;
delete from 表名 where id=1; 删除id=1行的数据delete from student where age <18; 删除年龄小于 18 岁的学生
12. 删除表
drop table 表名; 删除所在库中的数据表delete from 表名; 清除表内容不删除结构
13.查询过滤条件: 使用WHERE
子句指定查询的过滤条件
SELECT * FROM student WHERE age > 25; 查询年龄大于25的
14.排序: 使用ORDER BY
子句对查询结果进行排序
SELECT * FROM student ORDER BY age DESC; 按年龄从大到小
15.聚合函数: 使用聚合函数如SUM
、AVG
、COUNT
等对数据进行统计
SELECT COUNT(*) FROM student; 统计student表人数SUM() 求和
AVG() 平均值
COUNT() 统计
16.分组: 使用GROUP BY
子句对数据进行分组
SELECT department, AVG(salary) FROM employees GROUP BY department;employees 员工 表
department 部门 列
AVG() 函数计算每个部门的平均薪资
salary 工资
GROUP BY 按部门分组数据从employees表中选择department列。
对salary列使用AVG()聚合函数计算每个部门的平均薪资。
使用GROUP BY department对结果进行分组,确保每个部门只计算一次平均薪资。
执行这个查询后,您将得到一个结果集,其中包含每个部门的名称和对应的平均薪资。
17.查看表结构SQL语句
mysql> show create table student2;
+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| student2 | CREATE TABLE `student2` (`id` int NOT NULL AUTO_INCREMENT,`name` varchar(10) NOT NULL,`gender` varchar(10) NOT NULL,`age` int NOT NULL,`phone` varchar(20) DEFAULT '未知',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
练习用表
CREATE database company;mysql> CREATE TABLE company.employee(id int primary key AUTO_INCREMENT not null,name varchar(30) not null,age int,sex enum('male','female') default 'male' not null,hire_date date not null,post varchar(50) not null,job_description varchar(100),salary double(15,2) not null,office int,dep_id int);INSERT INTO company.employee(name, age, sex, hire_date, post, job_description, salary, office, dep_id) VALUES
('jack', 31, 'male', '20180202', 'instructor', 'teach', 5000, 501, 100),
('tom', 32, 'male', '20180203', 'instructor', 'teach', 5500, 501, 100),
('robin', 33, 'male', '20180202', 'instructor', 'teach', 8000, 501, 100),
('alice', 34, 'female', '20180202', 'instructor', 'teach', 7200, 501, 100),
('wing', 35, 'male', '20180202', 'hr', 'hrcc', 600, 502, 101),
('harry', 36, 'male', '20180202', 'hr', NULL, 6000, 502, 101),
('emma', 37, 'female', '20180206', 'sale', 'salecc', 20000, 503, 102),
('christine', 38, 'female', '20180205', 'sale', 'salecc', 2200, 503, 102),
('zhuzhu', 39, 'male', '20180205', 'sale', NULL, 2200, 503, 102),
('gougou', 40, 'male', '20180205', 'sale', '', 2200, 503, 102);
查看表结构
mysql> desc employee;
+-----------------+-----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+-----------------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| name | varchar(30) | NO | | NULL | |
| age | int | YES | | NULL | |
| sex | enum('male','female') | NO | | male | |
| hire_date | date | NO | | NULL | |
| post | varchar(50) | NO | | NULL | |
| job_description | varchar(100) | YES | | NULL | |
| salary | double(15,2) | NO | | NULL | |
| office | int | YES | | NULL | |
| dep_id | int | YES | | NULL | |
+-----------------+-----------------------+------+-----+---------+----------------+
10 rows in set (0.00 sec)
查看表
mysql> mysql> select * from employee;
+----+-----------+------+--------+------------+------------+-----------------+----------+--------+--------+
| id | name | age | sex | hire_date | post | job_description | salary | office | dep_id |
+----+-----------+------+--------+------------+------------+-----------------+----------+--------+--------+
| 1 | jack | 31 | male | 2018-02-02 | instructor | teach | 5000.00 | 501 | 100 |
| 2 | tom | 32 | male | 2018-02-03 | instructor | teach | 5500.00 | 501 | 100 |
| 3 | robin | 33 | male | 2018-02-02 | instructor | teach | 8000.00 | 501 | 100 |
| 4 | alice | 34 | female | 2018-02-02 | instructor | teach | 7200.00 | 501 | 100 |
| 5 | wing | 35 | male | 2018-02-02 | hr | hrcc | 600.00 | 502 | 101 |
| 6 | harry | 36 | male | 2018-02-02 | hr | NULL | 6000.00 | 502 | 101 |
| 7 | emma | 37 | female | 2018-02-06 | sale | salecc | 20000.00 | 503 | 102 |
| 8 | christine | 38 | female | 2018-02-05 | sale | salecc | 2200.00 | 503 | 102 |
| 9 | zhuzhu | 39 | male | 2018-02-05 | sale | NULL | 2200.00 | 503 | 102 |
| 10 | gougou | 40 | male | 2018-02-05 | sale | | 2200.00 | 503 | 102 |
+----+-----------+------+--------+------------+------------+-----------------+----------+--------+--------+
10 rows in set (0.00 sec)
mysql> select job_description, avg(salary) from employee group by job_description;
+-----------------+--------------+
| job_description | avg(salary) |
+-----------------+--------------+
| teach | 6425.000000 |
| hrcc | 600.000000 | 不同职位的平均薪资
| NULL | 4100.000000 |
| salecc | 11100.000000 |
| | 2200.000000 |
+-----------------+--------------+
5 rows in set (0.01 sec)
mysql> select job_description, sum(age) from employee8 group by job_description;
+-----------------+----------+
| job_description | sum(age) |
+-----------------+----------+
| teach | 130 |
| hrcc | 35 | 不同部门人员年龄的和
| NULL | 75 |
| salecc | 75 |
| | 40 |
+-----------------+----------+
5 rows in set (0.01 sec)
mysql> select post, count(*) from employee group by post;
+------------+----------+
| post | count(*) |
+------------+----------+
| instructor | 4 |
| hr | 2 | 统计员工表不同职位的人数
| sale | 4 |
+------------+----------+
3 rows in set (0.00 sec)
相关文章:
MySQL增删改查
1.创建数据库: 使用CREATE DATABASE语句 CREATE DATABASE school;show databases; 列出MySQL数据库管理系统的数据库列表 2.切换数据库: 使用USE语句选择要操作的数据库 USE school;select database (); 当前所在库mysql> select…...

Java跳出循环的四种方式
1、continue,break,return continue:跳出当前层循环的当前语句,执行当前层循环的下一条语句。 continue标签 break:跳出当前层循环。 break标签:多层循环时,跳到具体某层循环。 return:结束所有循环…...

直播预告|飞思实验室暑期公益培训7月10日正式开启,报名从速!
01 培训背景 很荣幸地向大家宣布:卓翼飞思实验室将于7月10日正式开启为期两个月的暑期公益培训!本次培训为线上直播,由中南大学计算机学院特聘副教授,RflySim平台总研发负责人戴训华副教授主讲。 培训将基于“RflySim—智能无人…...

3-2 梯度与反向传播
3-2 梯度与反向传播 主目录点这里 梯度的含义 可以看到红色区域的变化率较大,梯度较大;绿色区域的变化率较小,梯度较小。 在二维情况下,梯度向量的方向指向函数增长最快的方向,而其大小表示增长的速率。 梯度的计算 …...

【qt】如何获取本机的IP地址?
需要用到这个类QHostInfo和pro里面添加network模块 用这个类的静态函数forName()来获取该主机名的信息 返回的就是这个类 这个QHostInfo类就包括主机的IP地址信息 用静态函数addresses()来获取 返回的是一个QHostAddress的容器 QList<QHostAddress>addrList hostIn…...
芯片的PPA-笔记
写在前面:这个仅记录自己对芯片PPA的一些思考,不一定正确,还请各位网友思辨的看待,欢迎大家谈谈自己的想法。 1 此次笔记的起因 记录的原因:自己在整理这段时间的功耗总结,又看到工艺对功耗的影响&#x…...

2024阿里巴巴全球数学竞赛决赛中的数列题解析(分析与方程方向第4题)
早点关注我,精彩不错过! 上周给大家聊了一道有LLM背景的阿里数赛题,详情请戳: 2023阿里巴巴全球数学竞赛决赛中的LLM背景题解析(应用与计算数学部分第2题) 看起来大家还比较喜欢看这种具体问题求解和思路分…...

学java的第3天 后端商城小程序工作
1.数据库的大坑 特殊字段名 ’我的图片表中有一个字段是描述我写成desc了,正好是mysql中的关键字 就不能使用了 2.后端编写 2.1可以把请求分开 在商品浏览页中 只显示商品的大致信息 当用户再点击其他按钮时在发出请求 2.2把请求合并 把数据整合到一起 利用ass…...

DevOps实战:使用GitLab+Jenkins+Kubernetes(k8s)建立CI_CD解决方案
一.系统环境 本文主要基于Kubernetes1.21.9和Linux操作系统CentOS7.4。 服务器版本docker软件版本Kubernetes(k8s)集群版本CPU架构CentOS Linux release 7.4.1708 (Core)Docker version 20.10.12v1.21.9x86_64CI/CD解决方案架构图:CI/CD解决方案架构图描述:程序员写好代码之…...

Apache Seata配置管理原理解析
本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 Apache Seata配置管理原理解析 说到Seata中的配置管理,大家可能会想到Seata中适配…...

深入理解C# log4Net日志框架:功能、使用方法与性能优势
文章目录 1、log4Net的主要特性2、log4Net框架详解配置日志级别 3、log4Net的使用示例4、性能优化与对比5、总结与展望 在软件开发过程中,日志记录是一个不可或缺的功能。它可以帮助开发者追踪错误、监控应用程序性能,以及进行调试。在C#生态系统中&…...
BDD 100K dataset 的标签数据结构(json文件)
最近在筛选自己需要的labels,所以要弄清楚这个数据集的数据结构才行: 1.整个json文件以列表形式储存 2.每张图片以一个字典形式储存 3.存储图片的字典内的以‘name’为key的键值对对应的‘value’是我需要的图片名称信息 4.存储图片的字典内的以‘label…...

AcWing 1550:完全二叉搜索树
【题目来源】https://www.acwing.com/problem/content/1552/【题目描述】二叉搜索树 (BST) 递归定义为具有以下属性的二叉树: (1)若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值 (2)若它的右…...

使用kali Linux启动盘轻松破解Windows电脑密码
破解分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。谢谢!! 效果展示: 使用kali Linux可以轻松破解Windows用户及密码 准备阶段: (…...
Vue2中跨组件共享公共属性的方法、优缺点与实现
一、vuex(最常用) 优缺点 优点:集中管理状态,组件间解耦,易于调试和测试。缺点:学习成本较高,对于小项目可能过于复杂。 适用场景 大型、复杂的单页面应用(SPA)。需要全局…...

2024亚太杯数学建模竞赛(B题)的全面解析
你是否在寻找数学建模比赛的突破点?数学建模进阶思路! 作为经验丰富的数学建模团队,我们将为你带来2024亚太杯数学建模竞赛(B题)的全面解析。这个解决方案包不仅包括完整的代码实现,还有详尽的建模过程和解…...

【PWN · ret2syscall | GoPwn】[2024CISCN · 华中赛区]go_note
一道GoPwn,此外便是ret2syscall的利用。然而过程有不小的曲折,参考 返璞归真 师傅的wp,堪堪完成了复现。复现过程中,师傅也灰常热情回答我菜菜的疑问,感谢!2024全国大学生信息安全竞赛(ciscn&am…...
关于学习方法的优化
这是一种新的学习方法,一种新的学习形式,可以通过歌唱的方式,运用,把自己每天要进行的内容进行一个复习,进行一个重复,这样可以实现随时随地进行一个学习,这样可以帮助快速走出来! 您…...

万界星空科技MES系统中的排版排产功能
在当今高度竞争的市场环境中,企业对于生产管理的效率和质量要求日益提高。作为智能制造的重要组成部分,制造执行系统(MES)以其强大的功能,在提升企业生产能力方面发挥着不可替代的作用。万界星空科技作为行业领先的智能…...
kubeadm离线部署kubernetesv1.30.0
背景:最近由于docker image获取镜像受限的问题,以及公司内部部署kubernetes受限于内部网络无法访问公网的问题,对于离线部署kubernetes成为不是十分方便。谨以此文仅供参考。 kubernetes部署节点信息 kubernetes版本 1.30.0 操作系统版本&a…...

Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...

OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...

嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...

springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...

基于开源AI智能名片链动2 + 1模式S2B2C商城小程序的沉浸式体验营销研究
摘要:在消费市场竞争日益激烈的当下,传统体验营销方式存在诸多局限。本文聚焦开源AI智能名片链动2 1模式S2B2C商城小程序,探讨其在沉浸式体验营销中的应用。通过对比传统品鉴、工厂参观等初级体验方式,分析沉浸式体验的优势与价值…...