欢迎来到天天文库
浏览记录
ID:41880249
大小:1.72 MB
页数:264页
时间:2019-09-04
《第4章 数据库的查询和视图》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第4章数据库的查询和视图4.1关系运算4.2数据库的查询4.3视图4.4游标4.1关系运算1.选择(Selection)选择是单目运算,其运算对象是一个表。该运算按给定的条件,从表中选出满足条件的行形成一个新表作为运算结果。选择运算的记号为F(R)。其中,是选择运算符,下标F是一个条件表达式,R是被操作的表。例如:若要从T表(表4.1)中找出表中T1<20的行形成一个新表,则运算式为:F(T)T1T2T3T4T51A133M2B120N3A21212O5D1024P20F14Q100A328N表4.1T表4
2、.1关系运算上式中F为T1<20,该选择运算的结果如表4.2所示。T1T2T3T4T51A133M2B120N3A21212O5D1024P表4.2F(T)4.1关系运算2.投影(Projection)投影也是单目运算,该运算从表中选出指定的属性值组成一个新表,记为ΠA(R)。其中,A是属性名(即列名)表,R是表名。例如,在T表中对T1、T2和T5投影,运算式为:ΠT1,T2,T5(T)该运算得到如表4.3所示的新表。T1T2T5T1T2T51A1M3A2O2B1N5DP表4.3ΠT1,T2,T5(T)4.1关
3、系运算3.连接(JOIN)连接是把两个表中的行按照给定的条件进行拼接而形成新表,记为。其中,R、S是被操作的表,F是条件。例如,若表A和B分别如表4.4和表4.5所示,则如表4.6所示,其中F为T1=T3。3.连接(JOIN)T1T21A6F2B表4.4A表T3T4T513M20N表4.5B表T1T2T3T4T51A13M2B20N表4.64.1关系运算数据库应用中最常用的是“自然连接”。进行自然连接运算要求两个表有共同属性(列),自然连接运算的结果表是在参与操作两个表的共同属性上进行等值连接后再去除重复的属性后
4、所得的新表。自然连接运算记为R∞S,其中R和S是参与运算的两个表。例如,若表A和B分别如表4.7和表4.8所示,则如表4.9所示。例如,若表A和B分别如表4.7和表4.8所示,则如表4.9所示。T1T2T310A1B15A1C220D2C2表4.7A表T1T4T5T61100A1D11002B2C1200A2D1510A2C2表4.8B表T1T2T3T4T5T65A1C210A2C220D2C20A2D1表4.94.2数据库的查询SELECT语句,它是T-SQL的核心。[WITH5、ression>]/*指定临时命名的结果集*/SELECT[ALL6、DISTINCT][TOPexpression[PERCENT][WITHTIES]]/*指定要选择的列及其限定*/[INTOnew_table]/*INTO子句,指定结果存入新表*/[FROMtable_source]/*FROM子句,指定表或视图*/[WHEREsearch_condition]/*WHERE子句,指定查询条件*/[GROUPBYgroup_by_expression]/*GROUPBY子句,指定分组7、表达式[HAVINGsearch_condition]/*HAVING子句,指定分组统计条件*/[ORDERBYorder_expression[ASC8、DESC]]/*ORDER子句,指定排序表达式和顺序*/4.2.1选择列通过SELECT语句的项组成结果表的列。语法格式如下:::={*/*选择当前表或视图的所有列*/9、{table_name10、view_name11、table_alias}.*/*选择指定的表或视图的所有列*/12、{column_name13、[]ex14、pression15、$IDENTITY16、$ROWGUID}/*选择指定的列*/17、udt_column_name[{.18、::}{{property_name19、field_name}20、method_name(argument[,...n])}]/*选择用户定义数据类型的属性、方法和字段*/21、expression[[AS]column_alias]/*AS子句,定义列别名*/22、column_alias=expression/*选择指定列并更改列标题*/} [,...n]4.2.1选择列1.选择所有列使用“*”表示选择一个23、表或视图中的所有列。【例4.1】查询PXSCJ数据库中XSB表的所有数据。SELECT*FROMXSB执行完后SQLServerManagementStudio的结果窗口中将显示XSB表的所有数据。4.2.1选择列2.选择一个表中指定的列使用SELECT语句选择一个表中的某些列,各列名之间要以逗号分隔。其中,$IDENTITY表示选择标识列,$ROWGUID表示选择ROW
5、ression>]/*指定临时命名的结果集*/SELECT[ALL
6、DISTINCT][TOPexpression[PERCENT][WITHTIES]]/*指定要选择的列及其限定*/[INTOnew_table]/*INTO子句,指定结果存入新表*/[FROMtable_source]/*FROM子句,指定表或视图*/[WHEREsearch_condition]/*WHERE子句,指定查询条件*/[GROUPBYgroup_by_expression]/*GROUPBY子句,指定分组
7、表达式[HAVINGsearch_condition]/*HAVING子句,指定分组统计条件*/[ORDERBYorder_expression[ASC
8、DESC]]/*ORDER子句,指定排序表达式和顺序*/4.2.1选择列通过SELECT语句的项组成结果表的列。语法格式如下:::={*/*选择当前表或视图的所有列*/
9、{table_name
10、view_name
11、table_alias}.*/*选择指定的表或视图的所有列*/
12、{column_name
13、[]ex
14、pression
15、$IDENTITY
16、$ROWGUID}/*选择指定的列*/
17、udt_column_name[{.
18、::}{{property_name
19、field_name}
20、method_name(argument[,...n])}]/*选择用户定义数据类型的属性、方法和字段*/
21、expression[[AS]column_alias]/*AS子句,定义列别名*/
22、column_alias=expression/*选择指定列并更改列标题*/} [,...n]4.2.1选择列1.选择所有列使用“*”表示选择一个
23、表或视图中的所有列。【例4.1】查询PXSCJ数据库中XSB表的所有数据。SELECT*FROMXSB执行完后SQLServerManagementStudio的结果窗口中将显示XSB表的所有数据。4.2.1选择列2.选择一个表中指定的列使用SELECT语句选择一个表中的某些列,各列名之间要以逗号分隔。其中,$IDENTITY表示选择标识列,$ROWGUID表示选择ROW
此文档下载收益归作者所有