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

下载本文档

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

文档简介

精选,1,第一节:数据库的基本操作,创建数据库创建数据表修改数据表删除数据表,返回,精选,2,第三节:SQL的简单介绍,为方便下面SQL语句的讲解,在这儿我们假定在数据库中已经存在一个存放学生信息的数据库(Student),其中有一个学生入学信息表(Students),其表结构见下表:,精选,3,第三节:SQL的简单介绍,知识架构:1.数据查询select语句2.插入数据insert语句3.更新数据Update语句4.删除数据DELETE语句,返回,精选,4,第三节:SQL的简单介绍,3.1数据查询select语句:SQL的查询语句也称作SELECT命令,多个查询块可以逐层嵌套执行。SQL的查询可以很方便的从一个表或多个表中检索数据,查询是高度非过程化的,用户值需要表明“要干什么”,而不需要说明“怎么去干”。系统将自动对查询过程进行优化,可以实现对大多数数据库和多个关联数据库的高速存取。其最大的优点是查询速度快。,精选,5,第三节:SQL的简单介绍,用户要讲清楚“要干什么”,需要把询问用语规定的查询格式表示出来。标准的SQL基本查询结构是:SELECT,.FROM,WHERE;其中SELECT子句中用逗号分开的表达式为查询目标。最常用也是最简单的格式是用逗号分开的属性名。FROM指出上述查询不表以及WHERE子句所涉及到的相关的关系名(表名等)。WHERE子句查询目标必须满足的条件,系统会根据条件进行选择运算,输出条件为真的元素集合。如果不需要指出条件,则可以省略WHERE子句。,精选,6,第三节:SQL的简单介绍,首先我们的数据表Students如图所示:,图Students数据表,精选,7,第三节:SQL的简单介绍,例:从学生信息表中查出性别为“男”的所有学生的信息。其查询语句应写为:select*fromStudentswhereSex=男结果显示:,精选,8,第三节:SQL的简单介绍,如要查询性别为男的所有同学的学号和姓名两项信息,可以用一下方式:selectStudentID,NamefromStudentswhereSex=男查询结果如图:当然要查询所有同学的相关信息就可以省略WHERE子句。,返回,精选,9,第三节:SQL的简单介绍,3.2插入数据insert语句:Insert语句的作用是向数据表中添加数据。其语法结构是:INSERTINTO(字段1,字段2字段n)VALUES(插入值1,插入值2插入值n);其INSERTINTO后所跟需要插入值的表名。(字段1,字段2字段n)是要插入值的字段。大括号表示可有省略,当数据表里的字段全部都要插入数据时,就可以省略。VALUES关键字后的括号里跟的是插入表中字段的值,它的顺序必须和前面列出的字段一一对应。如果字段名省略了,就必须和数据表里的字段一一对应。,精选,10,第三节:SQL的简单介绍,例:向学生信息表插入一条数据:INSERTINTOStudentsVALUES(6,李爽,男,4,1990-1-1,四川成都)其查询结果下图所示:由于本表设计时所有字段均不能为空,所以在此处必须插入所有字段,根据表的设计,读者也可以根据自己的需要只插入部份字段的值。,返回,精选,11,第三节:SQL的简单介绍,3.3更新数据Update语句:UPDATE语句的作用是修改数据库中的数据。其语法结构为:UPDATESETWHERE;,精选,12,第三节:SQL的简单介绍,例:若要将学号为6的李爽同学的籍贯进行修改;UPDATEStudentsSETNative=重庆WHEREStudentID=6执行该语句后再用下面的SELECT语句进行查询SELECT*FROMStudents可以看到已经更新的数据,如下图所示:,返回,精选,13,第三节:SQL的简单介绍,3.4删除数据DELETE语句:删除命令比较简单,删除的单位是元素组,而不是部分字段值。一次可以删除一个、几个,甚至可以将整个表删成空表。只保留表的设计结构。如果要删除某个字段的值,就用需要update将这个字段的值修改为空值。其语法结构:DELETEFROMWHERE;DELETE语句跟其他的语句一样可以省略WHERE子句,但是DELETE省略的话将会将整个表全部删除。如果不是删除全表一定不要忘了WHERE子句。,精选,14,第三节:SQL的简单介绍,例:删除学号6同学的所有信息。DELETEFROMStudentsWHEREStudentID=6;执行该语句后再用下面的SELECT语句进行查询。SELECT*FROMStudents可以看到删除学号6后的数据,执行操作后的查询结果如下图:,返回,精选,15,第14章简单数据库编程,本章要点:数据库的基本概念ADO.NET的基本概念.NETFramework数据提供程序ADO.NET对象ADO.NET数据控件ADO.NET数据库编程方法,精选,16,14.1循序渐进学理论,14.1.1数据库的基本概念1数据库应用概述2数据库的基本概念所谓数据库(DatabaseDB),其实就是存放在计算机的外存储器中的相关数据的集合,可以形象地看作是数据的“仓库”,它是通过文件或类似于文件的数据单位组织起来的。3数据模型与关系数据库,精选,17,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对象。,精选,18,3使用ADO.NET开发数据库应用程序的一般步骤,(1)根据使用的数据源,确定使用的.NETFramework数据提供程序;(2)建立与数据源的连接,需使用Connection对象;(3)执行对数据源的操作命令,通常是SQL命令,需使用Command对象;(4)使用数据集对获得的数据进行操作,需使用DataReader、DataSet等对象;(5)向用户显示数据,需使用数据控件。,精选,19,2DataSet数据集,DataSet的对象模型,精选,20,14.1.4ADO.NET对象及其编程,1SqlConnection对象及其使用功能:建立与特定数据源的连接。一般该对象不会单独使用,而是与其他ADO.NET对象一起使用,是其他ADO.NET对象的重要组成部分。使用步骤1、声明一个SqlConnection对象2、设置SqlConnection对象对象的ConnectionString属性3、调用SqlConnection对象对象的Open方法,打开数据库连接4、进行数据库操作5、调用SqlConnection对象对象的Close方法,关闭数据库连接,精选,21,例14-1编写一个用来测试连接的应用程序,用来建立与SQLServer数据库Student的连接。程序的设置界面如图14-3所示,程序的运行界面如图14-4所示。,精选,22,图14-3程序设计界面,图14-4程序运行界面,精选,23,使用示例SqlConnectionconn=newSqlConnection();conn.ConnectionString=”server=s20227SQLEXPRESS;database=Student;integratedsecurity=true”;conn.Open();MessageBox.Show(已正确建立连接);conn.Close();,精选,24,说明:ConnectionString属性是SqlConnection最关键的属性,它记录了用于打开SQLServer数据库的字符串,以若干个“key=value”的形式组成,中间用分号间隔SQLServer数据库连接字符串中,IntegratedSecurity=SSPI表示使用Windows身份验证,即使用运行当前应用程序的用户来连接SQLServer.其中安全支持提供者接口(SSPI)是一组用于微软Windows平台接入安全服务的应用程序接口(APIs)。SqlConnectionconn=newSqlConnection(Server=.;DataBase=Student;UID=sa;PWD=;);_SQLServer验证方式,精选,25,2SqlCommand对象及其使用,(1)SqlCommand对象的常用属性功能:表示要对SQLServer数据库执行的一个Transact-SQL语句或存储过程。当创建SqlCommand的实例时,读/写属性将被设置为它们的初始值。,精选,26,(2)SqlCommand对象的常用方法ExecuteNonQuery方法格式:publicintExecuteNonQuery();功能:执行T-SQLInsert,Delete,Update及Set语句等命令,返回受影响的行数。ExecuteReader方法格式:publicOleDbDataReaderExecuteReader();功能:执行返回行的命令。,精选,27,使用步骤1、声明一个SqlConnection对象2、设置SqlConnection对象对象的ConnectionString属性3、调用SqlConnection对象对象的Open方法,打开数据库连接4、声明一个SqlCommand对象5、设置SqlCommand对象的Connection为SqlConnection对象6、设置SqlCommand对象的CommandText属性(SQL语句)7、根据SQL语句的不同性质,调用相应的Execute*方法8、调用SqlConnection对象对象的Close方法,关闭数据库连接,精选,28,【例14-2】已知在应用程序当前目录下,有一个名为Student的数据库,该数据库中有一个名为student的表,表中的数据如图14-5所示。请使用SqlCommand对象执行SQL命令向表中插入一个学生的信息,学生数据如下:6张和平男11985-7-28安徽无为插入后,student表中的内容如图14-6所示。,精选,29,图14-5插入前的student表中的数据,图14-6插入后的student表中的数据,精选,30,实例代码,SqlConnectioncon=newSqlConnection();con.ConnectionString=”server=s20227SQLEXPRESS;database=Student;integratedsecurity=true;conn.Open();SqlCommandcmd=newSqlCommand();cmd.Connection=conn;cmd.CommandText=”insertintoStudentsvalues(6,张一,女,5,1981-1-1,上海);cmd.ExecuteNonQuery();conn.Close();,精选,31,3SqlDataReader对象及其使用,SqlDataReader:提供一种从SQLServer数据库读取行的只进流的方式。若要创建SqlDataReader,必须调用SqlCommand对象的ExecuteReader方法,而不要直接使用构造函数。在使用SqlDataReader时,关联的SqlConnection正忙于为SqlDataReader服务,对SqlConnection无法执行任何其他操作,只能将其关闭。除非调用SqlDataReader的Close方法,否则会一直处于此状态。例如,在调用Close之前,无法检索输出参数。,精选,32,(1)SqlDataReader对象的常用属性FieldCount属性功能:获取当前行中的列数RecordsAffected属性功能:获取执行SQL语句更改,删除或插入的行数,精选,33,(2)SqlDataReader对象的常用方法Read方法格式:publicboolRead();功能:使SqlDataReader前进到下一条记录NextResult方法格式:publicboolNextResult();功能:当读取批处理语句的结果时,使数据读取器前进到下一个结果Close方法格式:publicvoidClose();功能:关闭SqlDataReader对象Get方法格式:publicGet(intordinal);,精选,34,使用流程1.定义SqlConnection对象2.定义SqlCommand对象3.设置SqlCommand对象的CommandText属性,一般为Select语句4.打开SqlConnection对象5.通过执行SqlCommand对象的ExecuteReader方法,返回一个SqlDataReader对象6.使用while循环,读取返回结果列表的每一行7.在while循环体内,根据字段类型使用相应的Get方法,获取每个字段的值8.对获取的数据进行处理9.关闭SqlDataReader对象10.关闭SqlConnection对象,精选,35,【例14-3】已知在应用程序当前目录下,有一个名为Student的数据库,该数据库中有一个名为student的表。请编写一个程序用来从该表中读取所有男生的数据,并显示出来。程序的设计界面如图14-7所示,程序的运行界面如图14-8所示。程序运行时单击【连接并读取】按钮,将会把所有男生的数据显示在窗体上。,精选,36,图14-7程序设计界面,图14-8程序运行界面,精选,37,实例代码,SqlConnectioncon=newSqlConnection();con.ConnectionString=server=s20227SQLEXPRESS;database=Student;integratedsecurity=true;con.Open();SqlCommandcmd=newSqlCommand();cmd.Connection=con;cmd.CommandText=select*fromStudentswhereSex=男;SqlDataReadersdr=cmd.ExecuteReader();stringmess=;while(sdr.Read()mess+=sdr0.ToString()+sdr1.ToString()+sdr2.ToString()+sdr3.ToString()+sdr4.ToString()+sdr5.ToString()+n;MessageBox.Show(mess);sdr.Close();con.Close();,精选,38,4SqlDataAdapter对象及其使用,表示用于填充DataSet和更新SQLServer数据库的一组数据命令和一个数据库连接。SqlDataAdapter是DataSet和SQLServer之间的桥接器,用于检索和保存数据。SqlDataAdapter通过对数据源使用适当的Transact-SQL语句映射Fill(它可更改DataSet中的数据以匹配数据源中的数据)和Update(它可更改数据源中的数据以匹配DataSet中的数据)来提供这一桥接。,精选,39,当SqlDataAdapter填充DataSet时,它为返回的数据创建必需的表和列(如果这些表和列尚不存在)。SqlDataAdapter与SqlConnection和SqlCommand一起使用,以便在连接到SQLServer数据库时提高性能。SqlDataAdapter还包括SelectCommand、InsertCommand、DeleteCommand、UpdateCommand和TableMappings属性,以便于数据的加载和更新。,精选,40,(1)SqlDataAdapter对象的常用属性SelectCommand属性:用于在数据源中选择记录InsertCommand属性:用于在数据源中插入记录UpdateCommand属性:用于在数据源中更新记录DeleteCommand属性:用于在数据源中删除记录,精选,41,(2)SqlDataAdapter对象的常用方法Fill方法格式:publicintFill(DataSetdataSet,stringsrcTable);功能:填充DataSet或DataTableUpdate方法格式1:publicoverrideintUpdate(DataSetdataSet);格式2:publicoverrideintUpdate(DataSetdataSet,stringTable);功能:为DataSet中每个已插入、已更新或已删除的行调用相应的INSERT,UPDATE,DELETE语句,精选,42,5DataSet对象及其使用,DataSet(数据集)对象:数据集是包含数据表的对象,可以在这些数据表中临时存储数据以便在应用程序中使用。如果应用程序要求使用数据,则可以将该数据加载到数据集中,数据集在本地内存中为应用程序提供了待用数据的缓存。即使应用程序从数据库断开连接,也可以使用数据集中的数据。数据集维护有关其数据的更改的信息,因此可以跟踪数据更新,并在应用程序重新连接时将更新发送回数据库,精选,43,(1)DataSet对象的组成最重要的是DataTableCollection(数据表集合),包括若干个DataTable对象(2)DataSet对象的填充可以使用SqlDataAdapter对象的Fill方法进行构造(3)DataSet对象的访问格式1:数据集对象名.Tables“数据表名”.Rowsn“列名”格式2:数据集对象名.Tables“数据表名”.Rowsn.ItemsArrayk,精选,44,假设有一个DataSet对象ds访问DataTable对象:DataTabledt1=ds.Tables0;/根据索引DataTabledt2=ds.Tables“用户”;/根据表名访问DataRow对象DataRowdr1=dt1.Rows0;/根据索引DataRowdr2=dt1.Rows“密码”;/根据字段名,精选,45,(4)向DataSet对象中添加行(5)从DataSet对象中删除行(6)修改DataSet对象中的数据(7)利用DataSet对象更新数据源,【例14-4】使用DataAdapter和DataSet对象重新实现例14-3的功能。,精选,46,使用流程1.定义SqlConnection对象2.定义SqlCommand对象3.设置SqlCommand对象的CommandText属性,一般为Select语句4.打开SqlConnection对象5.定义SqlDataAdapter对象,以SqlCommand对象做构造初始值6.定义DataSet对象7.使用SqlDataAdapter对象的Fill方法填充数据集8.获取数据集中的数据进行处理9.关闭SqlConnection对象,精选,47,实例代码:,SqlConnectioncon=newSqlConnection(server=dmt403SQLEXPRESS;database=Student;integratedsecurity=true);/con.ConnectionString=server=s20227SQLEXPRESS;database=Student;integratedsecurity=true;SqlCommandcmd=newSqlCommand(select*fromStudents,con);/cmd.Connection=con;/cmd.CommandText=select*fromStudents;con.Open();SqlDataAdaptersda=newSqlDataAdapter(cmd);DataSetds=newDataSet();sda.Fill(ds,Students);dataGridView1.DataSource=ds.TablesStudents;con.Close();,精选,48,14.3上机练习重应用,14.3.1上机练习一:按照姓名模糊查询程序【练习题目】编写一个按照姓名模糊查询的程序,程序使用的数据依旧是Student数据库中的Student表。程序的设计界面如图14-26所示,程序的运行界面如图14-27所示。程序执行时,在文本框中输入姓名的前若干个字符,然后按【查询】按钮,则在DataGrid控件中显示出满足条件的记录。,精选,49,图14-26程序设计界面,精选,50,图14-27程序运行界面,精选,51,textBox9的TextChanged事件:SqlConnectioncon=newSqlConnection();con.ConnectionString=server=dmt403SQLEXPRESS;database=Student;integratedsecurity=true;SqlCommandcmd=newSqlCommand();cmd.Connection=con;cmd.CommandText=select*fromStudents;con.Open();SqlDataAdaptersda=newSqlDataAdapter(cmd);DataSetds=newDataSet();sda.Fill(ds,Students);foreach(DataRowdrinds.TablesStudents.Rows)textBox9.AutoCompleteCustomSource.Add(drName.ToString();,精选,52,SqlConnectioncon

温馨提示

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

评论

0/150

提交评论