我还是个菜鸟,所以如果这个问题有点明显,请原谅。我确实寻找了答案,但要么无法理解我找到的答案如何应用,要么就是找不到答案。
我有一个巨大的数据库,位于 DB2 for i 服务器上,我通过 SQLExplorer(基于 Squirrel SQL)使用 SQL 访问该数据库。这些表格的记录非常少,首要任务是弄清楚如何找到我的出路。
我想编写一个简单的查询来执行此操作:
1)允许我搜索整个数据库,查找包含名为“备注”的列(其中包含字段描述)的表。
2)然后我希望它在该列中搜索关键字。
3)我想要返回一个包含以下内容的表names包含该关键字的表的列表(仅是名称,我可以稍后按字母顺序查找表,并在需要时查看内部。)
我需要这种搜索是超轻量级的,我希望我描述的概念能够实现这一点。任何消耗大量资源的事情都可能会激怒服务器的系统管理员。
只是为了表明我已经尝试过(并且我是一个十足的菜鸟),这就是我到目前为止所得到的。
SELECT *
FROM <dbname>
WHERE Remarks LIKE '<keyword>'
请随意嘲笑,我告诉过你我是个白痴:-)。
有什么帮助吗?也许至少是朝着正确的方向推动?
PS - 我似乎无法在 SQLExplorer 中找到搜索功能,如果有人知道我是否可以使用简单的搜索或过滤器来实现相同的目标......那就太好了。
您可以查询系统目录来识别表:
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME
FROM QSYS2.SYSCOLUMNS WHERE UPPER(DBILFL) = 'REMARKS'
然后分别查询每个表:
SELECT * FROM TABLE_SCHEMA.TABLE_NAME WHERE Remarks LIKE '%<keyword>%'
See the LIKE 谓词 http://publib.boulder.ibm.com/infocenter/iseries/v7r1m0/topic/db2/rbafzch2like.htm有关模式表达式的详细信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)