自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(183)
  • 收藏
  • 关注

原创 Trae官网炫酷特效与vue-bits的使用

Trae官网使用了vue-bits组件库实现炫酷动画效果。vue-bits是一个开源的Vue.js动画组件库,提供多种高性能、可定制的交互动画组件。安装方式简单,通过jsrepo工具即可下载所需组件。文中以终端风格登录页面为例,演示了如何快速引入FaultyTerminal组件并调整参数实现特效效果。该组件库适合开发者快速构建专业级动画网站。

2025-10-13 22:42:39 720

原创 43.MySQL管理

MySQL用户权限管理摘要 本文介绍了MySQL数据库的用户管理和权限控制方法。主要内容包括:1)用户管理操作(创建、删除、修改密码),用户信息存储在mysql.user表中;2)权限管理,包括授权(grant)和回收权限(revoke)的语法;3)用户权限分类,详细列出各种权限的作用范围;4)通过实际案例演示创建用户、分配特定权限(如select/insert)、修改密码和删除用户的全过程。特别强调了host字段的重要性,它决定了用户允许登录的IP范围,未指定时默认为%表示所有IP可连接。这些功能使管理员

2025-08-05 21:47:34 728

原创 42.MySQL视图

摘要:MySQL视图可用于限制用户访问敏感数据。视图是虚拟表,其数据来源于基表,可通过CREATE VIEW创建,如CREATE VIEW emp_view AS SELECT empno,ename,job,deptno FROM emp。视图与基表数据双向同步,修改视图会影响基表,反之亦然。视图具有安全(隐藏敏感字段)、性能(避免复杂JOIN)和灵活(兼容旧表结构)三大优势。示例展示了如何创建多表关联视图,实现仅展示雇员编号、姓名、部门名称和薪资级别的功能。

2025-08-05 14:17:05 1023

原创 41.MySQL引擎

MySQL存储引擎类型比较与选择指南 摘要: MySQL支持多种存储引擎,主要包括MyISAM、InnoDB、Memory等,可分为事务安全型(如InnoDB)和非事务安全型(如MyISAM、Memory)。MyISAM速度快但不支持事务和外键;InnoDB支持事务、外键和行级锁,但占用空间较大;Memory引擎将数据存储在内存中,速度快但重启后数据丢失。选择引擎需根据应用需求:无事务要求选MyISAM,需事务支持选InnoDB,临时数据选Memory。可通过ALTER TABLE命令修改表的存储引擎。

2025-08-04 19:12:26 904

原创 40.MySQL事务

本文介绍了MySQL事务的基本概念和使用方法。事务是一组DML操作,用于保证数据一致性,具有原子性、一致性、隔离性和持久性(ACID)特性。文章详细说明了事务操作命令(START TRANSACTION、SAVEPOINT、ROLLBACK、COMMIT)及使用细节,强调事务必须使用InnoDB存储引擎。重点分析了四种事务隔离级别(读未提交、读已提交、可重复读、可串行化)及其可能引发的脏读、不可重复读和幻读问题,通过实例演示了不同隔离级别的行为差异。最后指出MySQL默认采用可重复读隔离级别,满足大多数应用

2025-08-02 19:04:26 964

原创 39.MySQL索引

数据库索引优化查询性能对比分析 本文通过实例演示了数据库索引对查询性能的影响。在1000万条记录的无索引表中,查询耗时3秒;添加索引后,相同查询仅需0.001秒,效率提升3000倍。文章详细分析了索引原理(如二叉搜索树结构)、四种索引类型(主键、唯一、普通、全文)及其适用场景,并提供了索引创建、查看和删除的具体操作方法。同时指出索引的代价:占用额外存储空间(示例中增加200MB)和影响DML操作效率。最后总结了索引使用规则:频繁查询字段适合建索引,而唯一性差或更新频繁的字段则不适合。全文索引部分特别说明其对

2025-07-31 17:18:28 911

原创 38.自增长

MySQL自增长字段使用指南:通过AUTO_INCREMENT属性可实现字段自动递增。创建表时指定id INT PRIMARY KEY AUTO_INCREMENT,插入数据时可用三种方式:1)指定字段名并给自增长字段赋NULL值;2)省略自增长字段名;3)不指定任何字段名但需用NULL占位。可通过ALTER TABLE修改起始值,默认从1开始。注意自增长字段通常与主键配合使用,需为整数类型,若强制指定值则后续将从该值开始递增。使用示例展示了三种插入方式及修改自增值的方法。

2025-07-30 11:11:40 286

原创 37.建表练习【使用约束】

摘要:本文介绍了商店数据库shop_db的设计与实现,包含商品表(goods)、客户表(customer)和购买表(purchase)的创建过程。重点解决了建表时遇到的常见问题:客户姓名的非空约束、电邮唯一性、性别枚举值设置、单价范围检查等。特别针对中文字符集(utf8mb4)导致的ENUM类型错误和外键约束失败问题,提供了详细的解决方案。通过删除重建表并统一指定字符集的方式,最终成功建立了包含主外键约束的三张表。文章强调实践的重要性,指出只看教学视频而不动手操作无法发现和解决实际环境中的问题。

2025-07-26 18:17:19 852

原创 36.约束

MySQL约束机制详解:约束用于确保数据完整性,主要包括NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY和CHECK五种。主键(PRIMARY KEY)具有唯一性和非空性,支持复合主键但一张表只能有一个主键约束。外键(FOREIGN KEY)要求从表字段必须引用主表的主键或UNIQUE字段,且类型需匹配,删除数据时需先删从表记录。在MySQL 5.7中CHECK约束仅语法校验不实际生效。NOT NULL强制字段必填,UNIQUE确保字段值唯一但允许多个NULL值。约束机制是数据

2025-06-30 12:54:56 1066

原创 35.外连接

摘要:外连接是多表查询的重要扩展,解决了传统WHERE关联查询无法保留未匹配数据的问题。左外连接(LEFT JOIN)确保左表所有记录显示,右表不匹配时补NULL;右外连接(RIGHT JOIN)则保留右表所有记录。通过学生表(stu)和成绩表(exam)的案例演示:左外连接可显示所有学生(含无成绩者),右外连接能展示全部成绩(含无学生记录的成绩)。相比传统多表查询仅返回匹配数据,外连接通过NULL填充机制确保了数据的完整性,适用于需要保留"空部门""无成绩学生"等业

2025-06-29 20:31:00 865

原创 34.合并查询

摘要:SQL中的UNION和UNION ALL操作符用于合并多个SELECT语句的结果。UNION ALL直接合并结果集,保留重复行;而UNION会自动去除重复行。示例展示了如何用这两个操作符合并薪资大于2500和管理职位员工的数据,演示了它们的区别和用法。

2025-06-28 19:00:47 235

原创 33.表复制和去重

文章摘要:本文介绍了MySQL表操作的四种实用方法:1)使用LIKE复制表结构;2)通过SELECT语句批量插入数据;3)利用蠕虫复制快速生成测试数据;4)使用临时表实现表去重。其中包含创建结构相同的表、批量数据迁移、数据自增复制以及通过创建临时表、DISTINCT去重、数据转移等步骤实现表去重的完整方案。这些方法在数据库结构复制、数据迁移、性能测试等场景中具有实际应用价值。

2025-06-28 18:47:15 468

原创 32.子查询练习

这篇文章介绍了三个SQL查询案例:1)查询每个部门工资高于部门平均工资的员工信息,通过子查询先获取部门平均工资,再与员工表关联筛选;2)查找每个部门工资最高的员工详情,先获取部门最高工资再匹配员工记录;3)查询包含部门名、编号、地址及人数的部门信息,需关联部门表和员工统计子查询。所有案例都采用先分组统计再关联查询的方法,展示了SQL子查询和多表关联的应用技巧。

2025-06-20 13:14:22 387

原创 31.多列子查询

摘要:多列子查询是指返回多个列数据的子查询语句。以雇员表为例,要查询与Allen部门和岗位相同的其他员工时,需先获取Allen的部门号和工作岗位(两个字段),再用这些字段进行匹配。写法是将多个字段用括号括起对应,如select ename from emp where (deptno,job)=(select deptno,job from emp where ename='ALLEN') and ename<>'ALLEN'。多列子查询的核心在于字段的对应匹配,本质上仍是子查询的扩展应用。(1

2025-06-19 21:30:14 241

原创 30.all和any

摘要:本文介绍了两种使用子查询筛选工资高于30号部门员工的方法。第一种是找出工资高于30号部门最高工资的员工,可使用MAX函数或ALL操作符;第二种是找出工资高于30号部门任意员工工资的员工,可使用MIN函数或ANY操作符。两种方法都通过先获取30号部门的工资基准值,再作为子查询条件实现筛选。

2025-06-19 21:09:51 298

原创 29.子查询做临时表

摘要:本文介绍了如何使用SQL子查询作为临时表(派生表)解决实际需求,即查询每个商品类别中价格最高的商品。首先创建了包含多种电子商品的示例数据库和表,然后通过两步查询实现需求:先用GROUP BY和MAX函数获取各类别最高价格,再将结果作为临时表与原表关联查询。最后总结了子查询的核心作用(分解复杂查询、生成聚合数据)、语法结构(必须指定别名)、常见应用场景(过滤聚合结果、数据预处理)以及关键注意事项(性能优化、避免相关子查询)。这种技术特别适合处理需要中间聚合结果的查询场景。

2025-06-19 09:14:59 597

原创 28.子查询

摘要:本文介绍了SQL中的子查询(嵌套查询)方法。分为单行和多行子查询两类:1)单行子查询示例展示了如何通过嵌套查询查找与SMITH同部门的所有员工;2)多行子查询使用IN关键字,演示了如何查询与10号部门工作相同但不含10号部门的员工信息。两种方法都通过将查询结果嵌套在WHERE子句中实现,多行查询还需配合条件过滤。

2025-06-19 08:07:00 309

原创 27.自连接

摘要:自连接是指将同一张表视为两张表进行查询的技术。通过为表设置别名(如worker和boss),可以解决查询中的命名冲突问题。使用时需注意避免笛卡尔积,通过条件过滤(如worker.mgr=boss.empno)获取有效数据。典型应用场景包括查询员工及其上级关系。当字段存在NULL值时,结果可能不完整。关键要点:使用表别名、避免笛卡尔积、处理NULL值。

2025-06-18 22:10:30 234

原创 26.多表查询

摘要:本文通过创建部门表(dept)和员工表(emp)并插入示例数据,展示了笛卡尔集的形成原理——两表直接查询会产生4×14=56条记录。为解决此问题,需要在WHERE子句中使用关联条件(dept.deptno=emp.deptno)过滤冗余数据。文中还演示了多表查询时的字段歧义处理(需指定表名前缀)和注意事项(多表查询条件数≥表数-1)。最后通过创建工资等级表(grade_salary),给出两个练习示例:查询员工工资等级(使用BETWEEN...AND匹配区间)和按部门号降序排列员工信息,均实现了有效的

2025-06-18 22:09:41 396

原创 25.多子句查询

MySQL多条件查询核心要点:GROUP BY分组→HAVING筛选→ORDER BY排序→LIMIT限制结果。GROUP BY按列分组计算聚合值,HAVING对分组结果筛选(区别于WHERE的行筛选),ORDER BY排序结果,LIMIT控制返回行数。典型应用如统计部门平均工资并筛选排序(SELECT...GROUP BY...HAVING...ORDER BY...LIMIT),掌握"分组→筛组→排序→限结果"的执行顺序即可处理复杂查询。

2025-06-18 22:08:55 555

原创 24.分页查询

摘要:分页查询是数据库优化的重要手段,它能降低内存压力、提升响应速度、减少网络开销并优化数据库性能。MySQL通过LIMIT和OFFSET实现分页,计算公式为:总页数=CEIL(总记录数/每页数量),OFFSET=(当前页码-1)*每页数量。两种语法形式(LIMIT start,rows和LIMIT count OFFSET offset)功能相同,新版推荐后者。优化建议包括避免大OFFSET、使用覆盖索引和确保排序字段有索引。示例展示了按学号分页查询学生的具体实现方法。(150字)

2025-06-18 22:08:25 649

原创 23.查询增强

本文介绍了数据库查询中的常用操作技巧。首先创建了包含员工信息的示例表,重点演示了三种查询方式:1) 日期类型字段的比较查询,展示如何筛选特定日期范围内的记录;2) LIKE通配符的使用,说明"_"匹配单个字符、"%"匹配任意数量字符的用法;3) 空值判断方法,通过IS NULL和IS NOT NULL查询字段为空或非空的记录。这些技巧能有效增强WHERE子句的查询能力,提高数据库操作的灵活性和精确度。

2025-06-18 22:07:02 260

原创 22.流程控制函数

MySQL中的条件控制函数包括:1. IF函数用于简单二分支判断;2. IFNULL函数专门处理NULL值;3. CASE WHEN语句实现复杂多分支逻辑。这些函数可在数据库层实现动态数据处理,示例展示了在学生成绩查询中的应用,包括成绩评级、录入状态检查等,减少了对应用层判断的依赖。

2025-06-18 22:06:18 315

原创 21.加密&系统函数

MySQL常用函数总结:USER()查询当前登录用户信息;DATABASE()返回当前使用的数据库名,未选择则NULL;MD5()对字符串进行32位哈希加密(已不推荐用于密码存储);PASSWORD()为MySQL专用密码加密函数。现在密码存储推荐使用更安全的SHA2()等算法,PASSWORD()仅适用于MySQL系统用户管理。这些函数在权限检查、数据加密等场景有特定用途,使用时需注意其局限性和安全性问题。

2025-06-18 22:04:32 711

原创 20.日期函数

MySQL常用日期时间函数实用指南 本文系统整理了MySQL核心日期时间函数,分为五大类: 获取当前时间:CURRENT_DATE()、NOW()等获取系统日期/时间/时间戳 提取转换:DATE()提取日期部分,YEAR/MONTH/DAY提取年月日,FROM_UNIXTIME转换时间戳 时间计算:DATE_ADD/DATE_SUB实现日期增减(支持YEAR/MONTH/DAY等间隔) 差值计算:DATEDIFF计算日期天数差,TIMEDIFF计算具体时间差 综合示例:包含建表、数据插入及各类函数的实际应用

2025-06-18 22:02:16 844

原创 19.数学函数

摘要:文章介绍了常用数学函数的分类及用法,包括基础运算类(ABS、MOD)、进制转换类(BIN、HEX、CONV)、取整类(CEILING、FLOOR、FORMAT)和统计比较类(LEAST、RAND)。通过创建测试表演示各函数的使用场景,特别说明RAND函数种子的原理及应用,即相同种子生成固定随机序列的特性。这些函数适用于数值处理、数据格式化、随机数据生成等场景。

2025-06-18 22:01:21 698

原创 18.字符串函数

本文介绍了13个常用的SQL字符串处理函数及其应用示例:1. CHARSET()返回字符集;2. CONCAT()连接字符串;3. INSTR()查找子串位置;4. UCASE()转大写;5. LCASE()转小写;6. LEFT()取左侧字符;7. LENGTH()计算长度;8. REPLACE()替换子串;9. STRCMP()比较字符串大小;10. SUBSTRING()截取子串;11. LTRIM()去前空格;12. RTRIM()去后空格;13. TRIM()去两端空格。通过创建测试表并执行各种函

2025-06-18 22:00:42 510

原创 17.group by分组统计

SQL分组查询与过滤操作摘要 本文介绍了SQL中GROUP BY分组查询和HAVING过滤的基本用法。通过学生成绩统计示例,演示了如何按班级分组计算总成绩平均分(SELECT avg(chinese+math+english) FROM students GROUP BY class)。进一步使用HAVING子句过滤平均分低于240的班级,并建议使用列别名(avg_score)优化查询效率,避免重复计算。这种优化在数据量较大时尤为重要,能显著提升SQL执行性能。

2025-06-18 21:59:41 206

原创 16.max/min最大最小值函数

SQL摘要:max/min函数用于查询列的最大/最小值。语法为:SELECT MAX(column)或MIN(column) FROM table WHERE条件。示例:①查询班级总分最高分:SELECT MAX(math+chinese+english) AS '总分最高分' FROM students;②查询最低分将MAX改为MIN即可。这些聚合函数可快速获取数据集的边界值。

2025-06-18 21:58:39 135

原创 15.avg平均值函数

摘要:SQL的AVG函数用于计算满足WHERE条件的数据列平均值。基本语法为SELECT AVG(column_name) FROM table_name WHERE condition。示例包括计算班级数学平均分和总分平均分(三科成绩之和)。该函数会忽略值为NULL的记录再进行计算。

2025-06-17 11:34:11 212

原创 14.sum合计函数

SQL中的SUM函数用于计算数值列的总和,通常结合WHERE条件使用。基本语法为SELECT SUM(column_name) FROM table_name。典型应用包括:计算单科或多科总成绩(如SELECT SUM(math_score))、统计个人总分(SUM(chinese+math+english))以及求平均值(SUM/COUNT)。使用时需注意:1)SUM仅适用于数值字段,非数值字段无意义;2)多列求和时逗号分隔不可省略。该函数是SQL中重要的聚合函数,主要用于数值数据的统计计算。

2025-06-17 11:33:21 318

原创 13.count统计函数

SQL中COUNT函数用于统计记录数,包含两种用法:COUNT()统计所有行数,COUNT(列名)只统计该列非NULL的行数。示例包括统计班级人数、数学成绩>90的人数以及总分>270的人数。关键区别在于COUNT()包含NULL值记录,而COUNT(列名)会排除NULL值。测试数据表明,当插入成绩为NULL的记录时,COUNT()返回总记录数,而COUNT(列名)返回有效成绩的记录数。简单来说,COUNT()返回总行数,COUNT(列名)返回该列有值的行数。

2025-06-17 11:32:39 198

原创 12.select语句单表查询

摘要:本文详细介绍了SQL单表查询的基本语法与应用场景。主要内容包括:1)SELECT语句的基本用法(DISTINCT去重、字段选择);2)WHERE子句的条件查询(比较运算符、逻辑运算符);3)重点解析模糊查询(LIKE/ILIKE操作符,%和_通配符的使用技巧及性能优化建议);4)ORDER BY排序功能;5)通过学生成绩表示例演示15种典型查询场景,包括总分统计、条件筛选、模糊匹配和排序等。特别强调DISTINCT去重的注意事项和模糊查询的索引优化策略。

2025-06-17 11:31:40 1854

原创 11.delete语句

DELETE语句用于删除数据库表中的记录:基本语法为"DELETE FROM table_name WHERE condition",如删除名为"王八"的记录。使用时需注意:1)无WHERE条件将删除所有数据;2)DELETE只能删除整行记录,不能单独删除某列,需用UPDATE清空值;3)删除表本身要用DROP TABLE语句。该语句仅删除数据不删除表结构。

2025-06-17 11:30:37 372

原创 10.update语句

SQL UPDATE语句用于修改表中数据,基本语法为:UPDATE table_name SET column=value WHERE condition。SET子句指定要修改的列和新值,WHERE子句确定要更新的行(如无WHERE则更新所有行)。示例包括:修改整列值(money=8000)、条件更新(name='张三'时money=3000)、数值运算更新(money+3000)以及多列同时更新(money和user_age)。使用时需注意明确更新条件,避免误改全表数据,多个字段更新可在SET后用逗号分隔

2025-06-17 11:29:48 196

原创 9.insert语句

SQL插入语句(INSERT INTO)的基本用法包括:1)指定表名和列名插入单条数据;2)需注意数据类型匹配、长度限制和位置对应;3)字符和日期需用单引号;4)允许插入NULL值;5)可以一次插入多条数据;6)为所有列插入时可省略列名;7)未指定值的列会使用默认值或报错。示例展示了插入单条、多条数据以及处理NULL值的情况。

2025-06-17 11:28:53 252

原创 8.修改表

摘要:本文介绍了使用ALTER TABLE语句修改数据库表结构的几种方法:(1)添加列,包括列名、数据类型和默认值的设置;(2)修改列,包含修改数据类型、重命名列和删除列;(3)修改表名;(4)更改表字符集;(5)查看表结构DESC命令。通过示例展示了在spring_db数据库的tbl_account表中添加age列、修改列类型、重命名列等具体操作。这些SQL语句是数据库表结构调整的常用命令。

2025-06-17 11:27:53 256

原创 7.字段类型(列类型)

MySQL常用数据类型概览:数值类型包括整型(bit,tinyint,smallint等)和小数类型(float,double,decimal);文本类型有char,varchar,text等;二进制数据用blob存储;日期时间类型包含date,time,datetime,timestamp和year。每种类型都有特定的存储范围和格式要求,如整型按字节数区分范围,decimal可精确指定长度和小数位,时间类型支持不同精度。合理选择数据类型对数据库性能至关重要。

2025-06-17 11:26:42 178

原创 6.创建表

摘要:SQL创建表的语法包含表名、字段定义、字符集、校对规则和存储引擎等参数。字段需指定名称和数据类型,字符集和校对规则可继承数据库默认值,引擎类型可选择。创建方式包括命令行和可视化工具两种。表结构设计需要考虑数据类型的合理选择和性能优化。

2025-06-17 11:25:36 158

原创 5.备份、恢复数据库

MySQL数据库备份与恢复操作指南:1.备份整个数据库使用mysqldump命令(格式:mysqldump -u用户名 -p -B 数据库名 > 文件名.sql);2.恢复数据库执行source命令(格式:source 文件名.sql)或使用可视化工具;3.备份指定数据表命令(格式:mysql -u用户 -p密码 数据库名 表名 > 文件名.sql)。三种方法均需在命令行操作,也可选择可视化工具实现。

2025-06-17 11:24:46 230

SpringBoot整合ssm-图书管理系统前端静态资源

图书管理系统前端静态资源

2025-01-20

KMP算法算法的实现包括next数组的构建以及算法主体,并附上注释

KMP算法算法的实现包括next数组的构建以及算法主体,并附上注释

2024-10-12

1.冒泡排序附上注释及其思想

1.冒泡排序附上注释及其思想

2024-07-30

图的遍历及其C语言实现

图的遍历及其C语言实现

2024-07-29

图不连通怎么办?套上一层循环完美解决

图不连通怎么办?套上一层循环完美解决

2024-07-29

并查集-集合的高效实现

并查集-集合的高效实现

2024-07-29

C语言实现哈夫曼树的构建与哈夫曼编码

能读文件,统计词频,再编码

2024-07-28

堆:以完全二叉树形式组织元素并以数组存贮

堆:以完全二叉树形式组织元素并以数组存贮

2024-07-28

二叉搜索树的查找插入删除

二叉搜索树的查找插入删除

2024-07-27

遍历二叉树的应用:求二叉树的高度

遍历二叉树的应用:求二叉树的高度

2024-07-27

遍历二叉树的应用:输出二叉树中的叶子结点

遍历二叉树的应用:输出二叉树中的叶子结点

2024-07-27

二叉树的遍历附上注释(先序,中序,后序,层序,递归与非递归)

二叉树的遍历附上注释(先序,中序,后序,层序,递归与非递归)

2024-07-26

二分查找代码实例附上注释

二分查找代码实例附上注释

2024-07-26

加一取余法的示例,实现0~max-1的循环输出

加一取余法的示例,实现0~max-1的循环输出

2024-07-24

链式队列的C语言实现附上注释

链式队列的C语言实现附上注释

2024-07-24

循环队列的c语言实现附上注释

循环队列的c语言实现附上注释

2024-07-24

堆栈的顺序存储实现附上注释

堆栈的顺序存储实现附上注释

2024-07-23

堆栈及其C语言实现附上注释

堆栈及其C语言实现附上注释

2024-07-23

链表的C语言实现带注释

链表的C语言实现带注释

2024-07-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除