在大多数情况下,这个动态生成的SQL查询语句如下所述:
复制代码代码如下所示:
选择表。第1栏,一张桌子。字段2,b表。字段返回,C表。字段返回表、b表、c表{其中表、b表、关联表和相应的条件语句}

然而,这种方法有一个缺点,即动态生成查询语句的业务逻辑程序仍然非常复杂:
复制代码代码如下所示:
选择表。第1栏,一张桌子。字段2,b表。C表字段。表中的字段{表状态语句}

业务逻辑程序仅通过修改选择字段来生成SQL语句,而不是动态地从表、语句和一般方法中修改选择字段。因此,真正的业务逻辑可以将生成的SQL语句的焦点从3 +减少到1:

首先,我们建立三个表,一个信息表,反映了学生基本情况,学生表,两个代码表存储学生的相关信息,sexcode表(性别代码表)和gradecode(年龄代码表)。
复制代码代码如下所示:
-创建表学生
建立学生表
(
身份证号码,
名称类型(10),
性焦(1),
品位炭(1),
年龄数(2)
)
表空间SDMP
保管部
(
初始64k
minextents 1
maxextents无限
);
向列添加注释
柱上student.name评论
是学生姓名;
柱上student.sex评论
是学生性;
柱上student.grade评论
是年级;
柱上student.age评论
是年龄吗;

复制代码代码如下所示:
创建表sexcode
创建表sexcode
(
DM字符(1),
MC类型(5)
)
表空间SDMP
保管部
(
初始64k
minextents 1
maxextents无限
);
向列添加注释
柱上sexcode.dm评论
是代码;
柱上sexcode.mc评论
是‘名字';

复制代码代码如下所示:
创建表gradecode
创建表gradecode
(
DM字符(1),
MC类型(5)
)
表空间SDMP
Pctfree 10
initrans 1
Maxtrans 255
保管部
(
初始64k
minextents 1
maxextents无限
);
向列添加注释
柱上gradecode.dm评论
是代码;
柱上gradecode.mc评论
是‘名字';

然后,执行以下INSERT语句,并在每个表中分别填充信息。
复制代码代码如下所示:
——插入学生
插入学生(ID,姓名,性别,年级,年龄值(1),张三,1,2,8);
插入学生(ID,姓名,性别,年级,年龄值(2),李四,'0'、'1',11);
插入学生(ID,姓名,性别,年级,年龄值(3),王五,1,2,9);
插入学生(ID,姓名,性别,年级,年龄)的值(4,刘2,0,4,8);
插入学生(ID,姓名,性别,年级,年龄)的值(5,韩国六,0,3,6);

——插入sexcode
插入sexcode(DM,MC)值(1,男);
插入sexcode(DM,MC)值('0 ','女');

——插入gradecode
插入gradecode(DM,MC)值(1、第一级);
插入gradecode(DM,MC)值(2,二级);
插入gradecode(DM,MC)值(3,三级);

最后,对本文提出的常用SQL查询方法和查询方法及其查询结果进行了比较。
一般的查询方法及其查询结果如下:
复制代码代码如下所示:
选择s.id,s.name,sc.mc性别,gc.mc级,s.age
从学生、sexcode SC,gradecode GC
在sc.dm = s.sex(+)和s.grade = gc.dm(+)





身份证件
名称
性别
等级
年龄

一
二
丽莎
女性的
第一级
十一

二
三
国王
男性的
二级
九

三
一
狼
男性的
二级
八

四
五
汉六
女性的
三级
六

五
四
线路接口单元
女性的

八

查询方法及其查询结果如下
复制代码代码如下所示:
选择s.id,s.name,s.age,
(选择MC sexcode在DM = s.sex)性,
(选择MC gradecode在DM = s.grade)等级
从学生





身份证件
名称
年龄
性别
等级

一
一
狼
八
男性的
二级

二
二
丽莎
十一
女性的
第一级

三
三
国王
九
男性的
二级

四
四
线路接口单元
八
女性的


五
五
汉六
六
女性的
三级

注:1。对于这两种性能,这里是一个简单的测试,1000个数据查询耗时2个,而且本文提到的方法甚至比一般方法要好。

2。此方法目前仅在Oracle数据库中实现和测试,而其他数据库则是自己测试的。