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数据集。然后,提供了构建…...
OfficeWeb365 Indexs 任意文件读取漏洞复现
0x01 产品简介 OfficeWeb365 是专注于 Office 文档在线预览及PDF文档在线预览云服务,包括 Microsoft Word 文档在线预览、Excel 表格在线预览、Powerpoint 演示文档在线预览,WPS 文字处理、WPS 表格、WPS 演示及 Adobe PDF 文档在线预览。 0x02 漏洞概述 OfficeWeb365 /Pi…...
Crypto的简单应用-前后端加密传输
最近遇到一个数据脱敏处理的需求,想要用一种轻量级的技术实现,必须足够简单并且适用于所有场合如前后端加密传输、路由加密、数据脱敏等。抽时间研究了一下Crypto加密库的一些API,发现完全符合上述需求,扩展也比较容易。 1、前端加…...
Vue3-32-路由-重定向路由
什么是重定向 路由的重定向 :将匹配到的路由 【替换】 为另一个路由。 redirect : 重定向的关键字。 重定向的特点 1、重定向是路由的直接替换,路由的地址是直接改变的; 2、在没有子路由配置的情况下,重定向的路由可以省略 component 属性的配…...
如何用js动态修改字体大小
在项目中,我们常常会遇到使用v-html渲染文本的情况。 如果需要点击大中小三个字号按钮,需要修改字体的大小。那我们应该怎么做呢 function fontSize(element, type) {let size {big: 22,middle: 16,small: 12};var result element.innerHTML.replac…...
【BIG_FG_CSDN】C++ 数组与指针 (个人向——学习笔记)
一维数组 在内存占用连续存储单元的相同类型数据序列的存储。 数组是静态存储器的块;在编译时确定大小后才能使用; 其声明格式如下: 元素类型 数组名[常量];元素类型:数组中元素的数据类型; 常量&#…...
桌面天气预报软件 Weather Widget free mac特点介绍
Weather Widget free for Mac多种吸引人的小部件设计可供选择,可以随时了解天气!还可以在Dock和菜单栏中为您提供简短的天气预报或当前状况的概述。 Weather Widget free for Mac软件介绍 始终在桌面上使用时尚的天气小部件来随时了解天气!多…...
HarmonyOS应用开发-搭建开发环境
本文介绍如何搭建 HarmonyOS 应用的开发环境,介绍下载安装 DevEco Studio 开发工具和 SDK 的详细流程。华为鸿蒙 DevEco Studio 是面向全场景的一站式集成开发环境,面向全场景多设备,提供一站式的分布式应用开发平台,支持分布式多…...
<JavaEE> TCP 的通信机制(五) -- 延时应答、捎带应答、面向字节流
目录 TCP的通信机制的核心特性 七、延时应答 1)什么是延时应答? 2)延时应答的作用 八、捎带应答 1)什么是捎带应答? 2)捎带应答的作用 九、面向字节流 1)沾包问题 2)“沾包…...
电脑怎么设置代理IP上网?如何隐藏自己电脑的真实IP?
在现代互联网中,代理IP已成为许多用户保护隐私和上网安全的重要手段。通过设置代理IP,用户可以隐藏自己的真实IP地址,提高上网的安全性,同时保护个人信息不被泄露。本文将详细介绍如何设置代理IP上网以及如何隐藏电脑的真实IP地址…...
Django信号机制源码分析(观察者模式)
Django信号的实现原理本质是设计模式中的观察者模式,浅谈Python设计模式 -- 观察者模式,也可以叫做发布-订阅模式,信号对象维护一个订阅者列表,当信号被触发时,它会遍历订阅者,依次通知它们。 先来回顾一下…...
网站构建培训/seo关键词库
前段时间,朋友让我推荐一款运动耳机,说是给孩子跑步的时候使用。对了,他还提出了耳机最好能脱离手机听歌的要求。其实这也不是什么难事啊,作为一个运动爱好者,我也是比较喜欢一边听歌一边跑步,其中也用不少…...
移动电商网站开发/如何在网上推广自己
引 言 数字生活方式是现代文明的一个重要标志。在与人们工作生活密切相关的电脑、手机和电视三大信息平台中,电脑和手机已实现了数字化和网络化,为人们带来了多姿多彩的资讯和娱乐服务,也为相关企业带来了巨额利润。数字电视将带来数字生活方…...
济南网站建设铭盛信息/百度招聘官网首页
我的第一个socket 编程。 首先创建一个server 类, 然后在类中添加四个成员. 初始化。 TcpServer (listenPort) 记得在初始化servAddr 的时候要 先清零. 因为该成员的最后八位是0 。为了方便所以直接清零。 bzero(&servAddr, sizeof(servAddr)); 要记得加 &…...
教做衣服的网站/抖音代运营收费详细价格
使用的库文件为Newtonsoft.Json 读取JSON文件 /// <summary>/// 读取JSON文件/// </summary>/// <param name"key">JSON文件中的key值</param>/// <returns>JSON文件中的value值</returns>public JObject Readjson(string json…...
视频发布播放网站建设/中山网站seo
例21题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时&a…...
css 网站模板/seo排名的公司
为什么要对css属性进行浏览器兼容性总结呢?用的时候,直接去 Can I Use 里面检索浏览器对该属性的兼容性情况不就好了吗?css3.jpeg其实,在实际的开发过程中,我们对常见的css属性兼容情况了然于胸,才能极大的…...