当前位置: 首页 > article >正文

【 MySQL 使用教程】

一、数据操作数据库-- 登录mysql-u root-p-- 查看所有数据库showdatabases;-- 创建数据库createdatabaseifnotexists数据库名;-- 删除数据库dropdatabaseifexists数据库名;-- 进入数据库use数据库名;表table-- 查看数据表showtables;-- 创建表createtable表名(列1名intprimarykey,列2名varchar(255)unique);-- 删除表droptableifexists表名;-- 修改表altertable表名renameto新表名;-- 修改表名altertable表名add列名 列类型;-- 添加altertable表名dropcolumn列名;-- 删除altertable表名modify列名 列类型;-- 修改列类型-- 修改约束条件altertable表名add约束条件在建表时constraint数据完整性验证主键约束外键约束唯一约束检查约束非空约束。在约束的开头使用。-- 1.主键在定义列时候定义在末尾定义student_idINTPRIMARYKEYAUTO_INCREMENT,-- 2.外键FOREIGNKEY(class_id)REFERENCESclasses(class_id),-- 3.检查约束有无constrainCONSTRAINTchk_ageCHECK(age0ANDage150),ageINTCHECK(age0ANDage150),-- 4.非空约束nameVARCHAR(50)NOTNULL,-- 5.唯一值约束emailVARCHAR(100)UNIQUE,-- 6.默认值约束ageINTDEFAULT18,表内数据-- 插入insertinto表名(列1,列2)values(val1,val2),(val3,val4);-- 更新update表名set列1val1,列2val2where筛选条件;-- 删除数据deletefrom表名where约束条件;-- 清空表truncatetable表名;-- 查询不重复的列值selectdistinct列名from表名;-- 条件查询select*from表名where列1like张%;-- %是0_是1select*from表名where列1in(val1,val2);-- 值等于select*from表名where列1betweenval1andval2;-- 值≥≤select*from表名where列1isnull;-- 非空-- 排序select*from表名orderby列1asc,列2desc;-- 列1升序asc默认-- 分组类似学生表中按照班级分类并统计每班人数selectcol,count(*)from表名groupby列1havingcount(*)1;-- 限制输出指定行select*from表名limit10;-- 输出前10行select*from表名limit5offset10;-- 输出5-10行-- 连接查询select*from表1innerjoin表2表2别名on表1.id表2.id;-- 内连接重复行select*from表1leftjoin表2表2别名on表1.id表2.id;-- 左连接左表1所有行函数不能用在where中可用在having中。避免在索引列中使用count(), sum(), avg(), max(), min(),data_format(变量1,‘%Y年%m月%d日’)left(‘hellow’,3)输出hel二、索引、视图索引适合所有的列where常用join关联order by和group by的列唯一值高的索引失效!、、、or连接多个条件、like、not in、not exists、有运算和函数操作-- 创建索引create[unique]index索引名on表名(列1,列2);createindex索引名on表名(name(10));-- 前缀索引设置name列前10个字符作为索引createfulltextindex索引名on表名(列1);-- 全文索引用于文本快速搜索-- 使用索引会自动使用索引select*from表名where筛选条件;-- 自动使用√ 视图-- 创建视图createview视图名asselects.列1,s.列2,c.列3,…fromstudent sleftjoinclasses cons.cidc.cidwhere筛选条件;-- 带检查项的视图createview视图名asselect*fromstudentswherescore90withcheckoption;-- 使用视图select*from视图名where筛选条件;-- 更新视图update视图名set列名值where筛选条件;三、事务、存储函数、存储过程事务事务是把一组sql操作作为一个不可分割的工作单元要么全部成功要么全部失败。-- 1.开启事务starttransaction;-- 2.执行sql操作insertintostudents(name,sid)values(zhangsan,2001);updateclasssetcountcount1whereclassid1;-- 3.判断 并 提交/回滚if(selectcount(*)fromstudentswheresid2001)1then-- 判断第一步执行成功commit;select操作成功;-- 提交事务elserollback;select操作失败;-- 回滚事务endif;隔离级别 并发问题隔离级别并发问题脏读读到别人未保存数据不可重复读同一事务两次读取结果不同幻读同一查询两次结果行数不同存储函数存储函数计算并返回一个值select 函数名()调用可像内置函数使用只能查询不含事务控制存储过程执行业务逻辑、处理数据call 过程名()调用不能在select中使用能修改包含事务控制参数只有输入参数没有输出参数有返回值参数只读在函数内无法修改参数有作用域。-- 1.定义函数delimiter// -- 定义结束字符createfunction函数名(ageint)-- 函数名(参数名 参数类型,……)returnsint-- 返回值类型deterministic-- 【可省】确定性函数即相同的输入总是有相同的输出readssqldata-- 【可省】读取数据begindeclareageint;-- 声明变量setage……-- 设置变量的值每次修改都需要加setreturnif(age0,0,age);-- 返回值意思如果age小于0则输出0end// -- 结束函数delimiter;-- 定义结束字符-- 2.使用函数selectname,函数名(参数)from表名;流程控制语句函数内-- ififage50thensettypesolder;elseifage20thensettypesyounger;elsesettypeskid;endif;-- casecaseclasswhen1thensetteacherzhang;when2thensetteacherli;elsesetteacherwang;endcase;-- 循环whileage10dosetageage-1;-- 语句块endwhile;游标cursor用于逐行处理查询结果的数据库对象条件处理数据转换-- 1.定义游标结束标志done变量名也需要提前申请declaredoneintdefault0;-- 2.声明游标declare游标名cursorforselect语句;-- 3.声明处理程序declarecontinuehandlerfornotfoundset结束标志done1;-- 4.打开游标open游标名;-- 5.循环读取循环标签:loop-- 定义循环标签的名字fetch游标名into变量1,变量2,…;-- 循环读取一行if结束标志1then-- 检查是否结束leave循环标签;endif;setage40;-- 处理数据本行数据endloop循环标签;-- 6.关闭游标close游标名;存储过程是存储数据库中“可重用SQL程序”用于封装复杂业务逻辑。-- 创建存储过程delimiter$$createprocedure过程名(inageint,-- 输入参数outnamevarchar(50),-- 输出参数inoutsexvarchar(2)-- 输入输出参数)begin-- SQL语句变量声明流程控制end$$delimiter;-- 使用存储过程call过程名(参数1,参数2);四、其他存储引擎 engine是数据库的底层存储机制决定了数据的存储、索引、事务等行为。可选引擎InnoDB(默认)MyISAMMEMORY-- 查看支持的引擎showengines;-- 查看students表的引擎showtablestatuslike表名students;-- 定义引擎createtable表名(列1数据类型)engineInnoDB;-- 指定为InnoDB类型触发器触发器是自动执行的存储过程在“指定表”发生insert /update/ delete时自动触发触发时机before 操作执行前after操作执行后。-- 创建触发器下单后自动扣库存delimiter$$createtrigger触发器名afterinserton表名for each row-- after操作后触发begin-- 触发的操作update、insert、deleteupdate表名setstockstock-NEW.quantity-- 参数NEW 代表插入的新行数据whereproduct_idNEW.product_id;end$$delimiter;用户权限%从任何IP地址连接MySQL。*所有。创建用户-- 创建用户createuserzhanglocalhostidentifiedbypassword123;createroleread_write;-- 创建角色-- 删除用户dropuserzhanglocalhost;-- 修改密码alteruserzhanglocalhostidentifiedbynewpassword;为用户授权-- 授权语法grant权限列表on数据库名.表名to用户主机;grantallprivilegesonschools.*toadminlocalhost;-- 给admin在schools数据库中所有权限grantselect,insertonschools.classtoteacher%;-- 给教师select和insert权限grantexecuteonprocedure数据库名.表名touserlocalhost;-- 为角色授权grantselect,insertonschools.*toread_write;-- 查看用户权限语法showgrantforadminlocalhost;-- 撤掉权限语法revoke权限列表on数据库.表from用户主机;-- 刷新权限语法flushprivileges;创建角色为角色赋权-- 将角色授予用户grantread_writeto用户主机;-- 激活角色setdefaultroleread_writeto用户主机;

相关文章:

【 MySQL 使用教程】

一、数据操作 数据库 -- 登录 mysql -u root -p -- 查看所有数据库 show databases; -- 创建数据库 create database if not exists 数据库名; -- 删除数据库 drop database if exists 数据库名; -- 进入数据库 use 数据库名;表table -- 查看数据表 show tables;-- 创建表 crea…...

学生项目福音:AI超清画质增强快速入门,WebUI界面开箱即用

学生项目福音:AI超清画质增强快速入门,WebUI界面开箱即用 1. 为什么你需要AI画质增强技术 1.1 低清图像的普遍困扰 作为学生开发者,你可能经常遇到这样的场景:课程项目需要展示清晰的图片素材,但手头只有模糊的截图…...

复古游戏机式AI绘图:像素极光引擎LoRA模块化扩展实战教程

复古游戏机式AI绘图:像素极光引擎LoRA模块化扩展实战教程 1. 像素极光引擎简介 Pixel Aurora(像素极光)是一款将复古游戏机美学与现代AI绘图技术完美融合的创新工具。它采用经典的8-bit像素风格界面,却搭载了最先进的扩散模型技…...

图像滤波实战:理想、巴特沃斯与高斯滤波器的低通/高通实现与性能对比

1. 图像滤波基础与核心概念 第一次接触图像滤波时,我完全被各种专业术语搞晕了。直到自己动手写代码调试,才发现原来这些滤波器就像不同类型的"美颜滤镜"——有的擅长磨皮(低通滤波),有的擅长锐化&#xff0…...

LM339比较器:从基础参数到典型应用场景解析

1. LM339比较器基础解析 第一次接触LM339时,我完全被它"四合一"的设计惊艳到了——这个比指甲盖还小的芯片里,竟然藏着四个独立工作的电压比较器。简单来说,它就像四个并排摆放的天平,能同时比较八路电压信号的高低。实…...

扩展你的 RAG:基于 Rust 的 LanceDB 和 Candle 索引管道

原文:towardsdatascience.com/scale-up-your-rag-a-rust-powered-indexing-pipeline-with-lancedb-and-candle-cc681c6162e8?sourcecollection_archive---------2-----------------------#2024-07-11 构建大规模文档处理的高性能嵌入和索引系统 https://medium.co…...

IDEA Services窗口:一站式掌控多服务启动与端口监控

1. 为什么你需要Services窗口 作为一个常年和微服务打交道的开发者,我最头疼的就是同时管理五六个服务模块。每次启动项目都要开一堆终端窗口,查看日志得像玩连连看一样在不同窗口间切换。更崩溃的是,当某个服务启动失败时,往往要…...

解决Blender和UE5坐标轴差异:服装Mesh导入导出常见问题排查指南

Blender与UE5坐标轴差异全解析:从理论到实践的资产迁移指南 在数字内容创作流程中,Blender与Unreal Engine 5(UE5)的协同工作已成为行业标准。但许多开发者第一次将服装模型从Blender导入UE5时,都会遇到一个令人困惑的现象——明明在Blender中…...

深入解析Pydantic中的Field与Annotated:从基础到实战应用

1. Pydantic基础与Field入门 Pydantic是Python生态中数据验证和序列化的黄金标准,我在实际项目中用它处理过各种复杂的数据结构。它的核心优势在于利用Python类型提示来定义数据模型,而Field则是模型定义中最灵活的工具。 Field的基本用法很简单&#xf…...

免费会员源码网大盘点:从入门搭建到深度运营的全攻略

一、全球会员系统开源生态:技术架构与商业场景双驱动1. Bagisto Membership(Laravel生态)作为基于Laravel框架的会员管理解决方案,其核心优势在于:多商户支持:原生支持D2C、B2B2C等复杂商业模式&#xff0c…...

程序员必看!高质量免费源码网推荐

在数字化浪潮席卷全球的今天,代码已成为驱动创新的核心动力。无论是初创企业快速搭建商业平台,还是开发者优化项目架构,高质量的源码资源都能显著缩短研发周期、降低开发成本。然而,面对网络上鱼龙混杂的源码平台,如何…...

亲测有效!5个无广告免费源码网 —— 会员源码网深度解析

在当今数字化时代,源码资源对于开发者、创业者和企业来说至关重要。一个优质的源码网站不仅能提供丰富的代码资源,还能促进技术交流和创新。今天,我要向大家推荐一个亲测有效的无广告免费源码网——会员源码网。会员源码网简介会员源码网是一…...

会员源码网:站长必备的一站式源码解决方案

作为站长或开发者,你是否经常为寻找合适的源码而烦恼?要么资源老旧难以适配新环境,要么免费源码暗藏后门和广告,要么付费源码价格高昂却效果不佳。在众多源码平台中,会员源码网​ 凭借其独特的会员制模式和优质资源&am…...

Hunyuan-MT 7B效果实测:韩语、俄语、藏语等小语种翻译到底有多准?

Hunyuan-MT 7B效果实测:韩语、俄语、藏语等小语种翻译到底有多准? 1. 小语种翻译的痛点与解决方案 在全球化交流日益频繁的今天,小语种翻译需求快速增长,但传统解决方案往往存在三大痛点: 准确率低:韩语…...

SUPER COLORIZER 理解操作系统调度:多任务并发处理图片上色请求的实践

SUPER COLORIZER 理解操作系统调度:多任务并发处理图片上色请求的实践 你有没有想过,当你把一张黑白照片上传给SUPER COLORIZER,点击“上色”按钮后,你的电脑或者服务器里到底发生了什么?如果这时候有100个人同时上传…...

百度PaddleOCR-VL-WEB效果实测:识别精度超高,多语言支持

百度PaddleOCR-VL-WEB效果实测:识别精度超高,多语言支持 1. 效果初探:它到底有多强? 如果你还在为识别扫描的PDF文档、复杂的表格或者多语言混合的合同而头疼,那么百度开源的PaddleOCR-VL-WEB镜像,很可能…...

ANIMATEDIFF PRO应用案例:如何制作具有电影感的日落海滩动态壁纸

ANIMATEDIFF PRO应用案例:如何制作具有电影感的日落海滩动态壁纸 1. 为什么选择ANIMATEDIFF PRO制作动态壁纸 1.1 普通视频生成工具的局限 大多数视频生成工具在制作动态壁纸时面临三个主要问题: 动作不连贯:海浪拍打、云层移动等自然现象…...

SDMatte商业级抠图案例展示:电商平台海量商品图处理实录

SDMatte商业级抠图案例展示:电商平台海量商品图处理实录 1. 开篇:当AI抠图遇上电商实战 电商平台每天要处理成千上万的商品图片,从服装模特到珠宝首饰,每张图都需要完美的展示效果。传统人工抠图不仅成本高,面对促销…...

别再手动部署了!用Jenkins Pipeline + K8s + Harbor 实现Spring Boot项目自动化发布(保姆级教程)

从混乱到优雅:基于Jenkins Pipeline的云原生CI/CD实战指南 为什么你的自动化部署流程依然低效? 在技术团队中,我们经常遇到这样的场景:明明已经配置了GitLab代码仓库、搭建了Jenkins构建服务器、部署了Harbor镜像仓库和Kubernetes…...

AcousticSense AI优化升级:如何提升识别准确率和响应速度

AcousticSense AI优化升级:如何提升识别准确率和响应速度 1. 从听到看:音频识别的新范式 传统音频识别技术往往受限于特征提取的局限性,而AcousticSense AI开创性地将声音转化为视觉信号进行处理。这套系统通过三个关键步骤实现音频理解&am…...

告别PX4!用APM+Gazebo+SITL在Ubuntu 20.04上从零搭建无人机仿真环境(保姆级排坑实录)

告别PX4!用APMGazeboSITL在Ubuntu 20.04上从零搭建无人机仿真环境(保姆级排坑实录) 当大多数无人机开发者还在PX4生态中挣扎于环境配置时,APM固件正以更轻量级的架构和灵活的扩展性悄然崛起。本文将带你跳出PX4的思维定式&#xf…...

HunyuanVideo-Foley在智能家居场景的落地:让智能设备拥有更自然的语音反馈

HunyuanVideo-Foley在智能家居场景的落地:让智能设备拥有更自然的语音反馈 1. 智能家居音效的现状与痛点 清晨6点半,刺耳的"滴滴滴"闹铃声把你从睡梦中惊醒;晚上关灯时,突然的"咔哒"断电声让人心头一紧——…...

ComfyUI Qwen镜像部署与使用:小白也能轻松玩转AI图像生成

ComfyUI Qwen镜像部署与使用:小白也能轻松玩转AI图像生成 1. 认识Qwen-Image-Edit-F2P模型 Qwen-Image-Edit-F2P是一个专注于人脸控制的AI图像生成模型,它能够将一张简单的人脸照片转化为精美的全身图像。这个模型基于ComfyUI平台部署,让普…...

Android 11 Settings功能裁剪实战:从PreferenceController到XML配置的完整流程解析

Android 11 Settings功能裁剪实战:从PreferenceController到XML配置的完整流程解析 在Android系统定制开发中,Settings应用的菜单项管理是一个高频需求场景。当我们需要隐藏或移除某些系统功能时(如打印服务、备份选项)&#xff0…...

告别卡顿!用AutoDL云GPU+VS Code远程开发,5分钟搞定深度学习环境搭建

告别卡顿!用AutoDL云GPUVS Code远程开发,5分钟搞定深度学习环境搭建 当你在本地运行ResNet50模型时,风扇狂转如直升机起飞,而epoch进度条却像蜗牛爬行——这场景每个深度学习开发者都不陌生。传统本地开发环境面临三大困境&#x…...

从原理图到比特流:手把手解读Vivado里那个神秘的SPI x4配置电路图(附Mode引脚设置对照表)

深入解析Vivado SPI x4配置电路:从原理图到硬件实现的完整指南 在FPGA开发中,SPI Flash配置电路的正确设计直接关系到系统能否正常启动和工作。许多工程师在第一次接触Xilinx Vivado提供的官方SPI x4配置电路图时,往往会对其中各种网络标签和…...

UI-TARS-desktop部署避坑指南:快速解决模型启动问题

UI-TARS-desktop部署避坑指南:快速解决模型启动问题 1. UI-TARS-desktop概述 1.1 核心功能与架构 UI-TARS-desktop是一款基于Qwen3-4B-Instruct-2507模型的多模态AI应用框架,采用vLLM推理引擎提供高效服务。该系统将大语言模型能力与桌面自动化操作相…...

换个角度看LFI-labs:用Python脚本自动化通关,顺便复习命令注入与文件包含

用Python脚本自动化通关LFI-labs:从漏洞分析到批量测试实战 第一次接触LFI-labs靶场时,我像大多数人一样手动在浏览器里一关关测试。直到某天凌晨三点,盯着第15次重复输入的payload,突然意识到——这种重复劳动正是编程该解决的问…...

Phi-4-mini-reasoning辅助C++项目代码审查:内存管理与性能瓶颈推理

Phi-4-mini-reasoning辅助C项目代码审查:内存管理与性能瓶颈推理 1. 引言 在C开发中,内存管理和性能优化一直是开发者面临的棘手问题。传统的人工代码审查不仅耗时耗力,还容易遗漏潜在风险。最近试用Phi-4-mini-reasoning模型进行代码审查时…...

GCC-Net实战解析:如何通过门控跨域协作提升水下目标检测精度

1. GCC-Net:水下目标检测的新范式 水下目标检测一直是计算机视觉领域的特殊挑战。与常规场景不同,水下环境存在光线衰减、散射效应、颜色失真等问题,导致图像质量显著下降。传统方法要么直接使用原始图像(面临低对比度问题&#x…...