C#语言和数据库技术基础TP09_第1页
C#语言和数据库技术基础TP09_第2页
C#语言和数据库技术基础TP09_第3页
C#语言和数据库技术基础TP09_第4页
C#语言和数据库技术基础TP09_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

数据查询基础第九章INSERTINTOStudents(SName,SAddress,SGrade,SEmail,SSEX)VALUES('张青裁','上海松江',6,'ZQC@S')INSERTINTOStudents(SCode,SName,SAddress,SGrade,SEmail,SSEX)VALUES(100,'张青裁','上海松江',6,'ZQC@S',0)INSERTINTOStudents(SName,SAddress,SGrade,SEmail,SSEX)VALUES('张青裁','上海松江',6,'ZQC@S',0)回顾和作业点评2-1向Students表中插入一条记录如果SCode为标识列,向Students表中插入一条记录字段个数不一致代码改错不能为标识列字段赋值INSERTINTOStudents(SName,SAddress,SGrade,SEmail,SSEX)VALUES('张青裁','上海松江',6,'ZQC@S',0)2/38INSERTINTOStudentsInfo('姓名','地址','电子邮件')

SELECTSName,SAddress,SEmailFROMStudents一次插入多条学生记录INSERTINTOStudentsInfo(姓名,地址,电子邮件)SELECTSName,SAddress,SEmailFROMStudentsUPDATEStudentsSETSName='胡斐'SETSSex='1'WHERESName='胡非'回顾和作业点评2-2UPDATEStudentsSETSName='胡斐',SSex='1'WHERESName='胡非'字段名不需要单引号出现了2个SET子句代码改错修改学生记录3/38回顾和作业点评2-2预习检查从学生表中查询全部的数据,SQL语句怎么写?查询排序使用的关键字是什么?4/38提问查询学生信息查询考试信息本章任务5/38本章目标掌握查询的机制使用SELECT语句进行条件查询使用表达式、运算符和函数实现查询掌握查询排序6/38什么是查询客户端程序SQLServerSELECT*FROMSales查询产生一个虚拟表看到的是表形式显示的结果,但结果并不真正存储每次执行查询只是从数据表中提取数据,并按照表的形式显示出来ABCDEFG

查询结果集查询请求7/38学生编号学生姓名地址所在班级……001张明全湖南长沙S201002李菲湖北宜昌S202003于寄谦甘肃天水S204004刘国正山东荷泽S201005周接轮台湾新竹S204006巩小妹香港龙湾S203007巩大妹香港龙湾S203008张明敏北京顺义S202009矛十八四川棉阳S204010罗林光陕西临潼S202011司马坡新疆喀什S201SELECT*FROMStudentsWHERE所在班级='S202'S202陕西临潼罗林光010…S202湖北宜昌李菲002S202北京顺义张明敏008查询机制简介8/38SELECT<列名>FROM<表名>[WHERE

<查询条件表达式>][ORDERBY<排序的列名>[ASC或DESC]]SELECT

SCode,SName,SAddressFROM

StudentsWHERE

SSEX=0ORDERBY SCode查询语法语法示例列名称表名过滤条件排序条件SELECTSCode,SName,SAddressFROMStudentsWHERE

SSEX=0ORDERBY

SCode9/38SELECT*FROMStudents数据查询基础2-1SELECT*FROMCourseSELECTSName,SAddressFROMStudents查询学生的姓名和地址示例查询全部的行和列查询部分列10/38数据查询基础2-2SELECTSName,SGradeFROMStudentsWHERE

SAddress='北京'SELECTSName,SAddressFROMStudentsWHERESsex=1查询“北京”地区的学生姓名和年级查询女学生姓名和地址演示示例1:简单数据查询示例查询部分行和列11/38SELECTSCodeAS

学生编号,SName

AS

学生姓名,SAddressAS

学生地址FROMStudentsWHERESAddress<>'河南新乡'SELECTFirstName+'.'+LastNameAS姓名FROMEmployees注意:1.+连接的数据类型必须兼容2.如果

+连接字符型数据,结果为字符串数据的连接3.如果+连接数值型数据,结果为数值的和数据查询-列别名示例SELECT

姓名

=

FirstName+'.'+LastNameFROMEmployees示例演示示例2:列别名查询使用AS命名列使用等号命名列12/38数据查询-空行、常量列原来有数据,但数据被清除的列如何查询?SELECT姓名=SName,地址=SAddress,'北京新兴桥'AS学校名称FROMStudents演示示例3:查询空值、常量列提问示例示例查询空行使用常量列13/38SELECTSNameFROMStudentsWHERESEmailISNULL数据查询-限制行数与取固定的数据行相比,提取固定百分比数据还能得到何种信息?SELECTTOP5

SName,SAddressFROMStudentsWHERESSex=0SELECTTOP20PERCENTSName,SAddressFROMStudentsWHERESSex=0提问演示示例4:查询限制行数列示例限制固定行数按百分数返回行14/38学员操作——查询学生相关基本信息需求说明:查询全部S1的学生信息查询全部S2的学生的姓名和电话查询全部S1女同学的信息查询课时超过60的科目信息练习完成时间:10分钟15/38学员操作—查询学生相关复杂信息2-1训练要点使用SELECT语句查询数据需求说明查询S2的科目名称查询S2男同学的姓名和住址查询无电子邮件的学生姓名和年级信息查询出生日期在1993年之后的S2的学生姓名和年级信息查询参加了日期为2013年2月15日的“HTML和CSS网页技术”科目考试的成绩信息指导讲解需求说明16/38学员操作—查询学生相关复杂信息2-2难点分析:注意各个表之间的关系,例如通过查看S1的年级编号在科目表中查询对应科目SELECT

GradeId

FROM

Grade

WHERE

GradeName='S1'

完成时间:20分钟指导17/38查询单列排序SELECTStudentIDAS学生编号,(Score*0.9+5)AS综合成绩FROMScoreWHERE(Score*0.9+5)>60ORDERBYScoreSELECTStudentID,ScoreFROMScoreORDERBYScoreSELECTStudentID,ScoreFROMScoreORDERBYScoreDESC示例演示示例5:查询排序升序排列降序排列18/38SELECTStudentIDAS学生编号,CourseIDAS课程ID,ScoreAS成绩FROMScoreWHEREScore>60ORDERBYCourseID,Score1、如果成绩按升序,课程编号按降序,该如何编写?2、排序中的列,可以使用表达式吗?

——

如果不可以,请说明原因——

如果可以,请举例说明查询多列排序演示示例5:查询排序示例提问按多列排序19/38小结编写SQL语句:1、查询河北的男同学2、查询考试成绩前五名的分数现场编程20/38学员操作—使用排序查询学生相关信息需求说明:查询学生相关信息查询科目相关信息查询成绩相关信息练习完成时间:25分钟21/38常用的几类函数字符串函数用于控制返回给用户的字符串日期函数用于操作日期值数学函数用于对数值进行代数运算系统函数获取有关SQLServer中对象和设置的系统信息SQLServer中的函数22/38函数名描述示例CHARINDEX寻找一个指定的字符串在另一个字符串中的起始位置SELECTCHARINDEX('JBNS','My

JbnsCourse',1)返回:4LEN返回传递给它的字符串长度SELECTLEN('SQLServer课程')返回:12UPPER把传递给它的字符串转换为大写SELECTUPPER('sqlserver课程')返回:SQLSERVER课程LTRIM清除字符左边的空格SELECTLTRIM('周智宇')返回:周智宇(后面的空格保留)RTRIM清除字符右边的空格SELECTRTRIM('周智宇')返回:周智宇(前面的空格保留)RIGHT从字符串右边返回指定数目的字符SELECTRIGHT('买卖提.吐尔松',3)返回:吐尔松REPLACE替换一个字符串中的字符SELECTREPLACE('莫乐可切.杨可','可','兰')返回:莫乐兰切.杨兰STUFF在一个字符串中,删除指定长度的字符,并在该位置插入一个新的字符串SELECTSTUFF('ABCDEFG',2,3,'我的音乐我的世界')返回:A我的音乐我的世界EFG字符串函数23/38日期函数函数名描述示例GETDATE取得当前的系统日期SELECTGETDATE()返回:今天的日期DATEADD将指定的数值添加到指定的日期部分后的日期SELECTDATEADD(mm,4,'01/01/2009')返回:以当前的日期格式返回05/01/2009DATEDIFF两个日期之间的指定日期部分的间隔SELECTDATEDIFF(mm,'01/01/2009','05/01/2009')返回:4DATENAME日期中指定日期部分的字符串形式SELECTDATENAME(dw,'01/01/2000')返回:Saturday或星期六DATEPART日期中指定日期部分的整数形式SELECTDATEPART(day,'01/15/2000')返回:1524/38数学函数函数名描述示例RAND返回从0到1之间的随机float值SELECTRAND()返回:0.79288062146374ABS取数值表达式的绝对值SELECTABS(-43)返回:43CEILING取大于或等于指定数值、表达式的最小整数SELECTCEILING(43.5)返回:44FLOOR取小于或等于指定表达式的最大整数SELECTFLOOR(43.5)返回:43POWER取数值表达式的幂值SELECTPOWER(5,2)返回:25ROUND将数值表达式四舍五入为指定精度SELECTROUND(43.543,1)返回:43.500SIGN对于正数返回+1,对于负数返回-1,对于0则返回0SELECTSIGN(-43)返回:-1SQRT取浮点表达式的平方根SELECTSQRT(9)返回:325/38系统函数函数名描述示例CONVERT用来转变数据类型SELECTCONVERT(VARCHAR(5),12345)返回:字符串12345CURRENT_USER返回当前用户的名字SELECTCURRENT_USER返回:你登录的用户名DATALENGTH返回用于指定表达式的字节数SELECTDATALENGTH('中国A联盟')返回:5HOST_NAME返回当前用户所登录的计算机名字SELECTHOST_NAME()返回:你所登录的计算机的名字SYSTEM_USER返回当前所登录的用户名称SELECTSYSTEM_USER返回:你当前所登录的用户名USER_NAME从给定的用户ID返回用户名SELECTUSER_NAME(1)返回:从任意数据库中返回“dbo”26/38案例1—问题某公司印了一批充值卡,卡的密码是随机生成的,现在出现这个问题:

卡里面的字母“O和数字0”、“字母i和数字1”,用户反映说看不清楚,公司决定,把存储在数据库中的密码中所有的“O”都改成“0”,把所有的“i”都改成“1”;请编写SQL语句实现以上要求数据库表名:Card密码列名:PassWord问题27/38案例1—分析实现卡密码更新的功能,需要使用UPDATE语句牵涉到字符串的替换,需要使用到SQLServer中的函数REPLACE()分析28/38案例1—T-SQL两行SQL语句UPDATECardSETPassWord=REPLACE(PassWord,'O','0')UPDATECardSETPassWord=REPLACE(PassWord,'i','1')一行SQL语句UPDATE

CardSET PassWord=REPLACE(REPLACE(PassWord,'O','0'),'i','1')演示示例6:修改卡密码29/38案例2—问题在数据库表中有以下字符数据,如:

13-1、13-2、13-3、13-10、13-100、13-108、13-18、13-11、13-15、14-1、14-2现在希望通过SQL语句进行排序,并且首先要按照前半部分的数字进行排序,然后再按照后半部分的数字进行排序,输出要排成这样:

13-1、13-2、13-3、13-10、13-11、13-15、13-18、13-100、13-108、14-1、14-2数据库表名:SellRecord列名:ListNumber问题30/38案例2—分析排序:ORDERBY在ORDERBY的排序列中,需要重新计算出排序的数字前半部分的数字:找到“-”符号的位置取其左半部分使用CONVERT函数将其转换为数字:后半部分的数字:找到“-”符号的位置把从第一个位置到该位置的全部字符替换为空格使用CONVERT函数将其转换为数字:0CONVERT(INT,LEFT(ListNumber,CHARINDEX('-',ListNumber)-1))CONVERT(INT,STUFF(ListNumber,1,CHARINDEX('-',ListNumber),''))分析31/38SELECTListNumberFROMSellRecordORDERBYCONVERT(int,LEFT(ListNumber,CHARINDEX('-',ListNumber)-1)),CONVERT(int,ST

温馨提示

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

评论

0/150

提交评论