SQLServer2005中的外联结用法
用法 sqlserver2005 联结
2023-06-13 09:15:41 时间
SQLServer2005中的外联结用法一:
有两个表:学生表,学生选课表,表中数据为:
学生表:
学生选课表:
要查看所有学生的选课信息,
标准的SQL语句,外联结语句为
usestu_course selectL.sno,sname,ssex,sage,sdept,cno,grade fromstudentL,sc whereL.sno=sc.sno(*)
理论上的结果为:
但是,在SQLServer2005中运行会出现错误,错误提示为:
消息102,级别15,状态1,第4行
"*"附近有语法错误。
在SQLServer2005中,相应的T-SQL语句应该为:
usestu_course selectL.sno,sname,ssex,sage,sdept,cno,grade fromstudentLleftjoinsc onL.sno=sc.sno
运行结果为:
同时,还可以在on后面再加上where限定条件:
usestu_course selectL.sno,sname,ssex,sage,sdept,cno,grade fromstudentLleftjoinsc onL.sno=sc.sno whereL.snoin(95001,95002,95003,95004)
这时,运行结果为:
以上这个例子是左外联结查询,即:结果表中包含第一个表中所有满足条件的
记录,如果在第二个表中有满足联结条件的记录,则返回相应的值,否则返回NULL
有三个表:学生表,学生选课表,课程表,表中数据为:
学生表:
学生选课表:
课程表:
左联结查询举例:
usestu_course selectL.sno,sname,ssex,sage,sdept,cno,grade fromstudentLleftjoinsc onL.sno=sc.sno
结果为:
右联结查询举例:
usestu_course selectsno,course.cno,course.cname fromscrightjoincourse onsc.cno=course.cno
结果为:
全外联结查询举例:
usestu_course selectsno,course.cno,course.cname fromscfulljoincourse onsc.cno=course.cno
结果为:
如果将这个全外联中的左右两个表交换顺序:
usestu_course selectsno,course.cno,course.cname fromcoursefulljoinsc onsc.cno=course.cno
结果仍为:
由以上例子可以看出:
对于左外联结,结果表中包含第一个表中所有满足条件的记录,如果在第二个表中有满足联结条件的记录,则返回相应的值,否则返回NULL;
对于右外联结,结果表中包含第二个表中所有满足条件的记录,如果在第一个表中有满足联结条件的记录,则返回相应的值,否则返回NULL;
对于全外联结,结果表中包含两个表中所有满足条件的记录,如果在其中一个表中有满足联结条件的记录,则返回相应的值,否则返回NULL;
相关文章
- nmap用法总结
- 【说站】python字符串索引的用法
- 基于stdarg.h的可变参数函数的用法
- 第十四届蓝桥杯集训——switch——配套用法示例
- Locust学习笔记2——环境搭建与基本用法
- Linux常用命令:fuser命令用法详解
- Java学习笔记之十四Java中this用法小节详解编程语言
- C++随机数(rand和srand)函数用法详解
- MySQL的char函数的用法(charmysql)
- 学习Java技术:使用Redis的简单方法(javaredis用法)
- 使用NodeMSSQL来轻松实现数据库操作(node-mssql用法)
- MSSQL注入高级攻击技巧分享(mssql注入高级用法)
- Oracle中使用AND运算符的示例分析(oracle中and用法)
- SQLSERVER2005的ROW_NUMBER、RANK、DENSE_RANK的用法
- mysqlunsigned用法及相减出现补数溢出解决方法
- jsjqueryajax的几种用法总结(及优缺点介绍)