六千字带你快速上手操作MySQL

Clawdbot MySQL安全审计工具安装与实战指南 MySQL安全审计是数据库运维与红蓝对抗中的基础能力,其核心在于识别配置风险、权限滥用和默认漏洞。Clawdbot作为轻量级命令行审计工具,基于MySQL官方配置模型,通过调用系统mysql客户端执行自动化检测,覆盖空密码、匿名用户、local_infile启用、secure_file_priv缺失等高频风险项。它不依赖Python驱动,强调环境适配与最小权限实践,适用于学生实操、运维巡检和安全培训场景。本文聚焦Clawdbot的可落地安装路径——从Python版本兼容性、mysql命令PATH配置、测试账 阅读详情

快速上手MySQL

mysql基础语法

### 字段操作
字段操作概念语法
新增字段对已经存在的表,插入新的字段alter table 【表名】 add 字段名 数据类型 属性
修改字段在我们需要改进某个字段时alter table 【表名】change 原版字段名,新版字段名 属性
删除字段删除无用字段alter table 【表名】 drop 字段名

主外键设置

​

我们使用主外键的方式来保证我们的数据完整性

​ 概念及语法见如下表格

概念语法
添加主键保证数据完整性ALTER TABLE 表名 ADD CONSTRAINT 主键名PRIMARY KEY 表名(字段名);
添加外键保证数据完整性ALTER TABLE 表名ADD CONSTRAINT 设置外键名称 FOREIGN KEY(关联字段名) REFERENCES 关联表名字(字段名);

​ 注意事项:mysql的引擎支持问题,innoDB储存类型支持外键,MYISAMD的储存类型不支持外键

​ 复合主键创建方式:

alter	table  result aDD constraint PK_RESULT primary key (studentNo,subjectNo,examDate);

DMl语句操作数据

插入数据记录

​

概念语法
插入单行数据插入一条需要存储在数据库的数据记录INSERT INTO 表名 (字段1,字段2)value(插入数据)
插入多行数据插入多行需要存储在数据库的数据记录INSERT INTO 表名 (字段1,字段2)value(插入数据1),(插入数据2)
将查询结果插入新表第一种将查询结果备份到新创建的数据库INSERT INTO 新表名 (字段1,字段2) select 字段1,字段2,… from 数据源表
将查询结果插入新表第二种将查询结果备份到新创建的数据库select 字段1,字段2 into 新表 from 原表
修改数据记录
概念语法
修改数据记录当我们要对某一条数据修改或者更新时我们要用到UPDATE 表名 SET 字段1= '修改内容 WHERE 条件
删除表
概念语法
删除数据方法一删除与条件相符的数据Delete from 表名 where 判断条件
删除数据方法二删除整个表的所有记录truncate table 表名

DQL查询

概念语法
查询语句方法在数据库中查询符合条件的数据SELECT 字段列表 FROM 查询表名 WHERE 条件 GROUP BY 分组字段 HAVING 条件 ORDER BY 排序字段名 ASC

LIMIT子句

LINIT子句的使用
概念语法
limit子句设置查询显示的数据条数SELECT * FROM grade LIMIT 位置偏移量;

常用函数集合

聚合函数
函数名作用
avg()返回某一字段的平均值
count()返回某个字段的函数
max()返回某字段的最大值
min()返回某字段的最小值
sum()返回某字段的总和
常勇字符串函数
函数名作用举例
concat(STR1,STR2)连接字符串str1,str2为一个完整的字符串select concat(‘my’,‘s’,‘ql’)返回:mysql
insert (str,pos,len,newstr)将str从怕pos的位置开始len个字符长度替换为newstrinsert (‘这是sql数据库’,‘3’,‘10’,‘mysql’);返回:这是mysql数据库
lower(STR)将str所有字符改为小写SQL LOWER(SQL)返回:sql
upper(str)将str所有的字符串改为大写sql upper(sql)返回:SQL
SUBSTRING(STR,NUM,LEN)返回字符串str的第num个位置开始长度为len的子字符串substring(‘javaMysqlOracle’,5,5)返回结果:Mysql
时间日期函数
作用举例
curdate()获取当前日期curdate()返回:2021-3-5
curtime()获取当前时间curtime()返回:15-39-45
now()获取当前的日期与时间返回:2021-3-5-15-39-45
week(date)返回日期date为一年中的第几周SELECT WEEK(NOW());返回9
year(date)返回日期date的年份SELECT YEAR(NOW());返回时间为2021
HOUR(TIME)返回time的小时值SELECT HOUR(CURTIME());返回为 15
minute(time)返回time的分钟值SELECT MINUTE(CURTIME()); 返回值为44
datediff(date1,date2)返回d1和d2之间的相隔天数SELECT DATEDIFF(NOW(),‘2008-8-8’);返回值:4592
adddate(date,n)计算日期参数date加上n天之后的时间SELECT ADDDATE(NOW(),5);返回值:20213-10-15-48-05
数学函数
函数名字作用举例
ceil(x)返回大于或等于数值x的最小整数SELECT CEIL(5);返回:5
floor(x)返回小于或者等于数值x的最大整数SELECT FLOOR(5);返回:5
rand()返回0~1的随机数SELECT RAND();返回0.86

in和not in 子查询

IN 子查询

​ 问题: 在mysql中档当子查询跟随在=,!=,<,<=,>,>=之后,它不允许子查询返回多条记录,如果有多条满足条件的记录返回,会出现执行代码错误。

​ 解决方法 :

把等号替换成 in关键字

in子查询的语法:

	 select 字段 from 表名
	 where 条件1 in(select 字段 from 表名 where 条件)————————>	 //在小括号中,再来一次查询,作为一个条件,来与条件1判断

NOT IN 子查询

问题:如果我们想要获得与in子查询相反的结果,

解决方案:不需要去进行过多的代码操作,只需要在代码中的 in 前加一个not 就可以获取到查询相反的结。

语法没有太大的变化

语法总结

启动与关闭

net stop MySQL;
net stop MySQL;
mysql -u root -p

创建数据库
create database 数据库名;

查看数据库列表,可查看已存在的数据库
show databases;
选择数据库
use 数据库名;

删除数据库
drop database 数据库名;
创建表
create table 表名(
字段1 数据类型 [字段属性|约束] [索引] [注释],
字段1 数据类型 [字段属性|约束] [索引] [注释]
);

查看表
show tables;

查看表定义
describe 表名;      desc 表名;

删除表
drop table [if exists] 表名;

在删除表之前,先使用IF EXISTS语句验证表是否存在
设置数据表的存储引擎
creata table 表名(

)engine=存储引擎;

修改表名
alter table<旧表名> rename [to] <新表明>;
alter table `demo01` rename `demo02`;

添加字段
alter table 表名 add 字段名 数据类型 [属性];
alter table demo02 add `password` varchar(20) not null;

修改字段
alter table 表名 change 原字段名 新字段名 数据类型 [属性];
alter table demo02 change `name` `username` char(10) not null;

删除字段
alter table 表名 drop 字段名;
alter table demo02 drop `password`;
约束

添加主键约束
alter table 表名 add constraint 主键名 primary key 表名 (字段名);
alter table student add constraint pk_studen primary key grade (gradeId);

添加外键约束
alter table 表名 add constraint 外键名 foreign key (外键字段) references 关联表名 (关联字段)
alter table student add constraint fk_student_grade foreign key(gradeId) references grade (gradeId);

插入单行数据
insert into 表名 [(字段名列表)] values (值列表);
insert into syudent(loginPwd,studentName,gradeId,phone,bornDate)
values(‘123’,‘黄小平’,1,‘13956799999’,‘1996-5-8’);

插入多行数据
insert into 新表 (字段名列表)
values(值列表1),(值列表2),……,(值列表n);
insert into subject (subjectName,classHour,gradeID)
values(‘Logic Java’,220,1),(‘HTML’,160,1),(‘Java OOP’,230,2);

将查询结果插入的新表
insert into 新表 (字段1,字段2,字段3)
select 字段1,字段2……
from 原表;

句式1需要先按照所插入字段的类型,顺序,个数创建新表,才能插入数据
create table 新表 (
select 字段1,字段2
from 原表 );

句式2: 岁插入语句的执行而创建新表,无须先创建表;
更新数据记录
update 表名 set 字段1=值1,字段2=值2,…,字段n=值n [where 条件];

删除数据记录
delate from 表名 [where条件];

删除表中所有记录
truncate table 表名;

DQL语句
select <字段名列表>
from <表名或视图>
[where <查询条件>]
[group by <分组的字段名>]
[having<条件>]
[order by <排序的字段名>[asc或deac]]
limit字句
select <字段名列表>
from <表名或视图>
[where <查询条件>]
[group by <分组的字段名>]
[order by <排序的列名>[asc或deac]]
[limit [位置偏移量,]行数]

简单子查询

SELECT … FROM 表1 WHERE 字段1 比较运算符(子查询)

select `studentNo`,`studentName`,`sex`,`bormDate`,`address`
from `student`
where `bornDate`>
(select `bornDate`from`student`where`studentName`=`李斯文`);

select 'studentName` from `student` where `studentNo` = (
swelect `studentNo` from `result`
inner join `Subject` on result.subjectNo= subject.subjectNo
where `studentResult` =60 AND `subjectName` ='Logic Java'
);

SELECT `studentName` FROM `student` 
WHERE `studentNo` IN(
    SELECT `studentNo` FROM `result` 
    WHERE `subjectNo` =  (
        SELECT `subjectNo` FROM `subject`
        WHERE `subjectName`='Logic Java'
    )AND `studentResult` = 60  
);
从手写SQL到管理后台:老游戏项目C# WinForm+MySQL 实战复盘 数据库设计是任何业务系统的基石,而权限与日志审计则决定系统的安全性。在游戏运维场景中,管理后台的核心价值在于将高频、易错的SQL操作固化为可视化流程,同时通过角色分级和操作留痕降低人为风险。一个老游戏项目的实战经验展示了如何运用C# WinForm和Dapper构建轻量级客服管理后台,涵盖账户、角色、流水、日志等模块的数据库表结构,以及异步查询、连接池管理、索引优化、字符集配置等关键技术细节。这些实践不仅适用于游戏服务端,也对各类内部运营系统的开发具有参考价值。规范化的查询与受控的变更流程,显著提升了客服响 阅读详情

相关推荐

三大主流数据库快速上手

三大主流数据库快速上手 MSSQL MySQL Oracle

mysql(6000字详细攻略)

事务是一个整体,由一条或者多条SQL 语句组成,这些SQL语句要么都执行成功,要么都执行失败, 只要有一条SQL出现异常,整个操作就会回滚,整个业务执行失败即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成 的操作全部撤销,滚回到事务开始时的状态。(在提交之前执行)查看提交事务的状态: SHOW VARIABLES LIKE 'autocommit'手动提交事务 set @@autocommit = on (默认)/off自动提交事务。

qq_65993561的博客 1318

谈谈人大金仓数据库

人大金仓数据库(Kingbase)是国产自主研发的关系型数据库管理系统,兼容主流数据库语法,支持高并发、高安全性及国产化适配。该数据库提供完整的安装部署方案,包括环境准备、初始化配置和验证流程,并配备专业的数据迁移工具(KDMS)实现从Oracle/MySQL等数据库的平滑迁移。系统提供KStudio等图形化管理工具,支持性能监控、备份恢复等运维功能,同时具备性能调优、高可用架构、分区表管理等高级特性,满足政府、金融等领域的企业级需求。

蜚鸣的博客 2097

6000字带你入门MySQL

mysqlSQL语句函数约束多表查询事务。

https://github.com/QAQDFAFD 1008

量化策略分享之首板低开

这个量化策略的核心是选择在低位、首次涨停后次日低开的股票,开盘时买入,上午有盈利就卖出,没有就拿到尾盘在卖出;策略优点在于选择的股票在低位,风险较低,并且刚启动首板,有大资金介入,第二天能快速跑路。

qq_29301281的博客 1467

多仓智能订单路由与动态优化方案设计

现在有很多商家会有多个仓库,并分布在不同的城市中,当用户下单后会根据商品库存及订单信息将订单分配到对应的仓库进行发货,如就近原则,本期基于多仓库设计一套订单路由方案,包含核心逻辑、规则优先级和实施方案,适用于多仓协同的订单自动分配场景

14年产品经理老兵,想把自己的经验及总结分享给大家,只讲思路及实操,不讲废话 2481

Mysql安装配置和Mysql使用六千字详解!!

数据库基本操作详解,你想学的增删改查都在里面!!!,约束和联合查询详细讲解

qq_62958114的博客 2382

Fluent新手避坑:遇到‘Floating point exception’别慌,这7个排查步骤帮你搞定

本文为Fluent新手提供了7个排查'Floating point exception'错误的实用步骤,包括边界条件检查、时间步长优化、求解器配置等关键技巧。通过系统化的诊断流程,帮助用户快速定位并解决CFD仿真中的浮点异常问题,提升计算稳定性。

weixin_42531886的博客 286

MySQL 数据库快速上手 + Python 连接实战:一篇搞定数据操作!

本文章主要是讲解怎么使用SQL命令以及怎么使用Python连接MySQL数据库,而不是在图形化的界面操作MySQL数据库。

m0_68551144的博客 1121

零代码进行单细胞数据全流程分析教程

我开发的本地电脑无限使用无限分析作图的生信零代码一键分析电脑软件神器OmicsTools 软件在github上的zihaoxingstudy1/OmicsTools仓库 中,大家可以下载安装OmicsTools进行各种生信分析和可视化作图。

qq_40073899的博客 3625

黑猫带你学eMMC协议第2篇:eMMC部分相关名词释义

1 前言 1.1 声明 本文依据eMMC JEDEC5.1、网络资料及个人工作经验整理而成,如有错误请留言。 本文结合eMMC JEDEC5.1协议手册查看效果更佳。 1.2 本文背景 本文关键词不包括emmc jedec5.1协议第3章节:《Terms and definitions》内容。关于emmc协议层的关键词,直接查阅spec相关章节即可,清晰明了,此处没必要再列出。 本文为本人工作学习中常听到或常用到关乎于emmc/flash的一些关键词合集,没有固定分类,不需要强行记忆,供查询使用。 1.

黑猫奥利奥的博客 7433

如何快速上手 MySQL 数据库:从安装到实践的全攻略

最新接入DeepSeek-V3模型,点击下载最新版本InsCode AI IDE 如何快速上手 MySQL 数据库:从安装到实践的全攻略 随着数据驱动型应用的普及,MySQL 作为世界上最流行的开源关系型数据库管理系统,已经成为开发者不可或缺的技术工具。然而,对于初学者来说,MySQL 的安装和配置可能会显得复杂且耗时。本文将通过详细教程帮助你轻松完成 MySQL 的安装,并结合智能化开发工具 I...

SilverfoxFalcon45的博客 786

Allegro技巧----相同模块复用实现快速布局

使用Allegro软件进行PCB Layout设计时,当电路图中有很多路相同的模块,使用模块复用的的操作方法,可以显著提高工作效率,同时也可以使PCB布局在整体上显得美观。 如图,有8个相同的ADC采样电路模块,它们在原理图中的电路也是一样的,对于这多个相同的电路模块,如果一个个元器件布局很明显做了很多重复机械的劳动,效率低下;但是强大的Allegro软件早就考虑到了这点,只需要在PCB中做好其中的一个,则其余相同的模块通过复用的方式,可以快速完成,方便省事还美观。 具体步骤: 1.首先完成一个模块的PC

sinat_15677011的博客 5655

六千字带你了解 Oracle 统计信息和执行计划

作者 | JiekeXu来源 |JiekeXu之路(ID: JiekeXu_IT)转载请联系授权 |(微信ID:xxq1426321293)大家好,我是 JiekuXu,很高兴又和...

JiekeXu的博客 1462

uniapp - 实现手机端H5网页直播功能效果,拿到后端推流地址或播放资源后进行前端的流畅播放和画面展示功能,uniapp实时推流/拉流直播系统详细教程(提供完整示例代码,一键复制开箱即用!)

uniapp,h5网页,手机端H5网页,uniapp h5直播功能页面,uniapp直播实时推送显示,uniapp h5直播怎么做,怎么使用uniapp去实现移动端手机H5直播,h5 vue+uniapp怎么做直播,uniapp中使用videojs构建H5直播播放器,uniappH5端怎么实现直播推流,uniapp如何实现直播,直播聊天功能,h5平台端直播用什么插件,uniapp手机网页直播用什么组件插件播放器,uniapp手机H5直播播放器详细教程,直播项目,怎么使用vue+uniapp怎么做H5实时直播

✅ 精选推荐文章 8792

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

DeepSeek问答,六千字,浅谈数据库索引技术!

DeepSeek问答,六千字,浅谈数据库索引技术!

chenoracle的博客 752

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

六千字呕心沥血深度总结,为您揭秘ClickHouse为什么查询这么快!

关于库引擎,简单总结一下。ClickHouse 也支持在创建库的时候,指定库引擎,目前支持 5 种,分别是:Ordinary,Dictionary, Memory, Lazy, MySQL,其实 Ordinary 是默认库引擎,在此类型库引擎下,可以使用任意类型的表引擎。Ordinary引擎: 默认引擎,如果不指定数据库引擎创建的就是 Ordinary 数据库;Dictionary引擎: 此数据库会自动为所有数据字典创建表;...

jmysql的博客 671

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

PHP零基础入门教程笔记最全(三万六千字长文 2024年10月10日最新版)

三万六千字长文 详细的PHP学习笔记 2024年10月10日最新版

hanmo22357的博客 1609

MySQL5.7快速修改表中字段长度

在mysql 5.5版本时,商用环境升级,有一个表存在六千多万数据,升级时需要修改这个表其中一个varchar类型字段的长度,当时用了大概4个多小时,还没有结束,之后我们系统mysql升级到5.7版本,再一次升级模拟测试中,又修改了该表的字段长度,这次用时为7个多小时,下面是记录的时间。(进入mysql命令行,执行tee upgrade.log,之后执行的sql都会记录到该log中,当不需要记...

weixin_30843605的博客 1851

mysql 创建几千张表_MySQL快速创建千万级测试数据

备注: 此文章的数据量在100W,如果想要千万级,调大数量即可,但是不要大量使用rand() 或者uuid() 会导致性能下降背景在进行查询操作的性能测试或者sql优化时,我们经常需要在线下环境构建大量的基础数据供我们测试,模拟线上的真实环境。废话,总不能让我去线上去测试吧,会被DBA砍死的创建测试数据的方式1. 编写代码,通过代码批量插库(本人使用过,步骤太繁琐,性能不高,不推荐)2. 编写存储...

weixin_42429956的博客 563

impor mysql to neo4j_如何快速导入网络数据到图数据库Neo4j ?

那要看你原始数据存哪了,我也是亿级数据,原始数据在oracle里面,在线用apoc的load.jdbc导入的,平均速度为每秒六千多条边,存量不在乎时间窗口,增量这个速度也可以了。具体步骤为1 下载apoc包放到plugins文件夹中2 依据你的原始数据所在的库的类别,下载相应的jdbc jar包,并放到plugins文件夹中3 对节点的内码创建唯一性约束4 编写apoc.load.jdbc脚本,并...

weixin_39630106的博客 182

mysql导入数neo4j_如何快速导入网络数据到图数据库Neo4j ?

那要看你原始数据存哪了,我也是亿级数据,原始数据在oracle里面,在线用apoc的load.jdbc导入的,平均速度为每秒六千多条边,存量不在乎时间窗口,增量这个速度也可以了。具体步骤为1 下载apoc包放到plugins文件夹中2 依据你的原始数据所在的库的类别,下载相应的jdbc jar包,并放到plugins文件夹中3 对节点的内码创建唯一性约束4 编写apoc.load.jdbc脚本,并...

weixin_42510731的博客 162

Mysql面试题

【精选】MySQL数据库面试题总结(2022最新版)_mysql面试题_程序猿周周的博客-优快云博客MySQL 精选 60 道面试题(含答案)_mysql面试题-优快云博客【精选】MySQL常见面试题汇总(建议收藏!!!)_mysql面试题_的博客-优快云博客【精选】100道MySQL面试题及答案_mysql面试必会100道题_liu_weiliang10405的博客-优快云博客MySQL入门技能树

qq_56762247的博客 452

mysql中图片用什么数据类型_mysql 什么时候用单列索引?什么使用用联合索引?...

点击蓝色字免费订阅,每天收到这样的好信息前言:最近有不少粉丝关注本公众号。并且我已经成功开通了流量主同时会赚一点点广告费,我打算每个月把这部分钱拿出来给大家买点书刊,算是给大家一点福利吧。大家想买什么书扫描下方的加他拉你加群。最后,非常感谢大家的关注。1,首先要确定优化的目标,在什么样的业务场景下,表的大小等等。如果表比较小的话,可能都不需要加索引。2,哪些字段可以建索引,一般都wher...

weixin_39751679的博客 246

一个月从零基础到入职,这份网络安全学习路线真能保底六千吗

本文深度拆解“一个月零基础入职网络安全”的速成路线,指出其忽视法律法规与底层原理的隐患。文章强调扎实掌握网络协议、系统基础及合规意识的重要性,为求职者提供避开培训陷阱、构建真实竞争力的科学学习建议。

2503_90953556的博客 146

Springboot计算机毕业设计留守儿童爱心网站60h87(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

项目功能:用户,宣传新闻,志愿活动,爱心捐赠,旧物捐赠,活动报名,了解我们,友情链接,书信故事。

weixin_41924130的博客 826
上一篇: 快速入门RabbitMQ并且加入项目实战
下一篇: 写个注解帮你净化使用分布式锁的重复操作
冷环渊
博客等级 码龄7年 1130粉丝 176原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷环渊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值