机房收费系统 Part Three——我看复合查询中的”Keyword”
来源:互联网 发布:勇士格林数据 编辑:程序博客网 时间:2024/06/08 00:32
在SELECT语句中,可以通过Where子句构造记录的筛选条件,选择出符合条件的记录集。比如,我想在上机表中,查询卡号为101的学生的上机记录。
<span style="font-family:KaiTi_GB2312;font-size:18px;"><strong><span style="font-family:KaiTi_GB2312;font-size:18px;">SELECT* From Line_Info where cardno=101</span></strong></span>
这是简单查询,条件查询还包括模糊查询和复合条件查询。下面我就来详细的介绍一下这个复合条件查询。开始我以为这个是学生信息管理系统中没有出现的内容,后来操作了半天,研究了半天,才发现,这东西!我用过啊!
下面这两个图中的红对勾是对应的,只是在机房收费系统中逻辑表达式相对比较自由,字段随意、操作符随意、连接符随意。本质都是一样的——复合条件查询。
所谓复合条件查询,通过Where子句中使用逻辑运算符将两个或者两个以上的条件表达式组合起来,构成综合检索条件。完成更为复杂的查询任务。复合条件中可以使用和逻辑运算符包括:And,Or,Not。
And——连接两个条件表达式,完成逻辑运算符与运算。
Or——连接两个条件表达式,完成逻辑运算符或运算。
Not——对一个条件表达式进行逻辑非运算。
在机房收费系统中,就是层层递进的关系,SQL语句通过And和Or进行连接,构成一个,两个,三个条件的查询。
下面就先来挑出学生信息管理系统中的Keyword:
<span style="font-family:KaiTi_GB2312;font-size:18px;"><strong> TxtSQL = "SELECT * From result_Info where " If ChkSID(0).Value Then '按学号的复选框选中 TxtSQL = TxtSQL & "student_ID = '" & Trim(txtSID) & "'" End If If ChkSName(1).Value Then '按姓名查询的复选框选中 TxtSQL = TxtSQL & "and student_name = '" & txtName & "'" End If If ChKCourse(2).Value Then '按课程查询复选框选中 TxtSQL = TxtSQL & "and course_name = '" & txtCourse & "'" End If TxtSQL = TxtSQL & " order by student_ID " '按照学生的学号排序 Set mrc = ExecuteSQL(TxtSQL, MsgText)</strong></span>
发现规律了么?它先写好一个半成品的SQL语句存入txtSQL变量中,根据选中情况,一步步的完善SQL语句。照着我的学生信息管理系统,我也编出了机房的Keyword:
<span style="font-family:KaiTi_GB2312;font-size:18px;"><strong> Dim TxtSQL As String Dim MsgText As String Dim mrc As ADODB.Recordset TxtSQL = "SELECT * From Line_Info Where (" & ComF1.Tag & ComE1.Text & "'" & Text1.Text & "'" '一个条件的查询 If ComG1.Text <> "" Then '添加第二个查询 TxtSQL = TxtSQL & " " & ComG1.Tag & " " & ComF2.Tag & ComE2.Text & "'" & Text2.Text & "'" End If If ComG2.Text <> "" Then '添加第三个查询 TxtSQL = TxtSQL & " " & ComG2.Tag & " " & ComF3.Tag & ComE3.Text & "'" & Text3.Text & "'" End If TxtSQL = TxtSQL & ")" Set mrc = ExecuteSQL(TxtSQL, MsgText)</strong></span>
稍微需要动些小脑筋的地方就是SQL的and和or的用法。上边其实就是在一句话上面做了改动。让这句话中的字段,操作符和查询内容都可以自定义。彻底的了解了下面这句话的意思,那么复合条件查询就不成问题了。
<span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>SELECT * FROM Line_Info WHERE (cardno='101' OR studentno='111')AND studentname='azz'</strong></span>开始认为复合查询挺难的,所以把它放在了后边敲。现在才明白了对于一个功能块,只要可以找到它的Keyword,慢慢的都可以理解的。只要你不放弃不停的调试,就会达到你想要的效果。
0 0
- 机房收费系统 Part Three——我看复合查询中的”Keyword”
- 机房收费系统——组合查询
- 机房收费系统——组合查询
- 组合查询——机房收费系统
- 【机房收费系统——组合查询】
- 机房收费系统——组合查询
- 机房收费系统——组合查询
- 【机房收费系统】——组合查询
- 【机房收费系统】——组合查询
- 机房收费系统——组合查询
- 机房收费系统——组合查询
- 机房收费系统——组合查询
- 【机房收费系统】——组合查询
- 机房收费系统——组合查询
- 机房收费系统—组合查询
- 机房收费系统—组合查询
- 机房收费系统之—组合查询
- 机房收费系统—组合查询
- Android Json数据的反序列化
- 多线程(二)
- 程序员技术练级攻略
- 数据结构和算法系列6 七大排序之直接选择排序和堆排序
- ACM开灯问题
- 机房收费系统 Part Three——我看复合查询中的”Keyword”
- 数据结构和算法系列7 七大排序之直接插入排序和希尔排序
- 以太网
- openGL es 教程翻译4(实现一个旋转的方块)
- 20、Cocos2dx 3.0游戏开发找小三之Cocos2d-x的动作机制:嘻,善哉!技盖至此乎?
- 车牌识别精度为何到100%
- Swift中FDMB的使用(增、删、改、查)
- android之Fragment(官网资料翻译)
- 关于vmware上的虚拟机在某些情况下无法关机的解决方法