资源描述:
《数据库电子教案PP T第 5章.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第五章查询回顾SQL分为数据操作语言、数据控制语言和数据定义语言;T-SQL是SQL的扩展标识列不能插入指定的数据值使用UPDATE更新数据,一般都有限制条件使用DELETE删除数据时,不能删除被外键值所引用的数据行上面的数据操作语句在程序中会经常使用到理解查询的机制使用SELECT语句进行简单查询使用SELECT语句进行条件查询使用SELECT语句进行连接查询使用SELECT语句进行嵌套查询使用SELECT语句进行相关查询使用SELECT语句进行联合查询本章目标ApplicationLogic客户程序
2、查询请求查询结果集SQLSERVERABCDEFGSELECT*FROMtblstudent查询产生一个虚拟表,看到的是表形式显示的结果,但结果并不真正存储,每次执行查询只是现从数据表中提取数据,并按照表的形式显示出来什么是查询?怎样查询呢?……男关羽31031004……男刘备31031001select*fromtblstudentwherestud_namein(‘刘备’,‘关羽’,’张飞’)……男张飞33041001既然查询得到的“结果集”的结构类似于一张表,那么可以在“结果集”上继续进行查询吗?
3、思考编写查询语句之前…①步打开数据库②步新建查询Select*fromtblstudent③步输入查询语句④步执行查询SQLSever管理平台—查询步骤如下:在使用SQLServer管理平台中一个数据库表(如:tblstudent)上单击鼠标右键,选择打开表,打开表所在的标签页的同时,工具栏增加了【查询设计器】工具条,其中包括与查询有关的4个按钮:【显示关系图窗格】按钮、【显示条件窗格】按钮、【显示SQL窗格】按钮、【显示结果窗格】按钮。单击这些按钮将打开对应的窗格。【显示关系图窗格】直观反映了表的结构
4、以及表和表之间的关系。【显示条件窗格】中设置查询条件。【显示SQL窗格】显示对应的T-SQL语句,用户可以在【显示SQL窗格】中输入查询语句,实现对数据库的数据查询。【显示结果窗格】中显示查询结果。如果【显示关系图窗格】中有多个关联表,则还可以实现多表的连接查询。要想在一个窗口中显示四个窗格,请按住Ctrl键并分别单击上面4个按钮。对表tblstudent实施查询如下图所示。不仅如此,【查询设计器】工具条中还提供了【添加分组依据】按钮,用来实现分组汇总查询。SQLSever管理平台—查询关系图窗格条件窗
5、格SQL窗格查询结果窗格查询设计器工具条显示关系图窗格显示条件窗格显示SQL窗格显示结果窗格添加分组添加表执行查询在此形成查询语句SELECT<列名>FROM<表名>[WHERE<查询条件表达式>][ORDERBY<排序的列名>[ASC或DESC]]列名称SELECTstud_id,stud_name,stud_sex表名FROMtblstudent过滤条件WHEREstud_sex=‘男’排序条件ORDERBYclass_idSELECTstud_id,stud_name,stud_sexFROMtb
6、lstudentWHEREstud_sex=‘男’ORDERBYclass_id查询Select语句结构查询全部的行和列SELECT*FROMtblstudent或SELECTstud_id,stud_name,stud_sex,birth,enroll_date,identity_id,class_idFROMtblstudent查询部分列SELECTstud_id,stud_nameFROMtblstudentSELECTstud_name,year(getdate())-year(birth)FR
7、OMtblstudent数据查询--基础查询经过计算值消除取值重复的行SELECTdistinctstud_idFROMtblscoreSELECTtop3*FROMtblstudentSELECTtop3percent*FROMtblstudent比较大小(简单查询)(含别名的使用)selectStud_name’姓名‘,年龄=year(getdate())-year(birth)fromtblStudentwhereyear(getdate())-year(birth)<20数据查询-distinc
8、t和topn等使用topn返回前n条记录确定范围(简单查询)selectStud_name,class_id,year(getdate())-year(birth)fromtblStudentwhereyear(getdate())-year(birth)BETWEEN20AND23SELECTStud_id'学号‘,stud_name'姓名‘,stud_sex'性别'FROMtblstudentWHEREclass_idin('31022