结构化查询语言简称sql,sql是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。sql语言主要有四个部分:数据定义语言、数据操纵语言、嵌入式sql语言的使用规定、数据控制语言。今天我们介绍其中的一部分,数据操纵语言——增、删、改、查。
sql语言是一种交互式查询语言,允许用户直接查询存储数据,但它不是完整的程序语言,如它没有DO或FOR类似的循环语句,因此它可以嵌入到另一种语言中,借用VB、VB.NET、C、JAVA等高级语言对关系数据库进行操作。在做学生管理系统和机房收费系统时,我们配置ODBC用于连接数据库与VB,在模块中定义函数Executesql用于执行sql语句。等做好这些工作后,我们就可以在VB中对数据库进行操作了。下面介绍一下在VB中如何利用sql语句操纵数据库。
简单查询语句可通过Select语句限定数据源来实现。在Select语句中使用关键字、字句等。
例1 比较条件查询
txtsql = "select * from student_info where cardno= '" & txtCardNO & "'" '查询student_info中cardno为某一限定值的记录 set mrc = Executesql(txtsql,msgtext) '执行sql语句
例2 计算查询结果
<span style="white-space:pre"> </span>txtsql = "select sum(addmoney) from recharge_info where date = '" & Date & "'" '查询Recharge_info中addmoney字段值的综合 <span style="white-space:pre"> </span>Set mrc = Executesql(txtsql,msgtext) '执行sql语句 <span style="white-space:pre"> </span>txtRechargeCash.Text=mrc.fields(0) '将查询出来的结果赋值给文本框
以上的两个例子中的Where子句是Select语句中最常用的限定条件,另外还有AS子句、Like子句等。虽然,Select查询语句有很多种,但它们共通的一点是只要查询某一特定的记录时,在Select查询语句中就会出现限定条件。
二、数据注入(已添加学生信息为例)
1、我们在VB中引用ADO实现访问所用到的数据中的数据,通过AddNew方法添加一条新的记录,再通过Update方法保存当前的记录。
txtsql = "select * from student_info " '查询出student_info表 set mrc = Executesql(txtsql,msgtext) '执行sql语句 mrc!StuNO=Trim(txtStuNo.Text) mrc!StuName=Trim(txtStuName.Text) mrc!Class=Trim(txtClass.Text) : : <span style="white-space:pre"> </span>'向数据库中添加信息 mrc.Update '更新数据库
2、使用Insert 语句向数据库注入数据
txtsql = "insert into student_info(Student_ID,Student_Name,Student_Sex,ClassNo,Grade,born_date,ru_date)" values ('" & txtStuID & "','" & txtName & "','" & txtSex & "','" & txtClassNO & "','" & txtGrade & "','" & txtborn_date & "','" & txtRuDate & "')" <span style="white-space:pre"> </span>'向student_info中注入数据 set mrc = Executesql(txtsql,msgtext) <span style="white-space:pre"> </span> <span style="white-space:pre"> </span>'执行sql语句
用Insert语句往数据库中注入数据的时候,要做到每一个字段与文本框的值一一对应,否则数据库注入数据时就会出现错误。
另外,还有两个注意的地方:
1、如果向表中特定的字段中插入数据时,在Insert语句中应该把字段指定出来,如:
txtsql = "insert into student_info(Student_ID,Student_Sex" & value ('" & txtStuID & "','" & txtSex & "')" '向student_info表中student_id,student-name,student_sex列中插入数据 Set mrc = Executesql(txtsql,msgtext) <span style="white-space:pre"> </span>'执行sql语句
2、如果表中包含主键,请确保唯一的非Null值注入到主键字段,否则数据库无法注入数据。
1、我们在VB中引用ADO实现访问所用到的数据中的数据,通过Delete方法删除一条记录,再通过Update方法更新当前的记录。
txtsql="select * from student_info where cardno = '" & txtCardNo & "'" '选择一条指定的记录 set mrc =Executesql(txtsql,msgtext) '执行sql语句 mrc.Delete '将其删除 mrc.Update
2、使用Delete语句,不仅可以删除指定的一条或多条记录,也可以将表中所有记录删除
txtsql="delete student_info where cardno= '" & txtCardNo & "'" '删除student_info表中指定cardno字段的值的一条记录 set mrc = Executesql(txtsql,msgtext) '执行sql语句
txtsql="delete student_info " "删除student_info表中所有记录 set mrc = Executesql(txtsql,msgtext) '执行sql语句
四、数据修改(以修改学生信息为例)
1、我们利用Select语句查询出所要修改的记录,修改其某一字段的值,再通过Update方法更新所修改的记录。
txtsql = " select * from student_info where cardno= '" & txtCardno & "'" '查询出要修改的记录 Set mrc =Executesql(txtsql,msgtext) '执行sql语句 mrc!Name=Trim(txtName.Text) mrc!StuNO=Trim(txtStuNo.Text) mrc!Class=Trim(txtClass.Text) '修改数据信息 mrc.Update '更新数据库
2、直接利用Update语句修改数据信息
txtsql = " Update student_info Set Name= '" & txtName & "',StuNo = '" & txtStuNo & "',Class= '" & txtClass & "' where cardno= '" & txtCardNo & "'where cardno= '" & txtCardno & "'" '修改指定记录的数据 Set mrc =Executesql(txtsql,msgtext)
VB中的sql语句可以实现直接对数据库进行操纵,也可以弥补sql不是完整的程序化语言这一缺点。那么,我们不禁在想在VB和sql Server中的sql语句有何不同呢?现在,我们来看一下sql Server中的sql语句(增、删、改、查)各自的语法。
Select 语句Select * from 表名称 where 列名称=某值
insert 语句Insert into 表名称(例1,例2,....)values (值1,值2,.....)
update 语句 Update 表名称 set 列名称=新值 where 列名称=某值
delete语句Delete from 表名称where 列名称=某值
从这篇文章不难看出,在VB中操作sql语句其实与在sql Server中是一样的。我们在sql Sever中的sql语句正确,那么在VB中,我们将VB控件(文本框、标签、组合框等)中的值赋予某一限定条件就行了。