伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

SQL Server基础SQL脚本之内外连接、交叉连接;函数、子查询

来源:本站原创 浏览:91次 时间:2022-11-09

代码大概200行左右

本系列,几乎都是代码,记得当时写的时候用的是微软的官方实例数据库AdventureWorks_Data.mdf、AdventureWorks_Log.ldf来运行的。

下载链接:链接: https://pan.baidu.com/s/1pMdLz6N 密码: xvhu

或者回复“AdventureWorks”来获取链接。



use AdventureWorks --切换到AdventureWorks数据库--创建Student表和Marks表,用于操作各种联接create table Student  --创建学生表,里面包含两列,学号和姓名(    RollNo char(),    Name varchar())insert into Student values --向Student表中插入5行记录(,),    (,),    (,),    (,),    (,)create table Marks    --创建成绩表,里面包含三列,学号,RDMBS和Math(    RollNo char(),    RDBMS int,    int)insert into Marks values --向成绩表中插入三行记录(,,),(,,),(,,)select * from Studentselect * from Marks--内联接 INNTER JOIN- 显示满足公共列中联接条件的行 inner可加可不加--问题:查询有考试成绩的学生的学号,姓名,RDBMS成绩和Math成绩-----练习:已知select * from HumanResources.Employeeselect * from HumanResources.EmployeeAddressgo--显示:EmployeeID, Title, AddressID  的匹配信息  ----inner join--给表名一个别名--外联接 - 显示包含一个表中的所有行以及另外一个表中匹配行的结果集,不匹配的用NULL值填充--()左外联接 - 返回LEFT OUTER JOIN 左侧的表的所有行,以及右侧指定的表的匹配行,若右边找不到匹配项,显示NULL值--()右外联接 - 返回RIGHT OUTER JOIN 右侧的表的所有行,以及左侧指定的表的匹配行,若左边找不到匹配项,显示NULL值--()完整外联接 -  左外联接和右外联接的组合,返回两个表中所有匹配的行和不匹配的行,匹配记录只显示一次--交叉联接(Cross Join) Product运算,将一个表中的每一行与另一个表中的--------------------    create table Course --创建Course表,里面包含一列CourseName(CourseName varchar())insert into Course values --向Course表中插入两行记录(),    ()select * from Studentselect * from Course--要求显示结果为每个学生都修一遍Course表中的所有课程--等值联接 --=号联接表的内联接--练习:查询员工的员工编号,所属部门名称和工资 联接多个表select * from HumanResources.Employeeselect * from HumanResources.EmployeeDepartmentHistoryselect * from HumanResources.Department--自联接 - 同一个表当成两张表使用,一个表中的一行联接另一个表中的一行select * from HumanResources.Employeeselect .EmployeeID,.Title,.,.Title from--查询员工的编号,职位,其主管的员工编号和其主管的职位HumanResources.Employee join HumanResources.Employee on .=.EmployeeID--根据其主管的员工编号找到对应的职位select .EmployeeID,.Title,.,.Title from--查询员工的编号,职位,其主管的员工编号和其主管的职位HumanResources.Employee , HumanResources.Employee where .=.EmployeeID --根据其主管的员工编号找到对应的职位---------------------- (二)、使用子查询查询数据----------------------------    --子查询:将一个select的查询结果作为另外一个select查询的输入/条件,查询里面的查询--使用比较运算符,IN和EXISTS关键字--比较运算符,=号为主select * from HumanResources.Employee--问题:查询和员工编号为1的员工职位(Title)相同的员工的信息--IN 多个值--问题:查询和员工编号为1,,的员工的职位相同的员工的信息--EXISTS关键字-检查一组记录是否存在,返回True或False--exists(select * from databases where =) drop database UDB------------------    select * from HumanResources.Employeeselect * from HumanResources.EmployeeDepartmentHistory--使用修改过的比较运算符 ALL,ANY--问题:查询--查询RDBMS成绩高于S002或者高于S003的学生的信息select * from Marksgo--查询RDBMS成绩高于S002并且高于S003的学生的信息--使用聚合函数--问题:查询RDBMS成绩最高的学生的学号和RDBMS成绩--使用嵌套子查询 --子查询里面可以包含一个或多个子查询,这样叫做嵌套子查询--问题:查询工资最高的员工的编号 HumanResources.EmployeePayHistoryselect * from HumanResources.EmployeePayHistory--问题:查询工资最高的员工所在的部门编号select * from HumanResources.EmployeeDepartmentHistory--使用关联子查询 -  根据外部查询作为评估依据的查询--问题:查询每个部门最早加入的员工的信息select * from HumanResources.EmployeeDepartmentHistory  where =    (        select min() from HumanResources.EmployeeDepartmentHistorywhere =.DepartmentID)--APPLY运算符 --合并两个查询的结果集,    ---------------------------------------------        create table Depositor --创建Depositor表,存储储蓄用户信息,表中有两列,客户姓名和储蓄账户(    varchar(),    char())insert into Depositor values  --向Depositor表中插入两条记录(,),    (,)create table Borrower --创建Borrower表,存储贷款用户信息,表中有两列,客户姓名和贷款账户(    varchar(),    char())insert into Borrower values --向Borrower表中插入两行记录(,),    (,)--------------------------------------    select * from Depositorselect * from Borrower--CROSS APPLY - 返回外部结果集中与内部结果集匹配的行select .,.储蓄账户,br.贷款账户 from Depositor --外部结果集cross apply(select * from Borrower where .=.) br  --br为内部结果集的别名--OUTER APPLY - 返回外部结果集中所有的行,即使内部结果集中没有找到此行select .,.储蓄账户,br.贷款账户 from Depositor --外部结果集outer apply(select * from Borrower where .=.) br  --br为内部结果集的别


  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net