SQL-简单数据库编程-详细教程_第1页
SQL-简单数据库编程-详细教程_第2页
SQL-简单数据库编程-详细教程_第3页
SQL-简单数据库编程-详细教程_第4页
SQL-简单数据库编程-详细教程_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一节:数据库的基本操作创建数据库创建数据表修改数据表删除数据表返回第三节:SQL的简单介绍为方便下面SQL语句的讲解,在这儿我们假定在数据库中已经存在一个存放学生信息的数据库(Student),其中有一个学生入学信息表(Students),其表结构见下表:字段名类型主键说

明StudentIDvarchar(50)是学号Namevarchar(50)否姓名Sexvarchar(50)否性别ClassIDvarchar(50)否班级BirthDaydatetime否出生日期Nativevarchar(50)否籍贯第三节:SQL的简单介绍知识架构:1.数据查询select语句2.插入数据insert语句3.更新数据Update语句4.删除数据DELETE语句返回第三节:SQL的简单介绍3.1数据查询select语句:

SQL的查询语句也称作SELECT命令,多个查询块可以逐层嵌套执行。SQL的查询可以很方便的从一个表或多个表中检索数据,查询是高度非过程化的,用户值需要表明“要干什么”,而不需要说明“怎么去干”。系统将自动对查询过程进行优化,可以实现对大多数数据库和多个关联数据库的高速存取。其最大的优点是查询速度快。第三节:SQL的简单介绍

用户要讲清楚“要干什么”,需要把询问用语规定的查询格式表示出来。标准的SQL基本查询结构是:

SELECT<表达式1>,<表达式2>,...<表达式n>FROM<表1>,<表2>,…<表n>WHERE<条件表达式>;其中SELECT子句中用逗号分开的表达式为查询目标。最常用也是最简单的格式是用逗号分开的属性名。

FROM指出上述查询不表以及WHERE子句所涉及到的相关的关系名(表名等)。

WHERE子句查询目标必须满足的条件,系统会根据条件进行选择运算,输出条件为真的元素集合。如果不需要指出条件,则可以省略WHERE子句。

第三节:SQL的简单介绍

首先我们的数据表Students如图所示:

图Students数据表第三节:SQL的简单介绍例

:从学生信息表中查出性别为“男”的所有学生的信息。其查询语句应写为:

select*fromStudentswhereSex='男'结果显示:第三节:SQL的简单介绍如要查询性别为男的所有同学的学号和姓名两项信息,可以用一下方式:

selectStudentID,NamefromStudentswhereSex='男'查询结果如图:当然要查询所有同学的相关信息就可以省略WHERE子句。返回第三节:SQL的简单介绍3.2插入数据insert语句:Insert语句的作用是向数据表中添加数据。其语法结构是:

INSERTINTO<表名>{(字段1,字段2…字段n)}VALUES(插入值1,插入值2…插入值n);其INSERTINTO后所跟需要插入值的表名。(字段1,字段2…字段n)是要插入值的字段。大括号表示可有省略,当数据表里的字段全部都要插入数据时,就可以省略。

VALUES关键字后的括号里跟的是插入表中字段的值,它的顺序必须和前面列出的字段一一对应。如果字段名省略了,就必须和数据表里的字段一一对应。第三节:SQL的简单介绍例:向学生信息表插入一条数据:

INSERTINTOStudentsVALUES('6','李爽','男','4','1990-1-1','四川成都')

其查询结果下图所示:由于本表设计时所有字段均不能为空,所以在此处必须插入所有字段,根据表的设计,读者也可以根据自己的需要只插入部份字段的值。返回第三节:SQL的简单介绍3.3更新数据Update语句:UPDATE语句的作用是修改数据库中的数据。其语法结构为:

UPDATE<表名>SET<更新表达式>{WHERE<条件>};第三节:SQL的简单介绍例:若要将学号为6的李爽同学的籍贯进行修改;UPDATEStudentsSETNative='重庆'WHEREStudentID='6‘执行该语句后再用下面的SELECT语句进行查询SELECT*FROMStudents

可以看到已经更新的数据,如下图所示:返回第三节:SQL的简单介绍3.4删除数据DELETE语句:删除命令比较简单,删除的单位是元素组,而不是部分字段值。一次可以删除一个、几个,甚至可以将整个表删成空表。只保留表的设计结构。如果要删除某个字段的值,就用需要update将这个字段的值修改为空值。其语法结构:DELETEFROM<表名>WHERE<条件>;

DELETE语句跟其他的语句一样可以省略WHERE子句,但是DELETE省略的话将会将整个表全部删除。如果不是删除全表一定不要忘了WHERE子句。第三节:SQL的简单介绍例:删除学号6同学的所有信息。DELETEFROMStudentsWHEREStudentID='6';执行该语句后再用下面的SELECT语句进行查询。SELECT*FROMStudents可以看到删除学号6后的数据,执行操作后的查询结果如下图:

返回第14章简单数据库编程本章要点:

数据库的基本概念

ADO.NET的基本概念

.NETFramework数据提供程序

ADO.NET对象

ADO.NET数据控件

ADO.NET数据库编程方法14.1循序渐进学理论14.1.1数据库的基本概念

1.数据库应用概述

2.数据库的基本概念

所谓数据库(DatabaseDB),其实就是存放在计算机的外存储器中的相关数据的集合,可以形象地看作是数据的“仓库”,它是通过文件或类似于文件的数据单位组织起来的。

3.数据模型与关系数据库14.1.2ADO.NET概述

ADO.NET是一组用于和数据源进行交互的面向对象类库。通常情况下,数据源是数据库,但它同样也能够是文本文件、Excel表格或者XML文件。是在.NET编程环境中优先使用的数据访问接口.1..NETFramework数据提供程序

(1)SQLServer.NET数据提供程序(2)OLEDB.NET数据提供程序

-ObjectLinkandembed,即对象连接与嵌入.是通向不同的数据源的低级应用程序接口。

(3).NET数据提供程序模型的核心对象

.NET数据提供程序提供了四个核心对象,分别是Connection、Command、DataReader和DataAdapter对象。

3.使用ADO.NET开发数据库应用程序的一般步骤(1)根据使用的数据源,确定使用的.NETFramework数据提供程序;(2)建立与数据源的连接,需使用Connection对象;(3)执行对数据源的操作命令,通常是SQL命令,需使用Command对象;(4)使用数据集对获得的数据进行操作,需使用DataReader、DataSet等对象;(5)向用户显示数据,需使用数据控件。2.DataSet数据集

DataSet的对象模型14.1.4ADO.NET对象及其编程1.SqlConnection对象及其使用

[功能]:建立与特定数据源的连接。一般该对象不会单独使用,而是与其他ADO.NET对象一起使用,是其他ADO.NET对象的重要组成部分。

使用步骤1、

声明一个SqlConnection对象2、设置SqlConnection对象对象的ConnectionString属性3、

调用SqlConnection对象对象的Open方法,打开数据库连接4、

进行数据库操作5、调用SqlConnection对象对象的Close方法,关闭数据库连接

[例14-1]编写一个用来测试连接的应用程序,用来建立与SQLServer数据库Student的连接。程序的设置界面如图14-3所示,程序的运行界面如图14-4所示。图14-3程序设计界面图14-4程序运行界面2.SqlCommand对象及其使用(1)SqlCommand对象的常用属性

[功能]:表示要对

SQLServer数据库执行的一个

Transact-SQL语句或存储过程。当创建

SqlCommand的实例时,读/写属性将被设置为它们的初始值。

(2)SqlCommand对象的常用方法

ExecuteNonQuery方法

[格式]:publicintExecuteNonQuery();[功能]:执行T-SQLInsert,Delete,Update及Set语句等命令,返回受影响的行数。

ExecuteReader方法

[格式]:publicOleDbDataReaderExecuteReader();[功能]:执行返回行的命令。使用步骤1、

声明一个SqlConnection对象2、设置SqlConnection对象对象的ConnectionString属性3、调用SqlConnection对象对象的Open方法,打开数据库连接4、声明一个SqlCommand对象5、设置SqlCommand对象的Connection为SqlConnection对象6、设置SqlCommand对象的CommandText属性(SQL语句)7、根据SQL语句的不同性质,调用相应的Execute***方法8、调用SqlConnection对象对象的Close方法,关闭数据库连接

【例14-2】

已知在应用程序当前目录下,有一个名为Student的数据库,该数据库中有一个名为student的表,表中的数据如图14-5所示。请使用SqlCommand对象执行SQL命令向表中插入一个学生的信息,学生数据如下:

6张和平男11985-7-28安徽无为插入后,student表中的内容如图14-6所示。图14-5插入前的student表中的数据图14-6插入后的student表中的数据实例代码3.SqlDataReader对象及其使用SqlDataReader:提供一种从

SQLServer数据库读取行的只进流的方式。若要创建

SqlDataReader,必须调用

SqlCommand对象的

ExecuteReader方法,而不要直接使用构造函数。在使用

SqlDataReader时,关联的

SqlConnection正忙于为

SqlDataReader服务,对

SqlConnection无法执行任何其他操作,只能将其关闭。除非调用

SqlDataReader的

Close方法,否则会一直处于此状态。例如,在调用

Close之前,无法检索输出参数。(1)SqlDataReader对象的常用属性

FieldCount属性

[功能]:获取当前行中的列数

RecordsAffected属性

[功能]:获取执行SQL语句更改,删除或插入的行数(2)SqlDataReader对象的常用方法

Read方法

[格式]:publicboolRead();[功能]:使SqlDataReader前进到下一条记录

NextResult方法

[格式]:publicboolNextResult();[功能]:当读取批处理语句的结果时,使数据读取器前进到下一个结果

Close方法

[格式]:publicvoidClose();[功能]:关闭SqlDataReader对象

Get×××方法

[格式]:public×××Get×××(intordinal);使用流程1.定义SqlConnection对象2.定义SqlCommand对象3.设置SqlCommand对象的CommandText属性,一般为Select语句4.打开SqlConnection对象5.通过执行SqlCommand对象的ExecuteReader方法,返回一个SqlDataReader对象6.使用while循环,读取返回结果列表的每一行7.在while循环体内,根据字段类型使用相应的Get方法,获取每个字段的值8.对获取的数据进行处理9.关闭SqlDataReader对象10.关闭SqlConnection对象【例14-3】已知在应用程序当前目录下,有一个名为Student的数据库,该数据库中有一个名为student的表。请编写一个程序用来从该表中读取所有男生的数据,并显示出来。程序的设计界面如图14-7所示,程序的运行界面如图14-8所示。程序运行时单击【连接并读取】按钮,将会把所有男生的数据显示在窗体上。图14-7程序设计界面图14-8程序运行界面实例代码4.SqlDataAdapter对象及其使用表示用于填充

DataSet和更新

SQLServer数据库的一组数据命令和一个数据库连接。SqlDataAdapter是

DataSet和

SQLServer之间的桥接器,用于检索和保存数据。SqlDataAdapter通过对数据源使用适当的

Transact-SQL语句映射

Fill(它可更改

DataSet中的数据以匹配数据源中的数据)和

Update(它可更改数据源中的数据以匹配

DataSet中的数据)来提供这一桥接。当

SqlDataAdapter填充

DataSet时,它为返回的数据创建必需的表和列(如果这些表和列尚不存在)。SqlDataAdapter与

SqlConnection和

SqlCommand一起使用,以便在连接到

SQLServer数据库时提高性能。SqlDataAdapter还包括

SelectCommand、InsertCommand、DeleteCommand、UpdateCommand和

TableMappings属性,以便于数据的加载和更新。(1)SqlDataAdapter对象的常用属性

SelectCommand属性:用于在数据源中选择记录

InsertCommand属性:用于在数据源中插入记录

UpdateCommand属性:用于在数据源中更新记录

DeleteCommand属性:用于在数据源中删除记录(2)SqlDataAdapter对象的常用方法

Fill方法

[格式]:publicintFill(DataSetdataSet,stringsrcTable);

[功能]:填充DataSet或DataTable

Update方法

[格式1]:publicoverrideintUpdate(DataSetdataSet);[格式2]:publicoverrideintUpdate(DataSetdataSet,stringTable);[功能]:为DataSet中每个已插入、已更新或已删除的行调用相应的INSERT,UPDATE,DELETE语句5.DataSet对象及其使用DataSet(数据集)对象:数据集是包含数据表的对象,可以在这些数据表中临时存储数据以便在应用程序中使用。如果应用程序要求使用数据,则可以将该数据加载到数据集中,数据集在本地内存中为应用程序提供了待用数据的缓存。即使应用程序从数据库断开连接,也可以使用数据集中的数据。数据集维护有关其数据的更改的信息,因此可以跟踪数据更新,并在应用程序重新连接时将更新发送回数据库(1)DataSet对象的组成

最重要的是DataTableCollection(数据表集合),包括若干个DataTable对象(2)DataSet对象的填充

可以使用SqlDataAdapter对象的Fill方法进行构造(3)DataSet对象的访问

[格式1]:数据集对象名.Tables[“数据表名”].Rows[n][“列名”][格式2]:数据集对象名.Tables[“数据表名”].Rows[n].ItemsArray[k]

假设有一个DataSet对象ds访问DataTable对象:DataTabledt1=ds.Tables[0];//根据索引DataTabledt2=ds.Tables[“用户”];//根据表名访问DataRow对象DataRowdr1=dt1.Rows[0];//根据索引DataRowdr2=dt1.Rows[“密码”];//根据字段名(4)向DataSet对象中添加行(5)从DataSet对象中删除行(6)修改DataSet对象中的数据(7)利用DataSet对象更新数据源【例14-4】使用DataAdapter和DataSet对象重新实现例14-3的功能。使用流程1.定义SqlConnection对象2.定义SqlCommand对象3.设置SqlCommand对象的CommandText属性,一般为Select语句4.打开SqlConnection对象5.定义SqlDataAdapter对象,以SqlCommand对象做构造初始值6.定义DataSet对象7.使用SqlDataAdapter对象的Fill方法填充数据集8.获取数据集中的数据进行处理9.关闭SqlConnection对象实例代码:14.3上机练习重应

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论