Mysql数据库(中)——增删改查的学习(全面,详细)
上一篇主要对查询操作进行了详细的总结,本篇主要对增删改操作以及一些常用的函数进行总结,包括流程控制等;以下的代码可以直接复制到数据库可视化软件中,便于理解和练习;
常用的操作:
#函数:
SELECT BIN(10),HEX(10),OCT(10);
#if(a,b,c)如果a为true返回吧,否则返回c
SELECT last_name,salary,if(salary>6000,'高工资','低工资') 'grades'
FROM employees;
SELECT last_name,commission_pct,if(commission_pct IS NOT NULL,commission_pct,0) 'commission_pct'
FROM employees;
SELECT last_name,salary,case when salary>=15000 then '很牛'
when salary>=10000 then '牛'
when salary>=8000 then '可以'
ELSE '草根' END 'details'
FROM employees;
#case when then when then when then else end:
#练习:查询部门号为10,20,30的员工信息,若部门号为10,则打印其工资的1.1倍,20号部门,工资的1.2倍,30号部门,1.3倍,其他1.4倍;
SELECT employee_id,department_id,last_name,salary,case department_id when 10 then salary*1.1
when 20 then salary*1.2
when 30 then salary*1.3
ELSE salary*1.4 END 'details'
FROM employees
WHERE department_id IN (10,20,30);
#常见的聚合函数:AVG,SUM,MAX,MIN,COUNT:其中max和min适合数值类型、字符串类型和日期类型的字段;
SELECT AVG(salary),SUM(salary)
FROM employees;
SELECT MAX(salary),last_name,employee_id
FROM employees;
#count查询对应属性有值的数据个数;不包含null的;
SELECT COUNT(salary),COUNT(employee_id),COUNT(department_id)
FROM employees;
#想知道表中有多少条记录:!
SELECT COUNT(*)
FROM employees;
#group by分组进行操作:
#例如查询每个部门的平均工资:
SELECT department_id,AVG(salary),SUM(salary)
FROM employees
GROUP BY department_id;
#练习:查询各个department_id,job_id的平均工资
SELECT job_id,department_id,AVG(salary)
FROM employees
GROUP BY job_id,department_id;
#对于group by的使用,select后面所要查询的东西,必须放在group by后面,group by后面的不一定非要写到select后面;如下:
SELECT job_id,department_id,AVG(salary)
FROM employees
GROUP BY department_id;#去掉了job_id,然后仔细想按照department_id分组,每一个部门是一条数据,job_id不会单独列出来,因此这样写是错误的;
#注意,如果使用了聚合函数,那么需要将where换成having;
SELECT department_id,MAX(salary)
FROM employees
GROUP BY department_id
HAVING MAX(salary)>10000;
#创建和管理表:创建方式:
CREATE DATABASE test1;
CREATE DATABASE if NOT EXISTS test2;
SHOW DATABASES;
#展示数据库表:
USE atguigudb;
SHOW TABLES;
#修改数据库结构:alter
#删除数据库:
DROP DATABASE if EXISTS test2;
SHOW DATABASES;
#创建表:
#方式一:
USE atguigudb
CREATE TABLE if NOT EXISTS myempl(
id INT,
emp_name VARCHAR(15),
hire_name DATE
);
SHOW TABLES;
#方式二:基于已有的表来创建:可以使用学过的select语句来进行创建,并且数据也是有的;
CREATE TABLE myempl2
AS
SELECT employee_id,last_name,salary
FROM employees;
DESC myempl2;
SELECT *FROM myempl2;
#修改表:
#添加一个字段:
ALTER TABLE myempl
ADD salary DOUBLE(10,2);
DESC myempl;
#可以自定义位置:
ALTER TABLE myempl
ADD phone_number VARCHAR(20) FIRST;
ALTER TABLE myempl
ADD mail VARCHAR(45) AFTER emp_name;
#修改一个字段:修改属性长度:
ALTER TABLE myempl
MODIFY emp_name VARCHAR(25);
#添加默认值:
ALTER TABLE myempl
MODIFY emp_name VARCHAR(25) DEFAULT 'aaa';
#改属性名:
ALTER TABLE myempl
CHANGE salary month_salary DOUBLE(10,2);
#删除一个字段:
ALTER TABLE myempl
DROP COLUMN mail;
#重命名表:
RENAME TABLE myempl
TO myempll;
SHOW TABLES;
#删除表
DROP TABLE myempl2;
#commit 和rollback;
#commit:提交数据,一旦执行commit,则数据永久的保存在了数据库中,意味着数据不可回滚;
#rollback:回滚数据,一旦执行则可以实现数据的回滚,回滚到最近的一次commit之后;
/*DDL和DML的说明:
DDL的操作一旦执行,不可以回滚;因为DDL执行完之后,接着会自动执行一次提交,这个set autocommit=false;不能影响DDL的提交;
DML的操作默认情况下执行后,也不可以回滚,但是如果在执行DML之前,执行了set autocommit=false;则该DML操作可以回滚;
*/
#演示delete from
COMMIT;
SELECT *FROM myempl2;
SET autocommit=FALSE;
DELETE FROM myempl2;#此时再看,表中已经没有了数据;
#此时rollback一下:
ROLLBACK;
SELECT *FROM myempl2;
#但是如果将上面SET autocommit=FALSE;去掉,就无法回滚,数据已经清除了;
/*对于truncate table 表名;这个会将表数据清空,但是不可回滚;
delete from 表名;这个操作也会将表清空,但是设置autocommit为false后,就可以回滚了;*/
#添加数据:
SHOW TABLES;
SELECT *FROM myempll;
ALTER TABLE myempll
CHANGE hire_name hire_data DATE;
ALTER TABLE myempll
CHANGE month_salary salary DOUBLE(10,2);
ALTER TABLE myempll
DROP COLUMN phone_number;
ALTER TABLE myempll
CHANGE emp_name NAME VARCHAR(25);
#方式一:一条一条添加数据:
INSERT INTO myempll VALUES(1,'TOM','2001-12-21',3400);#一定要按照属性顺序添加数据
INSERT INTO myempll(id,hire_data,salary,`name`)VALUES(2,'2002-12-19',4000,'Jerry');
INSERT INTO myempll(id,salary,`name`)VALUES(3,5000,'张三'),(4,6000,'李四');
#方式二:将查询的结果插入表中:
USE atguigudb;
INSERT INTO myempll(id,`name`,hire_data,salary)
SELECT employee_id,last_name,hire_date,salary
FROM employees
WHERE department_id IN(60,70);
SELECT*FROM myempll;
#修改数据:update
UPDATE myempll
SET hire_data='2002-12-07'
WHERE id=3;
#同时更改多个属性:
UPDATE myempll
SET hire_data='2002-1-09',salary=9000
WHERE id=4;
#删除数据:
DELETE FROM myempll
WHERE id=1;
#数据类型:
/*decimal要比double更精确一些,double类型会出现精度损失,但是decimal不会出现精度损失;
日期类型:DATE类型,‘XXXX-XX-XX’年月日类型;
TIME类型,‘HH-MM-SS’时分秒类型,此处小时可以大于24;
DATETIME类型:年月日时分秒;
相关文章:
Mysql数据库(中)——增删改查的学习(全面,详细)
上一篇主要对查询操作进行了详细的总结,本篇主要对增删改操作以及一些常用的函数进行总结,包括流程控制等;以下的代码可以直接复制到数据库可视化软件中,便于理解和练习; 常用的操作: #函数: S…...

test dbtest-03-对比 Liquibase、flyway、dbDeploy、dbsetup
详细对比 Liquibase、flyway、dbDeploy、dbsetup,给出对比表格 下面是一个简要的对比表格,涵盖了 Liquibase、Flyway、dbDeploy 和 DbSetup 这四个数据库变更管理工具的一些主要特点。 特点/工具LiquibaseFlywaydbDeployDbSetup开发语言Java࿰…...
力导向图与矩阵排序
Graph-layout force directed(力导向图布局)是一种用于可视化网络图的布局算法。它基于物理模型,模拟了图中节点之间的相互排斥和连接弹性,以生成具有良好可读性和美观性的图形布局。 在力导向图布局中,每个节点被视为…...

word 常用功能记录
word手册 多行文字对齐标题调整文字间距打钩方框插入三线表插入参考文献自动生成目录 多行文字对齐 标题调整文字间距 打钩方框 插入三线表 插入一个最基本的表格把整个表格设置为无框线设置上框线【实线1.5磅】设置下框线【实线1.5磅】选中第一行,设置下框线【实线…...

C#线程基础(线程启动和停止)
目录 一、关于线程 二、示例 三、生成效果 一、关于线程 在使用多线程前要先引用命名空间System.Threading,引用命名空间后就可以在需要的地方方便地创建并使用线程。 创建线程对象的构造方法中使用了ThreadStart()委托,当线程开始执行时,…...
如何利用ChatGPT来提高编程效率
如何利用ChatGPT来提高编程效率 在当今这个信息爆炸和技术快速发展的时代,程序员们面临着巨大的压力,既要保证代码的质量,又要提高工作效率。幸运的是,人工智能(AI)正在改变我们编写和维护代码的方式,而OpenAI的ChatGPT是其中的佼佼者。本文将讨论如何利用ChatGPT以及结合…...

java智慧工地源码,互联网+建筑工地,实现对工程项目内人员、车辆、安全、设备、材料等的智能化管理
智慧工地全套源码,微服务JavaSpring Cloud UniApp MySql;支持多端展示(大屏端、PC端、手机端、平板端)演示自主版权。 智慧工地概念: 智慧工地就是互联网建筑工地,是将互联网的理念和技术引入建筑工地&…...
创建并使用自己的C++模块(Windows10+MSVC)
module是C20种新引入的特性,关于module的介绍和好处,网上已有大量的文章,此处也不再赘述,本文仅记录在个人的环境上创建一个简单的module并使用这个module。 环境同上一篇文章( windows10,MSVC C工具链&am…...

Spring Boot 2.7.11 集成 GraphQL
GraphQL介绍 GraphQL(Graph Query Language)是一种用于API的查询语言和运行时环境,由Facebook于2012年创建并在2015年公开发布。与传统的RESTful API相比,GraphQL提供了更灵活、高效和强大的数据查询和操作方式。 以下是GraphQL…...

软件工程期末总结
软件工程期末总结 软件危机出现的原因软件生命周期软件生命周期的概念生命周期的各个阶段 软件开发模型极限编程 可行性研究与项目开发计划需求分析结构化分析的方法结构化分析的图形工具软件设计的原则用户界面设计结构化软件设计面向对象面向对象建模 软件危机出现的原因 忽视…...

MidTool图文创作-GPT-4与DALL·E 3的结合
GPT-4与DALLE 3的结合 GPT-4是由OpenAI开发的最新一代语言预测模型,它在前代模型的基础上进行了大幅度的改进,不仅在文本生成的连贯性、准确性上有了显著提升,还在理解复杂语境和执行多步骤指令方面表现出了更高的能力。而DALLE 3则是一个创…...
Python将两个或多个列表合并为一个列表,并根据每个输入列表中的元素的位置将其组合在一起
将两个或多个列表合并为一个列表,并根据每个输入列表中的元素的位置将其组合在一起。 这个需求在实际开发过程中应该说非常常见,当然python也给我们内置了相关方法! zip(*iterables, strictFalse) 在多个迭代器上并行迭代,从每…...

数模混合SoC芯片中LEF2Milkyway的golden flow
在数模混合芯片中的项目中,特别是数字模块很少甚至只有一个简单的数字控制逻辑时,我们要做数字模块的后端实现时,通常模拟那边会问我们实现需要他们提供哪些数据。 通常来说,我们可以让模拟设计提供数字模块的GDS或LEF文件即可。…...

Five tips to make your essay flow
This post was written by Sydney Nicholson, a second-year master’s student in the English Department. Dear writer, Have you ever wondered what it takes to make an essay “flow”? In my time as a writing center tutor, I’ve noticed that this is one of th…...

linux驱动(二):led补
本文主要探讨s5pv210的led驱动相关知识,包括驱动主次设备注册和取消,udev(mdev)机制,静态和动态映射操作寄存器。 字符设备驱动注册 老接口(register_chrdev) static inline int register_chrdev(unsigned int major, const char *n…...

性能测试-jmeter:安装 / 基础使用
一、理解jmeter 官网-Apache JMeter-Apache JMeter™ JMeter是一款开源的性能测试工具,主要用于模拟大量用户并发访问目标服务器,以评估服务器的性能和稳定性。 JMeter可以执行以下任务序号用途描述1性能测试通过模拟多个用户在同一时间对服务器进行请…...

数据仓库-数仓优化小厂实践
一、背景 由于公司规模较小,大数据相关没有实现平台化,相关的架构都是原生的Apache组件,所以集群的维护和优化都需要人工的参与。根据自己的实践整理一些数仓相关的优化。 二、优化 1、简易架构图 2、ODS层优化 2.1 分段式解析 随着业务增长…...

uniapp中uview组件丰富的Code 验证码输入框的使用方法
目录 基本使用 #自定义提示语 #保持倒计时 API #Props #Methods #Event 基本使用 通过ref获取组件对象,再执行后面的操作,见下方示例。 通过seconds设置需要倒计的秒数(默认60)通过ref调用组件内部的start方法,开始倒计时通过监听cha…...

md文件图片上传方案:Github+PicGo 搭建图床
文章目录 1. PicGo 下载2. 配置Github3. 配置PicGo4. PicGo集成Typora4.1 picGo监听端口设置 5. 测试 1. PicGo 下载 下载地址:https://molunerfinn.com/PicGo/ 尽量下载稳定版本 2. 配置Github 1. 创建一个新仓库,用于存放图片 2. 生成一个token&a…...

从零开始 - 在Python中构建和训练生成对抗网络(GAN)模型
生成对抗网络(GANs)是一种强大的生成模型,可以合成新的逼真图像。通过完整的实现过程,读者将对GANs在幕后的工作原理有深刻的理解。本教程首先导入必要的库并加载将用于训练GAN的Fashion-MNIST数据集。然后,提供了构建…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...

ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...

微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...

Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...