MySQL数据库(二)
一 DDL
(一 数据库操作
1 查询-数据库(所有/当前)
1 所有数据库:
show databases;
2 查询当前数据库:
select database();
2 创建-数据库
可以定义数据库的编码方式
create database if not exists ax1;
create database ax2;
3 删除-数据库
drop database ax1;
4 使用-数据库
use ax1;
select database();
切换当前数据库位置并验证是否为当前数据库:
(二 表操作
1 创建-表结构
2 查询-所有表结构名称
show tables;
图形化展示
3 查询-表结构内容
desc myfirst_tb;
图形化展示:
4 查询-建表语句
show create table first_tb;
图形化展示:
5 添加-字段名+数据类型
alter table 表名 add 字段名 类型 注释;
alter table emp add nickname varchar(10) comment '昵称';
图形化展示:
6 修改-字段数据类型
alter table 表名 modify 字段名 新数据类型;
alter table emp modify IDcard char(19);
图形化展示
7 修改-字段+字段数据类型
alter table 表名 change 旧字段名 新字段名 类型 comment 注释;
alter table emp change IDcard idcard char(18) comment '身份证';
图形化展示:
8 删除-字段
alter table 表名 drop 字段名;
alter table emp drop ax2;
图形化展示:
9 修改-表名
alter table 表名 rename to 新表名;
alter table emp rename to newemp;
图形化展示:
10 删除-表
drop table if exists 表名;
drop table if exists 表名;
图形化展示:
11 删除-表中数据
表结构保留:TRUNCATE TABLE
只会删除表中的所有数据,但不会删除表本身或其结构定义。因此,使用 DESC
或 SHOW COLUMNS FROM myfirst_tbl1;
时,您仍然可以看到表的字段定义。
truncate table 表名;
truncate table myfirst_tb1;
图形化展示:
(三 Datagrip图形化界面激活码使用
网址:
2025 最新Jetbrains激活服务器 全部产品均适用 | ahhhhfs - A姐分享
二 DML-表-增删改数据
1 概念:DML全称Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增删改。
- 添加数据:(INSERT)
- 修改数据:(UPDATE)
- 删除数据:(DELETE)
(一 添加数据
1 给指定字段添加数据
insert into 表名 (字段名1,字段名2...)values (值1,值2...);
2 给全部字段添加数据(逐个)
insert into 表名 values (值1,值2);
3 批量添加数据
insert into 表名(字段名1,字段名2...)values (值1,值2...),(值1,值2)...;
insert into 表名 values(值1,值2...);
# 逐个添加
insert into first_tb (id, name, age, gender) values (2,'超哥',100,'男');insert into first_tb values (3,'小明',100,'女');# 批量添加
insert into first_tb (id, name, age, gender) values (4,'张三',100,'男'),(5,'李四',100,'男'),(6,'刘六',21,'男');insert into first_tb values (7,'王五',32,'男'),(8,'he',12,'男'),(9,'ok',22,'女');# 查看table 数据
select * from first_tb;
注意事项:
- 插入数据时,指定的字段顺序需要与值的顺序一一对应。
- 字符串和日期类型应该包含在引号中。
- 插入的数据大小,应该在字段的规定范围内。
(二 修改数据
1 修改表中的数据
updata 表名 set 字段名1 = 值1 ,字段名2 = 值2 ,.......where 条件;
注意事项:
- 修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。
# 将first_tb表当中的id为1的数据项的name修改为it
update first_tb set name = 'it' where id = 1;# 将first_tb表当中的name为it的数据项的id修改为0,name修改为it_er
update first_tb set id = 0,name='it_er' where name = 'it';
2 删除表中的数据
delete from 表名 where 条件;
注意事项:
- 修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。
- 可以使用and or 进行范围判定。
# 删除id为0的数据项
delete from first_tb where id = 0;
# 删除id为3并且姓名为小明的数据项
delete from first_tb where id = 3 and name='小明';# 删除id为3或姓名为小明的数据项
delete from first_tb where id = 3 or name='小明';
三 DQL-表-查数据
1 概念:DQL全称Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。
- 查询数据关键字:(SELECT)
查询数据
(一 基础查询
1 查询多个字段
select 字段1,字段2...from 表名;
# 返回first_tb表中字段name和id字段列表
select name,id from first_tb;
2 查询所有字段
select * from 表名;
# 返回first_tb表中的所有字段列表
select * from first_tb;
3 设置别名并查询
select 字段1 as 别名1 ,字段2 as 别名2 ...from 表名;
# 设置别名(as可省略)作用是将表中的字段显示给我们时更加容易区分
select id as ID , name as NAME from first_tb;
4 去除重复项
select distinct 字段列表 from 表名;
# 删除id重复项
select distinct id from first_tb;
5 代码实现
insert into user_pro (id, worker, gender, age, idcard, workaddress, entrydate, name)
values (1, '1000000101', '男', 18, '123456789123456781', '安徽合肥', '2000-01-01', '超哥'),(2, '1000000102', '男', 28, '123456789123456782', '安徽阜阳', '2000-11-01', '张三'),(3, '1000000103', '男', 38, '123456789123456783', '安徽六安', '2000-02-01', '李四'),(4, '1000000104', '女', 48, '123456789123456784', '安徽淮北', '2000-03-01', '王五'),(5, '1000000105', '女', 58, '123456789123456785', '安徽亳州', '2000-04-01', '刘六'),(6, '1000000106', '女', 68, '123456789123456786', '安徽马鞍山', '2000-05-01', '周七'),(7, '1000000107', '女', 78, '123456789123456787', '安徽黄山', '2000-01-11', '安八'),(8, '1000000108', '女', 88, '123456789123456788', '安徽滁州', '2000-01-31', '老八'),(9, '1000000109', '男', 98, '123456789123456789', '安徽安庆', '2000-01-21', '李白'),(10, '1000000110', '男', 18, '12345678912345678X', '安徽芜湖', '2000-01-21', '杜甫'),(11, '1000000111', '男', 28, '123456789123456711', '安徽宿州', '2000-01-11', '骆宾王'),(12, '1000000112', '女', 38, '123456789123456722', '安徽蚌埠', '2000-03-01', '齐白石'),(13, '1000000113', '女', 48, '123456789123456733', '安徽宣称', '2000-06-01', '薛之谦'),(14, '1000000114', '女', 58, '123456789123456744', '安徽池州', '2000-08-01', '小白'),(15, '1000000115', '男', 68, '123456789123456755', '安徽铜陵', '2000-05-01', '小黑'),(16, '1000000116', '男', 78, '123456789123456766', '安徽合肥', '2000-03-01', '小蓝'),(17, '1000000117', '男', 88, '123456789123456777', '安徽合肥', '2000-07-01', '小一'),(18, '1000000118', '男', 98, '123456789123456788', '安徽合肥', '2000-08-01', '小儿'),(19, '1000000119', '男', 18, '123456789123456799', '安徽合肥', '2000-09-01', '小三'),(20, '1000000120', '男', 28, '12345678912345679X', '安徽合肥', '2000-10-01', '小四'),(21, '1000000121', '男', 38, '12345678912345677X', '安徽合肥', '2000-01-01', '小五');
update user_pro set workaddress='安徽淮南' where id=16;# 1 查询name age worker字段列表
select name,age,worker from user_pro;
# 2 查询所有字段
select name,id,worker,workaddress,gender,idcard,entrydate,age from user_pro;
select * from user_pro;
# 3 查询所有员工的工作地址(将列表名显示为工作地址 as 可省略)
select workaddress as '工作地址' from user_pro;
# 4 查询员工的工作地址(去重)
select distinct workaddress from user_pro;
(二 条件查询 - where
1 语法
select 字段列表 from 表名 where 条件列表;
2 条件符号
3 代码实现:
# 1 查询年龄等于88的员工信息
select * from users where age = 88;# 2 查询年龄小于30的员工信息
select * from users where age <= 30;# 3 查询没有身份证的员工信息
select * from users where idcard is null ;# 4 查询有身份证的员工信息
select * from users where idcard is not null;# 5 查询年龄不等于88和78的员工信息
select * from users where age != 88 and age != 78;
select * from users where age <> 88 and age <> 78;# 6 查询在28至58之间的员工信息(左右都包括)
select * from users where age between 28 and 58;
select * from users where age >= 28 && age <= 58;# 7 查询性别为女且年龄小于58的员工信息
select * from users where gender = '女' and age < 58;# 8 查询姓名为三个字的员工信息 <--> _ 单个字符 % 任意数个
select * from users where name like '___';# 9 查询年龄为18 28 38 的员工信息
select * from users where age = 18 or age = 28 or age = 38;
select * from users where age in (18,28,38);# 10查询身份证号最后一位是X的员工信息
select * from users where idcard like '%X';
select * from users where idcard like '_________________X'
(三 聚合查询 - count/max/min/sum/avg
1 语法
select 聚合函数 (字段列表)from 表名;
2 聚合函数:将一列数据作为一个整体,进行纵向计算。
- count: 统计数量
- max :最大值
- min : 最小值
- avg : 平均值
- sum : 求和
3 注意事项
- null不参与计算
4 代码实现:
# 求员工最大年龄
select max(age) from users;# 统计员工数量
select count(name) from users;# 求平均年龄
select sum(age)/count(name) from users;
select avg(age) from users;# 求最小年龄
select min(age) from users;# 统计安徽合肥地区员工的年龄之和
select * from users where workaddress = '安徽合肥';
select sum(age) from users where workaddress = '安徽合肥';
(四 分组查询 - group by ... having
1 语法
select 字段列表 from 表名 where 条件 group by 字段分组名 having 分组后过滤条件 ;
2 where 与 having 的区别
- 执行时机不同:where 是分组之前进行过滤,不满足where ,不参与分组;二having 是分组之后对结果进行过滤。
- 判断条件不同:where 不能对聚合函数进行判断,而having 可以。
3 注意事项:
- where先判断,在进行聚合函数的处理,再进行having 的判断处理。
- 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无意义。
4 代码实现:
# 1 根据性别分组,统计男性员工 和 女性员工的数量
select gender,count(*) from users group by gender;# 2 根据性别分组,统计男性员工和女性员工的平均年龄
select gender,avg(age) from users group by gender;# 3 查询年龄小于等于58的员工,根据共组地址分组获取员工数量大于等于2的地址
select workaddress,count(*) from users where age <= 58 group by workaddress having count(*)>=2;
(五 排序查询 - order by
1 语法
select 字段列表 from 表名 order by 字段1 排序方式1 ,字段2 排序方式2;
2 排序方式
- ASC:升序(默认值)
- DESC:降序
3 注意事项:
- 如果是多段字段排序,当地一个字段值相同时,会按第二个字段排序规则。
4 代码实现:
# 1 根据年龄对公司的员工进行升序排序
select * from users order by age ASC ;# 2 根据入职时间对公司员工进行降序排序
select * from users order by entrydate DESC ;# 3 根据年龄对公司员工进行升序排序,年龄相同在按照入职时间进行降序排序
select * from users order by age ASC , entrydate DESC;
(六 分页查询 - limit
1 语法
select 字段列表 from 表名 limit 起始索引,查询次数;
2 注意事项:
- 起始索引从0开始,其实索引 = (查询页码 - 1)* 每页显示记录数。
- 分页查询时数据库的方言,不同数据库有不同的实现,MySQL是limit。
- 如果查询的是第一页的数据,其实索引可以省略,之间简写为limit 10;
3 代码实现:
# 1 从第1个开始展示,展示10个
select * from users limit 0,10;# 2 从第5个开始展示,展示5个
select * from users limit 4,5;
(七 补充
练习:
# 1 查询年龄为28,18,38的员工信息
select * from users where age in (28,18,38);# 2 查询姓名两个字性别为男并且年龄为38至68之间的员工信息
select * from users where age between 38 and 68 && name like '__';# 3 统计员工表中奈年龄小于等于68,男性和女性分别的人数(age统计的是非空,如果想包含null则最好使用*)
select gender,count(age) from users where age <= 68 group by gender;# 4 查询所有年龄小于68岁的员工的姓名和年龄,并对查询结果按照年龄升序排序,如果年龄相同按入职时间降序排序
select name,age from users where age <= 68 order by age ASC ,entrydate DESC ;# 5 查询性别为男,并且年龄在28-68之间的前五个员工信息,对查询结果按年龄升序排序,年龄相同的按入职时间升序排序
select * from users where age between 28 and 68 and gender='男' order by age ASC , entrydate DESC limit 0,5;
编写顺序与执行顺序
相关文章:

MySQL数据库(二)
一 DDL (一 数据库操作 1 查询-数据库(所有/当前) 1 所有数据库: show databases; 2 查询当前数据库: select database(); 2 创建-数据库 可以定义数据库的编码方式 create database if not exists ax1; create database ax2…...

从0到1:C++ 开启游戏开发奇幻之旅(二)
目录 游戏开发核心组件设计 游戏循环 游戏对象管理 碰撞检测 人工智能(AI) 与物理引擎 人工智能 物理引擎 性能优化技巧 内存管理优化 多线程处理 实战案例:开发一个简单的 2D 射击游戏 项目结构设计 代码实现 总结与展望 游戏…...

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.18 逻辑运算引擎:数组条件判断的智能法则
1.18 逻辑运算引擎:数组条件判断的智能法则 1.18.1 目录 #mermaid-svg-QAFjJvNdJ5P4IVbV {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-QAFjJvNdJ5P4IVbV .error-icon{fill:#552222;}#mermaid-svg-QAF…...

EasyExcel写入和读取多个sheet
最近在工作中,作者频频接触到Excel处理,因此也对EasyExcel进行了一定的研究和学习,也曾困扰过如何处理多个sheet,因此此处分享给大家,希望能有所帮助 目录 1.依赖 2. Excel类 3.处理Excel读取和写入多个sheet 4. 执…...

LLM架构与优化:从理论到实践的关键技术
标题:“LLM架构与优化:从理论到实践的关键技术” 文章信息摘要: 文章探讨了大型语言模型(LLM)开发与应用中的关键技术,包括Transformer架构、注意力机制、采样技术、Tokenization等基础理论,以…...

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.22 形状操控者:转置与轴交换的奥秘
1.22 形状操控者:转置与轴交换的奥秘 目录 #mermaid-svg-Qb3eoIWrPbPGRVAf {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Qb3eoIWrPbPGRVAf .error-icon{fill:#552222;}#mermaid-svg-Qb3eoIWrPbPGRVAf…...

NLP模型大对比:Transformer >Seq2Seq > LSTM > RNN > n-gram
结论 Transformer 大于 传统的Seq2Seq 大于 LSTM 大于 RNN 大于 传统的n-gram n-gram VS Transformer 我们可以用一个 图书馆查询 的类比来解释它们的差异: 一、核心差异对比 维度n-gram 模型Transformer工作方式固定窗口的"近视观察员"全局关联的&q…...

DeepSeek部署教程(基于Ollama)
虽说在过年,但不能忘了学习。这几天科技圈最火的莫过于deepseek,我抽空也学习一下deepseek的部署过程,主要还是因为官方服务已经彻底瘫了[手动狗头]。 1、下载Ollama并安装 https://github.com/ollama/ollama/releases/latest/download/Oll…...

Java基础面试题总结(题目来源JavaGuide)
问题1:Java 中有哪 8 种基本数据类型?它们的默认值和占用的空间大小知道不? 说说这 8 种基本数据类型对 应的包装类型。 在 Java 中,有 8 种基本数据类型(Primitive Types): 基本数据类型关键…...

WPS mathtype间距太大、显示不全、公式一键改格式/大小
1、间距太大 用mathtype后行距变大的原因 mathtype行距变大到底怎么解决-MathType中文网 段落设置固定值 2、显示不全 设置格式: 打开MathType编辑器点击菜单栏中的"格式(Format)"选择"间距(Spacing)"在弹出的对话框中调整"分数间距(F…...

宇宙大爆炸是什么意思
根据宇宙大爆炸学说,宇宙间的一切都在彼此远离,而且距离越远,远离的速度越快。我们只能在地球上观察这种现象,而我们观察到的速度符合如下公式,其中 为哈勃常数, 为距离, 为速度(…...

MotionLCM 部署笔记
目录 依赖项 humanml3d: sentence-t5-large 下载数据: 报错:No module named sentence_transformers 继续报错:from transformers.integrations import CodeCarbonCallback 解决方法: GitHub - Dai-Wenxun/Moti…...

VLLM性能调优
1. 抢占 显存不够的时候,某些request会被抢占。其KV cache被清除,腾退给其他request,下次调度到它,重新计算KV cache。 报这条消息,说明已被抢占: WARNING 05-09 00:49:33 scheduler.py:1057 Sequence gr…...

ESP32-S3模组上跑通esp32-camera(39)
接前一篇文章:ESP32-S3模组上跑通esp32-camera(38) 一、OV5640初始化 2. 相机初始化及图像传感器配置 上一回继续对reset函数的后一段代码进行解析。为了便于理解和回顾,再次贴出reset函数源码,在components\esp32-camera\sensors\ov5640.c中,如下: static int reset…...

Linux《基础指令》
在之前的Linux《Linux简介与环境的搭建》当中我们已经初步了解了Linux的由来和如何搭建Linux环境,那么接下来在本篇当中我们就要来学习Linux的基础指令。在此我们的学习是包括两个部分,即指令和关于Linux的基础知识;因此本篇指令和基础知识的…...

9.进程间通信
9.进程间通信 **1. 进程间通信(IPC)概述****2. 无名管道(Pipe)****3. 有名管道(FIFO)****4. 信号通信(Signal)****5. 练习与作业****6. 信号的应用****7. 总结** 1. 进程间通信&…...

Windows中本地组策略编辑器gpedit.msc打不开/微软远程桌面无法复制粘贴
目录 背景 解决gpedit.msc打不开 解决复制粘贴 剪贴板的问题 启用远程桌面剪贴板与驱动器 重启RDP剪贴板监视程序 以上都不行?可能是操作被Win11系统阻止 最后 背景 远程桌面无法复制粘贴,需要查看下主机策略组设置,结果按WinR输入…...

供应链系统设计-供应链中台系统设计(十二)- 清结算中心设计篇(一)
概述 在之前的文章中,我们通过之前的两篇文章中,如下所示: 供应链系统设计-供应链中台系统设计(十)- 清结算中心概念片篇 供应链系统设计-供应链中台系统设计(十一)- 清结算中心概念片篇 说…...

Vue.js 单页应用(SPA)开发教程:从零开始构建你的第一个项目
单页应用(SPA,Single Page Application)是现代前端开发的主流模式。Vue.js 是一个非常适合构建 SPA 的框架,它通过 Vue Router 实现页面导航,通过组件化开发和状态管理实现复杂的交互功能。本篇教程将带你了解 SPA 的基…...

Linux C openssl aes-128-cbc demo
openssl 各版本下载 https://openssl-library.org/source/old/index.html#include <stdio.h> #include <string.h> #include <openssl/aes.h> #include <openssl/rand.h> #include <openssl/evp.h>#define AES_KEY_BITS 128 #define GCM_IV_SIZ…...

你了解哪些Java限流算法?
大家好,我是锋哥。今天分享关于【你了解哪些Java限流算法?】面试题。希望对大家有帮助; 你了解哪些Java限流算法? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Java 中常用的限流算法主要有以下几种,它们广泛应用于处理流量控…...
【漫话机器学习系列】065.梯度(Gradient)
梯度(Gradient) 在数学和机器学习中,梯度是一个向量,用来表示函数在某一点的变化方向和变化率。它是多变量函数的一阶偏导数的组合。 梯度的定义 设有一个标量函数 ,它对 是可微的,则该函数在某一点的…...

BswM(基础软件管理)详解
BswM(基础软件管理)详解 BswM(Basic Software Manager) 是 AUTOSAR BSW 的核心模块之一,负责协调基础软件(BSW)各模块的行为,根据系统状态、规则或事件动态配置其他模块。其设计目标…...

上位机知识篇---GitGitHub
文章目录 前言Git&GitHub是什么?GitGitHub Git和GitHub的区别定位功能使用方式开源协作 Git常用命令操作1. 配置2. 仓库操作3. 文件操作4. 分支与合并5.远程操作6.撤销更改7.查看历史 GitHub常用操作1.创建仓库2.Fork仓库3.Pull Request4.Issue跟踪5.代码审查 G…...

网站快速收录:提高页面加载速度的重要性
本文转自:百万收录网 原文链接:https://www.baiwanshoulu.com/32.html 网站快速收录中,提高页面加载速度具有极其重要的意义。以下从多个方面详细阐述其重要性: 一、提升用户体验 减少用户等待时间:页面加载速度直接…...

Vue.js组件开发-实现全屏背景图片滑动切换特效
使用 Vue 实现全屏背景图片滑动切换特效的详细步骤、代码、注释和使用说明。 步骤 创建 Vue 项目:使用 Vue CLI 创建一个新的 Vue 项目。准备图片资源:准备好要用于背景切换的图片,并将它们放在项目的合适目录下。编写 HTML 结构࿱…...

DeepSeek r1本地安装全指南
环境基本要求 硬件配置 需要本地跑模型,兼顾质量、性能、速度以及满足日常开发需要,我们需要准备以下硬件: CPU:I9内存:128GB硬盘:3-4TB 最新SSD,C盘确保有400GB,其它都可划成D盘…...

LitGPT - 20多个高性能LLM,具有预训练、微调和大规模部署的recipes
文章目录 一、关于 LitGPT二、快速启动安装LitGPT高级安装选项 从20多个LLM中进行选择 三、工作流程1、所有工作流程2、微调LLM3、部署LLM4、评估LLM5、测试LLM6、预训练LLM7、继续预训练LLM 四、最先进的功能五、训练方法示例 六、项目亮点教程 一、关于 LitGPT LitGPT 用于 …...

deepseek R1 14b显存占用
RTX2080ti 11G显卡,模型7b速度挺快,试试14B也不错。 7B显存使用5.6G,14B显存刚好够,出文字速度差不多。 打算自己写个移动宽带的IPTV播放器,不知道怎么下手,就先问他了。...

无用知识研究:对std::common_type以及问号表达式类型的理解
先说结论: 如果问号表达式能编译通过,那么std::common_type就能通过。因为common_type的底层依赖的就是?: common_type的实现里,利用了问号表达式:ternary conditional operator (?:) https://stackoverflow.com/questions/14…...