《项目四公司数据库查询系统.docx》由会员分享,可在线阅读,更多相关《项目四公司数据库查询系统.docx(27页珍藏版)》请在优知文库上搜索。
1、项目四企业管理数据库系统的数据查询一、教学目的终极目的:能根据需要灵活、迅速地查询企业管理系统数据库的数据促成目的:1 .会在一种数据表中实现数据的简朴查询2 .会同步在多种数据表中实现数据的兔合查询3 .会实现分组查询4 .会对查询成果集排序5 .会运用库函数进行数据记录二、工作任务根据需要灵活迅速地查询企业管理数据库系统的数据模块1企业管理数据库系统的简朴查询一、教学目的1 .精确理解Transact-SQL查询语句的基本构造2 .能根据需要灵活使用查询语句的各子句二、工作任务企业所有雇员的信息都存储在companyinfo数据库的employee表中,该表中包括了雇员的雇员ID、姓名、性
2、别、出生年月、雇佣日期、专长、薪水7个字段和对应的记录,请运用Transact-SQL的SELECT语句实现下列查询操作。1 .查询所有雇员的I信息,规定输出的成果格式如表4T所示。表47雇员的信息表姓名性别出生年月雇佣日期专长薪水2 .查询所有男雇员的信息。3 .按照如表4-2所示的格式,列出所有雇员的姓名和薪水。表4-2雇员的姓名和薪水表雇员的姓名雇员的酬金4 .查询所有薪水超过3000元的雇员的信息。5 .查询所有薪水在2023元至3000元之间的雇员的姓名和雇佣日期,并按雇佣日期的先后排列。6 .记录多种专长的雇员人数。7 .查询所有姓章的雇员的信息。三、有关实践知识(一)按照任务1的
3、规定查询企业所有雇员的信息。操作环节如下:1 .连接COmPanyinfo数据库,有如下两种措施:从“查询分析器”窗口的工具栏的下拉列表中选中企业管理数据库CompanyinfOo在查询分析器窗口中输入如下命令,并运行。USEcompanyinfo在查询分析器窗口中输入如下查询语句SELECT姓名,性别,出生年月,雇佣日期,专长,薪水FROMemployeeGO2。执行查询语句措施。(二)按照任务2查询所有男雇员的信息。查询语句如下:SELECT*FROUemployeeWHERE性别=男(三)按照任务3规定的格式,列出所有雇员的姓名和薪水。为了使查询的成果愈加友好,可以变化列的标题,即指定列
4、的别名。己知在employee表中有雇员的“姓名”和“薪水”字段,但任务规定显示构造为“雇员的姓名”和“雇员H勺酎金”,可以用AS引导给出列的I别名。查询语句如下:SELECT姓名AS雇员的姓名,薪水AS雇员的酬金FROMemployee(四)按照任务4列出所有薪水超过H勺3000元H勺雇员的信息。查询语句如下:SELECT*FROMemployeeWHERE薪水=3000(五)按照任务5列出所有薪水在2023元至3000元之间的雇员的姓名、雇佣日期和薪水,并按雇佣日期的先后排列。查询语句如下:SELECT姓名,雇佣日期,薪水FROMemployeeWHERE薪水between2023and3
5、000ORDERBY雇佣日期(六)按照任务6记录多种专长的雇员人数。查询语句如下:SELECT专长,count(*)人数FROMemployeeGROUPBY专长执行成果如下:专长人数唱歌2二胡2钢琴2古筝2会计1计算机8书法4跳舞2武术1演讲1音乐2游泳1(所影响口勺行数为12行)(七)列出所有姓章的雇员的信息。查询语句如下:SELECT*FROMemployeeWHERE姓名LIKE章%四、有关知识使用数据库和数据表的重要目的是存储数据,以便在需要时进行检索、记录或组织输出,通过TranSaCt-SQL的SELECT语句可以从表或视图中迅速、以便地检索数据。在众多的TranSaCt-SQL
6、语句中,SELECT语句是使用频率最高的一种。查询的最基本方式是使用SELECT语句,按照顾客给定H勺条件从SQLServer2023数据库中取出数据,并将数据通过一种或多种成果集返回给顾客。(一)SELECT语句构造SELECT语句的重要Fl勺子句可归纳如下:SELECTALLDISTINCT目的体现式L目的体现式INTO新表名FROM表名或视图名,表名或视图名WHERE条件体现式GROUPBY列名1HAVING体现式ORDERBY列名2ASCDESC其中,包括子句SELECT,INTO,FROM,WHERE,GROUPBY,HAVING,ORDERBY等,每个子句均有各自的使用措施和功能。
7、 SELEeT子句:指定由查询返回的列。 INTO子句:将检索成果存储到新表或视图中。 FROM子句:用于指定引用的列所在附表和视图。 WHERE子句:指定用于限制返回的行的搜索条件。 GROUPBY子句:指定用来放置输出行的组,并且假如SELECT子句SELECTLIST中包括聚合函数,则计算每组的汇总值。 HAVlNG子句:指定组或聚合的搜索条件。HAVING一般与GROUPBY子句一起使用。假如不使用GROUPBY子句,HAVING的行为与WHERE子句同样。 ORDERBY子句:指定成果集的排序。SELECT子句的功能,用于返回指定列的数据集。SELECT语句的常规使用格式:SELEC
8、TALLDISTINCTTOPNPERCENT列名IL列名2,列名NFROM表名或视图名其中参数的含义如下: ALL:指定在成果集中可以显示反复行。ALL是默认设置。 DISTINCT:指定在成果集中只能显示惟一行,即体现输出无反复的所有记。 TOPNPERCENT:指定只从查询成果集中输出前N行。假如还指定了PERCENT,则只从成果集中输出前百分之N行。1 .查询所有的列在SELECT子句中,通配符体现输出指定的表或视图中所有的列。【例4.1从COmPanyinfO数据库的客户表(CUStOmer)中检索所有客户的所有信息。USEcompanyinfoGOSELECT*FROMcustom
9、erGO2 .查询特定的列【例4.2从ComPanyinfo数据库B客户表(CUStonler)中检索所有客户0企业名称、联络人姓名、地址。USEcompanyinfoGOSELECT企业名称,联络人姓名,地址FROMcustomerGO【例4.3从COmPanyinfo数据库B雇员表(employee)中检索所有的雇员的姓名和专长。USEcompanyinfoGOSELECT姓名,专长FROMemployeeGO3 .指定特定列的列名【例4.4查询每个人的姓名和薪水减少30%后的信息。有三种措施:(1)采用符合ANSl规则的原则措施,在列体现式背面给出列名。对应的命令如下:USEcompan
10、yinfoGOSELECT姓名,薪水原薪水,薪水-薪水*0.3现薪水FROMemployeeGO(2)用“=”来连接列体现式。对应的命令如下:USEcompanyinfoGOSELECT姓名,原薪水=薪水,现薪水二薪水-薪水*0.3FROMemployeeGO(3)用AS关键字来连接列体现式和指定的列名。对应的命令如下:USEcompanyinfoGOSELECT姓名,薪水as原薪水,薪水-薪水*0.3as现薪水FROMemployeeGO4 .删除反复的列【例4.5从COlnPanyinfo数据库0订单表(p_order)中,检索已经被订购的产品0产品名。USEcompanyinfoGOSE
11、LECTDISTINCT产品名FROMp_orderGO5 .使用TOP关键字SELECTTOPNITOPNPERCENT列名IL列名2,列名NFROM表名其中参数如下; TOPN:体现返回最前面0N行,N体现返回的行数。 TOPNPERCENT:体现返回的前面的N%行。【例4.6查询COmPanyinfo数据库的订单表(p_order)中最前面B10行纪录。USEcompanyinfoGOSELECTtop10*FROMporderGO【例4.7查询COlDPanyinfo数据库的订单表(p_order)中的前面的10%记录。USEcompanyinfoGOSELECTtop10percen
12、t*FROMporder6.使用计算列【例4.81显示每种产品的价格减少3O%0产品信息。USEcompany!nfoGOSELECT产品名,库存量,单价,单价-单价*0.3EROMproductGO(三)INTo子句INTO子句用于创立新表并将查询的成果插入新表中,其语法如下:INTO新表名【例4.9使用INTo子句创立一种包括employee表中姓名和薪水字段,且名为newemployee!勺新表。USEcompanyinfoGOSELECT姓名,薪水INTOnew_empIoyeeFROMemployeeGO(四)WHERE子句使用WHERE子句的目的是为了从表格的数据集中过滤出符合条件
13、的J行。使用WHERE子句可以限制查询的范围,提高查询效率。语法格式如下:SELECT列名1,列名2,列名NFROM表名WHERE搜索条件1 .使用算术体现式【例4.10查询COnIPanyinfo数据库的雇员表(employee)中,专长是计算机的雇员的信息。USEcompanyinfoGOSELECT*FROMemployeeWHERE专长=计算机GO【例4.11在ComPanyinfO数据库的雇员表(employee)中,查询薪水超过3000元的雇员的姓名和薪水。USEcompanyinfoGOSELECT姓名,薪水FROMemployeeWHERE薪水=3000GO2 .使用逻辑体现式
14、在TranSaCt-SQL语句中,常用的逻辑运算符分别是: NOT:非运算,对体现式H勺否认。 AND:与运算,连接多种条件,所有的I条件都成立时为真。 OR:或运算,连接多种条件,只要有一种条件成立就为真。【例4.12在companyinfo数据库的雇员表(employee)中,查询专长为书法或钢琴的所有雇员的雇员ID、姓名和专长。USEcompanyinfoGOSELECT雇员ID,姓名,专长FROMemployeeWHERE专长=书法or专长=钢琴GO查询成果如下:雇员ID姓名专长2李立三书法10姜玲娜书法12金林皎书法15刘启芬钢琴22钱其娜书法26欧阳天民钢琴3 .使用范围体现式使用BETWEEN关键字可以更以便地体现查询数据的范围。语法格式为:体现式NOTBETWEEN体现式1AND体现式2【例4.13在COinPanyinfO数据库的雇员表(employee),查询薪水在3000元至4000元的雇员的姓名和薪水。SELECT姓名,薪水FROMem