软件工程师SQLServer培训1.docx
- 文档编号:27203723
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:13
- 大小:30.87KB
软件工程师SQLServer培训1.docx
《软件工程师SQLServer培训1.docx》由会员分享,可在线阅读,更多相关《软件工程师SQLServer培训1.docx(13页珍藏版)》请在冰豆网上搜索。
软件工程师SQLServer培训1
第一章SQLServer数据库基础
1
ACCPV4.0
课程地位
SPR:
ComputerBaseSTBSQLServerBaseOOP&JavaBaseHTML&JavaScriptC
SQLServer
.Net&C#WinForms
JSP/Servlet
Testing&SQA
Oracle
XMLASP.NET&WebService
EJB&WebServiceStruts&JSF
LinuxSPMUML
2
ACCPV4.0
课程目标
理解数据的基本概念熟识SQLServer的基本操作创建数据库、表、检查约束编写T-SQL执行数据查询为Java、.NET数据库开发提供基础
3
ACCPV4.0
本章目标
理解数据的基本概念熟识SQLServer企业管理器的基本操作创建和配置SQLServer数据库
4
ACCPV4.0
数据库和应用程序2-1
响应和提供数据操作和查询
数据库
应用程序数据库服务器
5
ACCPV4.0
数据库和应用程序2-2
应用程序
作用:
响应操作并显示结果、作用:
响应操作并显示结果、向数据库请求数据要求:
美观、要求:
美观、操作简单方便
数据库
作用:
存储数据、检索数据、生成新的数据作用:
存储数据、检索数据、要求:
统一、安全、要求:
统一、安全、性能等
6
ACCPV4.0
为何需要数据库
存储数据的方法
第一种方法:
用大脑来记住数据第二种方法:
写在纸上第三种方法:
写在计算机的内存中第四种方法:
写成磁盘文件
……
7
ACCPV4.0
数据库能够做什么
存储大量数据,方便检索和访问保持数据信息的一致、完整共享和安全通过组合分析,产生新的有用信息
8
ACCPV4.0
数据库的发展史
萌芽阶段——文件系统
使用磁盘文件来存储数据
初级阶段——第一代数据库
出现了网状模型、层次模型的数据库
中级阶段——第二代数据库
关系型数据库和结构化查询语言
高级阶段——新一代数据库
“关系-对象”型数据库
9
ACCPV4.0
时下流行的数据库
Oracle
Oracle公司的产品“关系-对象”型数据库产品免费、服务收费
SQLServer
针对不同用户群体的五个特殊的版本易用性好
DB2
IBM公司的产品支持多操作系统、多种类型的硬件和设备
10
ACCPV4.0
数据库的基本概念6-1
这些客观存在的、可以被描述事物都是“实体”这些客观存在的、可以被描述事物都是“实体”
11
ACCPV4.0
数据库的基本概念6-2
行(记录)
列
12
ACCPV4.0
数据库的基本概念6-3
数据库就是“数据”的“仓库”数据库由表、关系以及操作对象组成数据存放在表中
…
订单客户产品
数据表存储过程视图….产品数据库
表
13
ACCPV4.0
数据库的基本概念6-4
数据库
A003A004杨可马兰B007B008李新爱刘开泰
检索数据插入数据检索数据插入数据
更新数据删除数据
数据库管理系统—数据库管理系统—DBMS
14
ACCPV4.0
数据库的基本概念6-5
编号12姓名王涛李梅年龄3327民族汉族汉族部门人事管理部人事管理部
存在冗余
编号12民族编码12姓名王涛李梅民族汉族回族年龄3327民族编码11部门编码12部门编码11部门人事管理部市场营销部
为减少数据查找的麻烦,为减少数据查找的麻烦,允许数据有一定的冗余
15
ACCPV4.0
数据库的基本概念6-6
RollNumber
Name
AliciaRuthJasonDarrenMaryBethAliciaRuthAliciaRuthMaryBeth
Address
12,TempleStreet123,SunsetBlvd.32,GoldenAvenue12,TempleStreet12,TmpleStreet33,GoldenAvenue
BookTaken
AC091AC043AC021AC043AC011AC011
1214
姓名
15121215
不同的地址!
不同的地址!
存在不正确、不准确的数据,数据库“失去了完整性”存在不正确、不准确的数据,数据库“失去了完整性”
16
ACCPV4.0
SQLServer安装需求
最小配置
处理器166-MHz奔腾处理器或者更高内存最小256MB(Windows2000安装)最小64MB(WindowsNT4.0安装)250MB(典型安装)270MB(完全安装)100MB(客户端工具)50-130MB(分析服务)80MB(英文查询)
磁盘容量
MB
17
ACCPV4.0
SQLServer2000组件
18
ACCPV4.0
服务管理器
演示启动和停止服务……
19
ACCPV4.0
使用企业管理器4-1
组注册数据库数据库对象数据库表记录
20
ACCPV4.0
使用企业管理器4-2
演示创建组……
21
ACCPV4.0
使用企业管理器4-3
演示建立注册……
22
ACCPV4.0
使用企业管理器4-4
演示建立登录和数据库用户……
23
ACCPV4.0
SQLServer中的数据库
系统数据库
mastermodeltempdbmsdb
pubs
Northwind
User1
User2
用户数据库
24
ACCPV4.0
创建数据库3-1
数据库文件和事务日志文件
数据库数据文件.mdf或.ndf日志文件.ldf
表、索引页:
8KB数据最多=8060字节
25
ACCPV4.0
创建数据库3-2
Northwind的物理文件结构
sys…sys…sys…sys…sysuserssysobjects…OrdersCustomersProductsOrdHistYear2OrdHistYear1
C:
\
Northwnd.mdf
D:
\
OrdHist1.ndfOrdHist2.ndf
E:
\
Northwnd.ldf
主文件组
26
用户定义文件组
日志文件
ACCPV4.0
创建数据库3-3
演示创建数据库……
27
ACCPV4.0
管理和维护:
收缩数据库
演示收缩数据库……
28
ACCPV4.0
管理和维护:
移动数据库
演示分离和附加数据库……
29
ACCPV4.0
管理和维护:
配置选项
演示配置数据库的选项……
30
ACCPV4.0
删除数据库
31
ACCPV4.0
总结
SQLServer2000是Microsoft公司提供的关系型数据库管理系统,SQLServer也是当今流行的数据库数据库是表和数据库访问对象的集合,其中表分类存储了不同的实体信息,每一行数据对应一个实体的描述信息数据冗余是指数据库中存在一些重复的数据,数据完整性是指数据库中的数据能够正确反应实际情况,数据库中允许有一些数据冗余,但是要保持数据的完整性企业管理器是SQLServer2000最常用的操作环境之一,能够执行对数据库的日常管理操作SQLServer数据库的物理文件包括数据文件和日志文件两部分,并且在创建数据库的时候就需要指定数据库的操作包括创建、收缩、移动、配置选项和删除
32
ACCPV4.0第四章数据查询
(1)
1
ACCPV4.0
回顾
SQL分为数据操作语言、数据控制语言和数据定义语言;T-SQL是SQL的扩展通配符经常与LIKE一起使用来进行非精确的限制;一次插入多行数据,可以使用INSERT…SELECT…、SELECT…INTO…或者UNION关键字来实现标识列不能插入指定的数据值使用UPDATE更新数据,一般都有限制条件使用DELETE删除数据时,不能删除被外键值所引用的数据行使用TRUNCATETABLE来删除所有数据时,效率要比DELETE语句高上面的数据操作语句在程序中会经常使用到
2
ACCPV4.0
目标
理解查询的机制使用SELECT语句进行条件查询在查询中返回限制行、进行查询排序在查询中使用表达式、运算符和函数
3
ACCPV4.0
什么是查询?
SELECT*FROMSALES
查询请求查询结果集ApplicationLogicSQLSERVER
客户程序
ABCDEFG
查询产生一个虚拟表,看到的是表形式显示的结果,但结果并不真正存储,每次执行查询只是现从数据表中提取数据,并按照表的形式显示出来
4
ACCPV4.0
怎么查的?
学员编号001002003004005006007008009010011002008
5
学员姓名张明全李菲于寄谦刘国正周接轮巩小妹巩大妹张明敏矛十八罗林光司马坡李菲张明敏罗林光
地址湖南长沙湖北宜昌甘肃天水山东荷泽台湾新竹香港龙湾香港龙湾北京顺义四川棉阳陕西临潼新疆喀什湖北宜昌北京顺义陕西临潼
所在班级S201S202S204S201S204S203S203S202S204S202S201S202S202S202…
…….SELECT*FROMStudentsH.
WHERE所在班级=‘S202’
010
ACCPV4.0
思考
既然查询得到的“结果集”的结构类似于一张表,那么可以在“结果集”上继续进行查询吗?
6
ACCPV4.0
编写查询语句之前…
7
ACCPV4.0
查询
SELECTFROM[WHERE[ORDERBY
列名称
SELECTSCode,SName,SAddress
<列名><表名><查询条件表达式>]<排序的列名>[ASC或DESC]]或
表名
FROMStudents
过滤条件
WHERESSEX=0
排序条件
ORDERBYSCode
SELECTFROMWHEREORDERBY
8
SCode,SName,SAddressStudentsSSEX=0SCode
ACCPV4.0
数据查询-基础
查询全部的行和列SELECT*FROMStudents查询部分行SELECTSCode,SName,SAddressFROMStudentsWHERESAddress='河南新乡'SELECTSCode,SName,SAddressFROMStudentsWHERESAddress<>'河南新乡'
9
ACCPV4.0
数据查询-列名
使用AS来命名列SELECTSCodeAS学员编号,SNameAS学员姓名,SAddressAS学员地址FROMStudentsWHERESAddress<>'河南新乡'SELECTFirstName+'.'+LastNameAS'姓名'FROMEmployees使用=来命名列SELECT'姓名'=FirstName+'.'+LastNameFROMEmployees
10
ACCPV4.0
数据查询-空行常量列
查询空行SELECTSNameFROMStudentsWHERESEmailISNULL
思考:
非空行怎么查?
使用常量列SELECT姓名=SName,地址=SAddress,'河北新龙'AS学校名称FROMStudents
11
ACCPV4.0
数据查询-限制行数
限制固定行数SELECTTOP5SName,SAddressFROMStudentsWHERESSex=0
返回百分之多少行SELECTTOP20PERCENTSName,SAddressFROMStudentsWHERESSex=0
12
ACCPV4.0
数据查询-排序2-1
升序排列SELECTStudentIDAs学员编号,(Score*0.9+5)As综合成绩FROMScoreWHERE(Score*0.9+5)>60ORDERBYScore降序排列SELECTAu_Lname+'.'+Au_fNameASEMPFromAuthorsUnionSELECTfName+'.'+LNameASEMPFromEmployeeORDERBYEMPDESC
13
ACCPV4.0
数据查询-排序2-2
按多列排序SELECTStudentIDAs学员编号,ScoreAs成绩FROMScoreWHEREScore>60ORDERBYScore,CourseID
思考:
排序中的字段,可以使用表达式吗?
——如果不可以,请说明原因;——如果可以,请举例说明;
14
ACCPV4.0
SQLServer中的函数
字符串函数日期函数数学函数系统函数
相当于C语言中的内部函数
15
ACCPV4.0
字符串函数
函数名
CHARINDEX
描述
用来寻找一个指定的字符串在另一个字符串中的起始位置返回传递给它的字符串长度把传递给它的字符串转换为小写把传递给它的字符串转换为大写清除字符左边的空格清除字符右边的空格从字符串右边返回指定数目的字符替换一个字符串中的字符
举例
SELECTCHARINDEX('ACCP','MyAccpCourse',1)返回:
4SELECTLEN('SQLServer课程')返回:
12SELECTLOWER('SQLServer课程')返回:
sqlserver课程SELECTUPPER('sqlserver课程')server')返回:
SQLSERVER课程SELECTLTRIM('周智宇')返回:
周智宇(后面的空格保留)SELECTRTRIM('周智宇')返回:
周智宇(前面的空格保留)SELECTRIGHT('买卖提.吐尔松',3)返回:
吐尔松SELECTREPLACE('莫乐可切.杨可','可','兰')返回:
莫乐兰切.杨兰SELECTSTUFF('ABCDEFG',2,3,'我的音乐我的世界')返回:
A我的音乐我的世界EFG
LENLOWERUPPERLTRIMRTRIMRIGHTREPLACE
STUFF
在一个字符串中,删除指定长度的字符,并在该位置插入一个新的字符串
16
ACCPV4.0
日期函数
函数名GETDATEDATEADDDATEDIFF描述取得当前的系统日期将指定的数值添加到指定的日期部分后的日期两个日期之间的指定日期部分的区别举例SELECTGETDATE()返回:
今天的日期SELECTDATEADD(mm,4,’01/01/99’)返回:
以当前的日期格式返回05/01/99SELECTDATEDIFF(mm,’01/01/99’,’05/01/99’)返回:
4SELECTDATENAME(dw,’01/01/2000’)返回:
SaturdaySELECTDATEPART(day,’01/15/2000’)返回:
15
DATENAME
日期中指定日期部分的字符串形式日期中指定日期部分的整数形式
DATEPART
17
ACCPV4.0
数学函数
函数名描述取数值表达式的绝对值返回大于或等于所给数字表达式的最小整数举例SELECTABS(-43)返回:
43SELECTCEILING(43.5)返回:
44
ABS
CEILING
FLOORPOWERROUNDSignSqrt
取小于或等于指定表达式的SELECTFLOOR(43.5)最大整数返回:
43
取数值表达式的幂值将数值表达式四舍五入为指定精度对于正数返回+1,对于负数返回-1,对于0则返回0取浮点表达式的平方根SELECTPOWER(5,2)返回:
25SELECTROUND(43.543,1)返回:
43.5SELECTSIGN(-43)返回:
-1SELECTSQRT(9)返回:
3
18
ACCPV4.0
系统函数
函数名CONVERT描述用来转变数据类型举例SELECTCONVERT(VARCHAR(5),12345)返回:
字符串12345SELECTCURRENT_USER返回:
你登录的用户名SELECTDATALENGTH('中国A盟')返回:
7SELECTHOST_NAME()返回:
你所登录的计算机的名字SELECTSYSTEM_USER返回:
你当前所登录的用户名SELECTUSER_NAME
(1)返回:
从任意数据库中返回“dbo”
CURRENT_USERDATALENGTHHOST_NAMESYSTEM_USERUSER_NAME
返回当前用户的名字返回用于指定表达式的字节数返回当前用户所登录的计算机名字返回当前所登录的用户名称从给定的用户ID返回用户名
19
ACCPV4.0
案例分析1—要求
某公司印了一批充值卡,卡的密码是随机生成的,现在出现这个问题:
卡里面的“O和0”(哦和零)“i和1”(哎和一),用户反映说看不清楚,公司决定,把存储在数据库中的密码中所有的“哦”都改成“零”,把所有的“i”都改成“1”;
请编写SQL语句实现以上要求;数据库表名:
Card;密码字段名:
PassWord;
20
ACCPV4.0
案例分析1—分析
这是更新语句,需要使用UPDATE语句;因为牵涉到字符串的替换,需要使用到SQLServer中的函数Replace;
21
ACCPV4.0
案例分析1—T-SQL
两行SQL语句UpdateCardSetPassWord=Replace(密码,'O','0')UpdateCardSetPassWord=Replace(密码,'i','1')
一行SQL语句UpdateCardSetPassWord=Replace(Replace(密码,'O','0'),'i','1')
22
ACCPV4.0
案例分析2—要求
在数据库表中有以下字符数据,如:
13-1、13-2、13-3、13-10、13-100、13-108、13-18、13-11、1315、14-1、14-2
现在希望通过SQL语句进行排序,并且首先要按照前半部分的数字进行排序,然后再按照后半部分的数字进行排需,输出要排成这样:
13-1、13-2、13-3、13-10、13-11、13-15、13-18、13-100、13108、14-1、14-2
数据库表名:
SellRecord;字段名:
ListNumber;
23
ACCPV4.0
案例分析2—分析
这是查询语句,需要使用SELECT语句需要使用到ORDERBY进行排序,并且在ORDERBY的排序列中,也需要重新计算出排序的数字来前半部分的数字,可以从先找到“-”符号的位置,然后,取其左半部分,最后再使用Convert函数将其转换为数字:
Convert(int,Left(ListNumber,CharIndex('-',ListNumber)-1))
后半部分的数字,可以先找到“-”符号的位置,然后把从第一个位置到该位置的全部字符替换为空格,最后再使用Convert函数将其转换为数字:
Convert(int,Stuff(ListNumber,1,Charindex('-',ListNumber),''))
24
ACCPV4.0
案例分析2—T-SQL
SELECTListNumberFROMSellRecordORDERBYConvert(int,Left(ListNumber,CharIndex('-',ListNumber)-1)),Convert(int,Stuff(ListNumber,1,Charindex('-',ListNumber),''))
,,,,,,,,,,,,,
思考:
还有其他的计算出排序列方法吗?
思考:
还有其他的计算出排序列方法吗?
25
ACCPV4.0
总结
查询将逐行筛选表中的数据,最后符合要求的记录重新组合成“记录集”,记录集的结构类似于表结构判断一行中的数据项是否为空,使用ISNULL使用ORDERBY进行查询记录集的排序,并且可以按照多个列进行排序在查询中,可以使用常量、表达式、运算符在查询中使用函数,能够像在程序中那样处理查询得到的数据项
26
ACCPV4.0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程师 SQLServer 培训