数据库应用开发培训课程_第1页
数据库应用开发培训课程_第2页
数据库应用开发培训课程_第3页
数据库应用开发培训课程_第4页
数据库应用开发培训课程_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

数据库应用开发第一页,共三十七页。一、SQLserverSQL语言概要二、如何读懂数据库设计图三、如何使用SQLServer企业管理器、查询分析器四、.NET中对于数据库访问提供的对象(熟悉DataSet、DataTable、DataRow对象)五、使用SqlHelper并创建DBAccess实现数据库封装六、如何使用DBAccess提供的方法

目录第二页,共三十七页。

一、SQL语言概要一、数据类型二、SQL语句

第三页,共三十七页。

数据类型Char和Varcharchar和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据。所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据则不会以空格填充。text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。第四页,共三十七页。

数据类型Nchar、Nvarcharnvarchar、nchar从名称上看只是多了个字母“n”,它表示存储的是Unicode数据类型的字符。字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较:nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。第五页,共三十七页。

数据类型DateTimedatetime:从1753年1月1日到9999年12月31日的日期和时间数据,精确到百分之三秒。第六页,共三十七页。

数据类型BigInt、Int、SmallInt、TinyIntbigint:从-2^63(-92233728)到2^63-1(92233727)的整型数据。

int:从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型数据。

smallint:从-2^15(-32,768)到2^15-1(32,767)的整数数据。

tinyint:从0到255的整数数据。

Bitbit:1或0的整数数据。第七页,共三十七页。数据类型Decimal/Numeric、Floact、Realdecimal和numeric这两种数据类型是等效的。都有两个参数:p(精度)和s(小数位数)。指定小数点左边和右边可以存储的十进制数字的最大个数,p必须是从1到38之间的值。s指定小数点右边可以存储的十进制数字的最大个数,s必须是从0到p之间的值,默认小数位数是0。float和realfloat:从-1.79^308到1.79^308之间的浮点数字数据。

real:从-3.40^38到3.40^38之间的浮点数字数据。在SQLServer中,real的同义词为float(24)。第八页,共三十七页。

SQL语句Select语句Insert语句Update语句Delete语句其他常用的SQL语句第九页,共三十七页。SELECT[ALL|DISTINCT]<select_list>

FROM{<table_source>}[,…n]

WHERE<search_condition>PartialSyntax1SELECTStatementSelectListWHEREFROM第十页,共三十七页。指定列employeeidlastnamefirstnametitle1DavolioNancySalesRepresentative2FullerAndrewVicePresident,Sales3LeverlingJanetSalesRepresentative4PeacockMargaretSalesRepresentative5BuchananStevenSalesManager6SuyamaMichaelSalesRepresentative7KingRobertSalesRepresentative8CallahanLauraInsideSalesCoordinator9DodsworthAnneSalesRepresentativeUSEnorthwindSELECTemployeeid,lastname,firstname,titleFROMemployeesGO第十一页,共三十七页。WHERE——过滤行employeeidlastnamefirstnametitle5BuchananStevenSalesManagerUSEnorthwindSELECTemployeeid,lastname,firstname,titleFROMemployeesWHEREemployeeid=5GO第十二页,共三十七页。修改列名1)SELECTau_fname,au_lname,city,state, phoneASTelephoneFROMauthors--推荐使用2)SELECTau_fname,au_lname,city,state, Telephone=phoneFROMauthors3)SELECTau_fname,au_lname,city,state, phoneTelephoneFROMauthors第十三页,共三十七页。更改表名1)SELECTa.*fromauthorsasa2)SELECTa.*fromauthorsa3)selectb.*from(select*fromauthors)asb第十四页,共三十七页。Insert单行数据INSERT…VALUES多行数据INSERT…SELECTSELECTINTO插入部分数据使用默认插入数据第十五页,共三十七页。插入单行数据语法INSERTINTO表名[列名序列]VALUES(值序列)例子USEnorthwind

INSERTINTOorders

(ID,quantity,note)VALUES(1,10,’NewOrder’)GO第十六页,共三十七页。DELETE语法DELETEFROM表名[WHERE删除条件]例子USEnorthwind

DELETEfromordersGO第十七页,共三十七页。USEnorthwindUPDATEproducts

SETunitprice=(unitprice*1.1)GOUpdate语法UPDATE表名SET列名=常量值|表达式[WHERE更新条件]例子第十八页,共三十七页。其他有用的SQL删除重复行限制返回行数IN(NOTIN)LIKEISNULL查询结果排序ISNULL()函数联合查询第十九页,共三十七页。1、删除重复行

SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。 使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。

2、限制返回的行数

使用TOPn[PERCENT]选项限制返回的数据行数,TOPn说明返回n行,而TOPnPERCENT时,说明n是

表示一百分数,指定返回的行数等于总行数的百分之几。

例如:

SELECTTOP2*

FROMtesttable

SELECTTOP20PERCENT*

FROMtesttable

第二十页,共三十七页。NOTIN(项1,项2……)

模式匹配符(判断值是否与指定的字符通配格式相符):LIKE、NOTLIKE

空值判断符(判断表达式是否为空):ISNULL、NOTISNULL

逻辑运算符(用于多条件的逻辑连接):NOT、AND、OR

1、范围运算符例:ageBETWEEN10AND30相当于age>=10ANDage<=30

2、列表运算符例:countryIN(‘Germany’,‘China’)

3、模式匹配符例:常用于模糊查找,它判断列值是否与指定的字符串格式相匹配。可用于char、

varchar、text、ntext、datetime和smalldatetime等类型查询。

空值判断符例WHEREageISNULL

逻辑运算符:优先级为NOT、AND、OR

第二十一页,共三十七页。(四)查询结果排序

使用ORDERBY子句对查询返回的结果按一列或多列排序。ORDERBY子句的语法格式为:

ORDERBY{column_name[ASC|DESC]}[,…n]

其中ASC表示升序,为默认值,DESC为降序。例如:

SELECT*

FROMusertable

ORDERBYagedesc,useridASC

另外,可以根据表达式进行排序。

第二十二页,共三十七页。ISNULL(check_expression,replacement_value)

参数

check_expression

将被检查是否为NULL的表达式。check_expression可以是任何类型的。

replacement_value

在check_expression为NULL时将返回的表达式。replacement_value必须与check_expresssion具有相同的类型。

返回类型

返回与check_expression相同的类型。

注释

如果check_expression不为NULL,那么返回该表达式的值;否则返回replacement_value。

示例A.将ISNULL与AVG一起使用

下面的示例查找所有书的平均价格,用值$10.00替换titles表的price列中的所有NULL条目。

USEpubsGOSELECTAVG(ISNULL(price,$10.00))FROMtitlesGO

下面是结果集:

--------------------------14.24(1row(s)affected)

B.使用ISNULL

下面的示例为titles表中的所有书选择书名、类型及价格。如果一个书名的价格是NULL,那么在结果集中显示的价格为0.00。

USEpubsGOSELECTSUBSTRING(title,1,15)ASTitle,typeASType,ISNULL(price,0.00)ASPriceFROMtitlesGO

第二十三页,共三十七页。二、联合查询内连接左连接右连接关键词innerjoin、leftjoin、rightjoin第二十四页,共三十七页。Join用途:当你要从两个或者以上的表中选取结果集时,你就会用到JOIN。例:“Employees”表中的数据如下,(其中ID为主键):IDName01Hansen,Ola02Svendson,Tove03Svendson,Stephen04Pettersen,Kari“Orders”表中的数据如下:IDProduct01Printer03Table03Chair用Employees的ID和Orders的ID相关联选取数据:第二十五页,共三十七页。SELECTEmployees.Name,Orders.ProductFROMEmployees,OrdersWHEREEmployees.ID=Orders.ID返回结果:NameProductHansen,OlaPrinterSvendson,StephenTableSvendson,StephenChair或者你也可以用JOIN关键字来完成上面的操作:SELECTEmployees.Name,Orders.ProductFROMEmployeesINNERJOINOrdersONEmployees.ID=Orders.ID

INNERJOIN的语法:SELECTfield1,field2,field3FROMfirst_tableINNERJOINsecond_tableONfirst_table.keyfield=second_table.foreign_keyfield

解释:INNERJOIN返回的结果集是两个表中所有相匹配的数据。第二十六页,共三十七页。LEFTJOIN的语法:SELECTfield1,field2,field3FROMfirst_tableLEFTJOINsecond_tableONfirst_table.keyfield=second_table.foreign_keyfield

用”Employees”表去左外联结”Orders”表去找出相关数据:SELECTEmployees.Name,Orders.ProductFROMEmployeesLEFTJOINOrdersONEmployees.ID=Orders.ID

返回结果:NameProductHansen,OlaPrinterSvendson,ToveSvendson,StephenTableSvendson,StephenChairPettersen,Kari

解释:LEFTJOIN返回”first_table”中所有的行尽管在”second_table”中没有相匹配的数据。第二十七页,共三十七页。RIGHTJOIN的语法:SELECTfield1,field2,field3FROMfirst_tableRIGHTJOINsecond_tableONfirst_table.keyfield=second_table.foreign_keyfield

用”Employees”表去右外联结”Orders”表去找出相关数据:SELECTEmployees.Name,Orders.ProductFROMEmployeesRIGHTJOINOrdersONEmployees.ID=Orders.ID

返回结果:NameProductHansen,OlaPrinterSvendson,StephenTableSvendson,StephenChair解释:RIGHTJOIN返回”second_table”中所有的行尽管在”first_table”中没有相匹配的数据。第二十八页,共三十七页。

二、数据库设计图讲解第二十九页,共三十七页。第三十页,共三十七页。

三、使用企业管理器和查询分析器(实例)第三十一页,共三十七页。

四、ADO.NETDataSetDataSet对象是支持ADO.NET的断开式、分布式数据方案的核心对象。DataSet是数据的内存驻留表示形式,无论数据源是什么,它都会提供一致的关系编程模型。一个ADO.NETDataSet包含DataTable对象所表示的零个或更多个表的集合。DataTableCollection包

温馨提示

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

评论

0/150

提交评论