使用TransactSQL语言.ppt
《使用TransactSQL语言.ppt》由会员分享,可在线阅读,更多相关《使用TransactSQL语言.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第2 2章章 使用使用Transact-SQLTransact-SQL语言语言使使用用TraTransansact-ct-SQLSQL语语言言|学习目标学习目标|了解了解Transact-SQLTransact-SQL的用法和作的用法和作用用|学会并能根据需要灵活使用学会并能根据需要灵活使用SELECTSELECT语句查询用户表的信息语句查询用户表的信息|使用使用INSERTINSERT向用户表输入数据向用户表输入数据|使用使用UPDATEUPDATE修改用户表的数据修改用户表的数据|使用使用DELETEDELETE语句删除用户表的语句删除用户表的数据。数据。内容框架Transact-SQL
2、语言概述|问题:问题:我们需要对数据进行哪些维护操我们需要对数据进行哪些维护操作?作?如何对数据进行查询、统计如何对数据进行查询、统计?Transact-SQL语言概述|结构化查询语言(结构化查询语言(Structured Structured Query LanguageQuery Language)|SQLSQL语言是一种用于存取、查询语言是一种用于存取、查询数据以及管理数据库的数据库查数据以及管理数据库的数据库查询和编程语言。询和编程语言。|尽管不同的关系数据库使用各种尽管不同的关系数据库使用各种略有不同的略有不同的SQLSQL版本,但多数都版本,但多数都执行执行ANSI SQLANSI
3、 SQL标准。标准。|将将ANSI SQL-92ANSI SQL-92的扩展集称为的扩展集称为Transact-SQLTransact-SQL,简写为,简写为T-SQLT-SQLTransact-SQL语言的组成 数据定义语言数据定义语言DDLDDL:用来定义和管理数据库中的对象。:用来定义和管理数据库中的对象。DDLDDL主要的语句有主要的语句有:CREAT TABLECREAT TABLE/*/*创建表创建表*/ALTER TABLEALTER TABLE/*/*修改表的属性修改表的属性*/DROP TABLE /*DROP TABLE /*删除表删除表*/数据操作语言数据操作语言DMLD
4、ML:用来操作数据库中的对象和数据,是:用来操作数据库中的对象和数据,是T-SQLT-SQL中最常用的部分。中最常用的部分。DMLDML主要的语句有:主要的语句有:SELECTSELECT/*/*从从一一个个表表或或多多个个表表中中查查询询数数据据*/DELETEDELETE/*/*从表中删除数据从表中删除数据*/INSERT INSERT/*/*向一个表中添加数据向一个表中添加数据*/UPDATEUPDATE/*/*修改表中已有的数据修改表中已有的数据*/数据控制语言数据控制语言DCLDCL:用来控制用户对数据库对象操作的权:用来控制用户对数据库对象操作的权限。限。主要的命令有:主要的命令有
5、:GRANTGRANT/*/*授予权限授予权限*/REMOVEREMOVE/*/*回收所授予的权限回收所授予的权限*/查询信息-单表|切换数据库切换数据库:USE:USE 数据库名数据库名|SELECTSELECT语句语句:用于查询数据。用于查询数据。SELECT SELECT 选择列表选择列表FROM FROM 表(视图)的列表表(视图)的列表WHERE WHERE 查询的条件查询的条件【问问 题题】从从 StudentStudent表表 中中 查查 询询 学学 号号 为为0000000100000001的的学学生生的的姓姓名名(StuNameStuName)和和选选课密码(课密码(PwdP
6、wd)【实训实训】要求查询系部编号为要求查询系部编号为0101的班级的班级信息,要求显示班级编号和班级名称信息,要求显示班级编号和班级名称 查询信息(单表)1 1、查询所有列的信息(使用、查询所有列的信息(使用*)【例例】查询课程的所有信息查询课程的所有信息【例例】查询课程的课程类别查询课程的课程类别2 2、消消 除除 显显 示示 结结 果果 重重 复复 值值(使使 用用DISTINCTDISTINCT)【例例】查查询询课课程程的的课课程程类类别别,要要求求对对值值相同的那些行只保留一行相同的那些行只保留一行3 3、显显示示前前部部分分行行的的数数据据(使使用用TOP TOP n n PERC
7、ENTPERCENT)【例例】从从学学生生表表中中查查询询所所有有信信息息,要要求求只显示查询结果的前只显示查询结果的前6 6行。行。查询信息(单表)4 4、修改查询结果中的列标题、修改查询结果中的列标题【问问题题】查查询询学学生生表表中中的的学学号号、班班级级编编号号和和姓姓名信息,并修改列标题为汉字标题名信息,并修改列标题为汉字标题方法:方法:(1 1)将将要要显显示示的的列列标标题题用用单单引引号号括括起起来来后后接接等号(),等号(),后接要查询的列名后接要查询的列名(2 2)将将要要显显示示的的列列标标题题用用单单引引号号括括起起来来后后,写在列名后面,两者之间使用空格隔开写在列名后
8、面,两者之间使用空格隔开(3 3)将将要要显显示示的的列列标标题题用用单单引引号号括括起起来来后后,写在列名后面,两者之间使用写在列名后面,两者之间使用ASAS关键字关键字【练习练习】使用其他两种方法使用其他两种方法 查询信息(单表)5 5、在查询结果中显示字符串、在查询结果中显示字符串【问问题题】查查询询课课程程表表的的信信息息,要要求求给给出出查询结果为:查询结果为:课程名称课程名称 课程编号课程编号SQL ServerSQL Server实用技术实用技术 课程编号为:课程编号为:001001 课程编号为:课程编号为:课程编号为:课程编号为:思考:思考:如何查询课程编号是如何查询课程编号是
9、001001的课程名称?的课程名称?查询信息(单表)6 6、使用、使用WHEREWHERE限制查询的条件限制查询的条件【例例】查查询询课课程程编编号号为为001001的的课课程程名名称称。【练练习习】查查询询 “LinuxLinux操操作作系系统统”课课程程的任课教师的任课教师7 7、表达式、函数作为、表达式、函数作为SELECTSELECT语句的列语句的列【例例】查询学生总数、课程总门数。查询学生总数、课程总门数。【例例】查查询询课课程程信信息息、报报名名人人数数与与限限选选人数之比人数之比思思考考:能能否否将将上上面面的的查查询询结结果果按按报报名名人人数和限选人数之比的升序排序?数和限选
10、人数之比的升序排序?查询信息(单表)8 8、重新排序查询结果(、重新排序查询结果(ORDER BYORDER BY子句)子句)升序:升序:ASCASC(默认默认)降序:降序:DESCDESC也可以在也可以在ORDER BYORDER BY子句中指定多个列子句中指定多个列 例例:查查询询课课程程信信息息、报报名名人人数数与与限限选选人人数数之之比比,要要求求按按报报名名人人数数和和限限选选人人数数之之比比升升序序排排序查询结果序查询结果【例例】查查询询课课程程表表的的教教师师名名、课课程程号号、课课程程名名,要要求求查查询询结结果果首首先先按按教教师师名名降降序序排排列列,教教师师名相同时,则按
11、课程号的升序排列名相同时,则按课程号的升序排列 问问题题 查查询询课课程程类类别别为为“信信息息技技术术”的的课课程程的的任任课课教教师师、课课程程名名,要要求求先先按按教教师师名名升升序序排排列列,教教师师名名相相同同时时,按按课课程程名名的的降降序序排排列列,并将显示的列名改为中文。并将显示的列名改为中文。查询信息(单表)9 9、使用、使用ININ(NOT INNOT IN)关键字)关键字【例例】查询课程编号为查询课程编号为001004013001004013的课程名称。的课程名称。方法一:使用逻辑运算符方法一:使用逻辑运算符OR OR 方法二:使用方法二:使用ININ关键字(比使用逻辑关
12、键字(比使用逻辑运算符更为简单)运算符更为简单)查询信息(单表)1010、模糊查询(使用、模糊查询(使用LIKELIKE(NOT LIKENOT LIKE)通配符:通配符:%匹配包括匹配包括0 0个或多个字符的字符串个或多个字符的字符串_ _匹配任何一个字符匹配任何一个字符匹配任何在范围内的单个字符,例如:匹配任何在范围内的单个字符,例如:m-pm-p 匹匹配配任任何何不不在在范范围围内内的的单单个个字字符符,例例如如:m-pm-p、mnopmnop通配符和字符串要括在单引号中通配符和字符串要括在单引号中【练习练习】解释下面的通配符表示的意义解释下面的通配符表示的意义D%D%、_a _a 、%
13、D%D如果要查找通配符本身,需要将它们用方括号括起来如果要查找通配符本身,需要将它们用方括号括起来【问问题题】查查询询以以“制制作作”两两字字结结尾尾的的课课程程名名(使使用用LIKELIKE)【练练习习】查查询询姓姓名名的的第第二二个个字字为为“丽丽”的的学学生生信信息息,要要求显示学生学号和姓名求显示学生学号和姓名【问题问题】查询不姓查询不姓“刘刘”的学生信息(使用的学生信息(使用NOT LIKENOT LIKE)查询信息(单表)1111、使使用用IS IS NULLNULL关关键键字字用用于查询列中没有赋值的数据行于查询列中没有赋值的数据行【问题问题】查询课程表中教师未定查询课程表中教师
14、未定的课程名称和教师名的课程名称和教师名 1212、使使 用用 BETWEENANDBETWEENAND(NOT NOT BETWEENANDBETWEENAND)关键字)关键字用用于于查查询询在在某某一一特特定定范范围围内内的的信信息息查询信息(单表)【问问题题】查查询询报报名名人人数数大大于于等等于于3030并并且且小小于于等等于于4040的的课课程程信信息息,要要求求显显示示课课程程名名称称和和报名人数(使用报名人数(使用BETWEENANDBETWEENAND)注注意意WHERE WHERE WillNum WillNum BETWEEN BETWEEN 30 30 AND AND 4
15、040包括包括3030和和4040这两个值这两个值【问题问题】对上例使用对上例使用NOT BETWEENANDNOT BETWEENAND也也可可以以在在WHEREWHERE字字句句中中使使用用前前面面讲讲过过的的逻逻辑辑运算符查询某一范围内的信息运算符查询某一范围内的信息【练练习习】查查询询报报名名人人数数比比限限制制选选课课人人数数多多一一倍倍以以及及一一倍倍以以上上的的课课程程信信息息,要要求求显显示示课课程程名名称称、报报名名人人数数和和限限制制选选课课人人数数之之比比,并按该比例的降续排列并按该比例的降续排列查询信息(单表)1313、使使用用UNIONUNION子子句句用用于于将将两
16、两个个或或多个查询结果合并成一个结果多个查询结果合并成一个结果【问问题题】从从班班级级表表中中查查询询班班级级名名,从从系系部部表表中中查查询询系系部部名名,并并将将这这两两个个查查询结果合并起来询结果合并起来使用时注意:使用时注意:(1 1)要要合合并并的的查查询询结结果果的的列列个个数数要要相相同同(2 2)要要合合并并的的查查询询结结果果按按顺顺序序对对应应列列的数据类型性同或者兼容的数据类型性同或者兼容 扩展扩展(1 1)修改列标题)修改列标题(2 2)按新的列标题排序)按新的列标题排序 查询信息(单表)1414、使用、使用COMPUTECOMPUTE子句子句用来计算总计或进行分组小计
17、用来计算总计或进行分组小计【问问题题】查查询询课课程程表表中中的的课课程程编编号号、课课程程名名称称、课课程程类类别、报名人数,并计算平均报名人数别、报名人数,并计算平均报名人数 说说明明 总总计计值值或或小小计计值值作作为为附附加加新新行行出出现现在在查查询询结结果中。该子句用在果中。该子句用在WHEREWHERE子句之后子句之后从查询结果可以看到:从查询结果可以看到:查询结果中有两个结果集查询结果中有两个结果集(1 1)包含选择的列的所有明细行)包含选择的列的所有明细行(2 2)包含)包含COMPUTECOMPUTE子句中所指定的聚合函数的合计子句中所指定的聚合函数的合计聚合函数:聚合函数
18、:AVG()AVG()、MAX()MAX()、MIN()MIN()、SUM()SUM()扩展扩展(1 1)只查询课程类别为)只查询课程类别为“信息技术信息技术”的课程信息的课程信息(2 2)可以在查询结果中显示多个聚合函数的合计)可以在查询结果中显示多个聚合函数的合计上上面面的的例例子子是是对对显显示示的的所所有有行行进进行行总总计计,如如何何对对信信息息进行分组小计呢?进行分组小计呢?查询信息-单表1515、使用、使用COMPUTEBYCOMPUTEBY子句子句【例例】按按类类查查询询课课程程表表中中的的课课程程编编号号、课课程程名名称称、课课程程类类别别、报报名名人人数数,并并计算每类课程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 TransactSQL 语言
限制150内