MYSQL 父子建表查询所有的子数据-利用自定义函数查询

教程 

select getChildrenIdList(1)

MYSQL 父子建表查询所有的子数据-利用自定义函数查询_第1张图片

 获取子集函数代码

CREATE DEFINER=`skip-grants user`@`skip-grants host` FUNCTION `getChildrenIdList`(rootId INT) RETURNS varchar(1000) CHARSET utf8mb4
    DETERMINISTIC
BEGIN
   DECLARE sTemp VARCHAR(1000) default rootId;
   DECLARE sTempChd VARCHAR(1000);   
  
   SET sTempChd =cast(rootId as CHAR);

   WHILE sTempChd is not null do
	 if sTemp<>sTempChd then 
	  		 SET sTemp = concat(sTemp,',',sTempChd);
	 END IF;
     SELECT group_concat(id) INTO sTempChd FROM unify_space_database.t_space where FIND_IN_SET(pid,sTempChd);
    END WHILE;
    RETURN sTemp;
   END

补充知识

MySQL是一种开源的关系型数据库管理系统(RDBMS),它广泛应用于各种规模的应用程序和网站开发中。本文将详细介绍MySQL的基本概念、特性、体系结构以及常见的使用技巧。

一、MySQL的基本概念

  1. 数据库:数据库是一个组织数据的容器,它用于存储和管理相关数据。在MySQL中,可以创建多个数据库来存储不同类型的数据。

  2. 表:表是数据库中数据的集合,它由行和列组成。每一列代表一种数据类型,而每一行则代表一个具体的数据记录。

  3. 字段:字段是表中的一列,它定义了存储在表中的数据类型。每个字段都有一个名称和数据类型,并且可以设置其他属性,如主键、索引等。

  4. 主键:主键是表中用于唯一标识每条记录的字段。它的值必须是唯一的,且不能为空。

  5. 外键:外键是表中的一个字段,它与另一个表的主键建立关联。通过外键可以建立表与表之间的关系,实现数据的一致性和完整性。

  6. 索引:索引是一种数据结构,用于加快数据库中数据的检索速度。通过创建索引,可以在查询时快速定位到符合条件的数据,提高查询效率。

  7. 查询语言:MySQL使用结构化查询语言(SQL)进行数据的增删改查操作。SQL是一种通用的数据库语言,用于定义数据库的结构和操作数据。

二、MySQL的特性

  1. 可靠性:MySQL具有事务支持和崩溃恢复功能,保证数据的一致性和可靠性。

  2. 高性能:MySQL通过优化查询执行计划、索引和缓存等机制,提供了较快的数据访问速度。

  3. 可扩展性:MySQL支持水平和垂直两种方式的扩展,可以根据需求增加硬件资源或拆分数据表。

  4. 安全性:MySQL提供了丰富的安全控制功能,如用户认证、权限管理等,保护数据不被未授权的访问和篡改。

  5. 兼容性:MySQL符合ANSI SQL标准,并提供了对其他数据库系统的兼容性支持。

三、MySQL的体系结构

MySQL的体系结构由以下几个主要组件组成:

  1. 连接器(Connection Manager):负责与客户端建立连接,并进行身份验证和权限控制。

  2. 查询缓存(Query Cache):用于缓存查询结果,以提高相同查询的执行速度。

  3. 查询分析器(Query Analyzer):解析和分析SQL语句,生成查询执行计划。

  4. 优化器(Optimizer):根据查询执行计划,选择最优的索引和算法来执行查询操作。

  5. 执行器(Executor):执行查询计划,获取数据并返回给客户端。

  6. 存储引擎(Storage Engine):负责数据的存储和检索。MySQL支持多种存储引擎,如InnoDB、MyISAM等。

四、MySQL的常见使用技巧

  1. 创建数据库和表:使用CREATE DATABASE语句创建数据库,使用CREATE TABLE语句创建表,并定义字段的名称、数据类型和约束条件。

  2. 插入数据:使用INSERT语句向表中插入数据,指定要插入的字段和对应的值。

  3. 查询数据:使用SELECT语句查询数据,可以通过WHERE子句设置查询条件,并使用ORDER BY子句对结果进行排序。

  4. 更新数据:使用UPDATE语句更新表中的数据,通过SET子句设置要更新的字段和对应的值。

  5. 删除数据:使用DELETE语句删除表中的数据,通过WHERE子句设置删除条件。

  6. 建立索引:使用CREATE INDEX语句创建索引,提高查询效率。

  7. 优化查询:通过分析查询执行计划、添加合适的索引和优化SQL语句等方式,提高查询性能。

  8. 备份和恢复:使用mysqldump工具进行数据库的备份和恢复操作,保护数据安全。

总结:

MySQL是一种功能强大、可靠性高且易于使用的关系型数据库管理系统。通过学习和掌握MySQL的基本概念、特性和使用技巧,可以更好地进行数据库开发和管理工作。然而,学习任何一门技术都需要时间和实践,请勤加练习并深入理解MySQL的原理与应用。

你可能感兴趣的:(数据库技术,mysql)