一.    对像的完整表示法。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

语法:服务器名.数据库名.架构名.对象名

Select * from dc.db2.dbo.yuangong
Select语句的子查询和多表操作.六
Dbo可以用.代替。

Select语句的子查询和多表操作.六
1.显示邮政编码为空的员工信息。

处理空值;is

Select * from 表名 where 邮政编码 is null

Select语句的子查询和多表操作.六
2.显示手机不为空的。

Select * from 表名 where 手机 is not null

Select语句的子查询和多表操作.六
.子查询

一个查询语句再嵌套一个查询语句。

注意:1.内层查询必须使用()括起来

2.执行的时候,先执行内层查询,得到结果后,将此结果返回给外层查询。最后两个表都有的员工信息。

1.显示两个表都有的员工信息。

Select * from a where 姓名 in select 姓名 from b

先把表a和表b创建出来。

Select语句的子查询和多表操作.六
Select语句的子查询和多表操作.六
Select语句的子查询和多表操作.六
2.显示A表有B表没有的员工信息。

Select * from a where 姓名 not in select 姓名 from b

Select语句的子查询和多表操作.六
三.多表操作。

多表连接方法:

(1) 笛卡尔乘积(交叉连接)

(2) Join on 连接

1. 笛卡尔乘积(交叉连接)

语法为:select  字段名列表 from 表名1,表名2……[where条件]

方法一,如:select 员工表.姓名,员工表.性别,年龄,籍贯,公司名称,手机 from 员工表,公司表 where 员工表.姓名=公司表.姓名

默认产生的记录总数=两个数记录的乘积。

在这里创建两个表:员工表,公司表。

Select语句的子查询和多表操作.六
Select语句的子查询和多表操作.六
Select语句的子查询和多表操作.六
2.join on的分类。

1.     内链接:inner join. 必须是满足条件的记录。

2.     外连接

3.     左外连接:left join 显示左表的所用记录,如果右表没有与之相对的记录,则相应字段为空。

4.     右外连接:right join 显示右表的所有记录,如果左表中没有与之相对应的记录,则相应字段为空。

5.     全外连接:full join 显示所有表中的记录,如果在另一个表没有与之相对应的记录,则相对应字段为空。

例:内连接。

Select 字段名列表 from 表名1 inner join 表名2 on 条件。

如:以内连接显示员工表和公司表的正确信息。

Select * from 员工表 inner join 公司表 on 员工表.姓名=公司表.姓名

Select语句的子查询和多表操作.六
2.把相同的姓名和性别合为一个。

Select 员工表.姓名,员工表.性别,年龄,公司名称,籍贯,手机 from 员工表inner join 公司表 on 员工表.姓名=公司表.姓名

Select语句的子查询和多表操作.六
3.使用交叉连接和内部连接分别显示三个表的数据。

在这里再创建一个网址表。

Select语句的子查询和多表操作.六
1.)交叉连接。

select 公司表.姓名,公司表.性别,年龄,籍贯,手机,网址 from 公司表,员工表,网址表 where 公司表.姓名=员工表.姓名 and 员工表.公司名称=网址表.公司名

Select语句的子查询和多表操作.六
As 对列名或者是表名进行临时命名。

Select 姓名 as name,性别 as sex 年龄 as age from 表名

Select语句的子查询和多表操作.六
2.)内连接:

Select 公司表.姓名,公司表.性别,年龄,公司名称,籍贯,手机,网址 from 公司表 inner join 员工表 on 公司表.姓名=员工表.姓名

Inner join 网址表 on 员工表.姓名=网址表.姓名。

Select语句的子查询和多表操作.六
4:左连接显示员工表和公司表的信息。

Select 公司表.姓名,公司表.性别,年龄,公司名称,籍贯,手机 from 公司表 left join 员工表 on 公司表.姓名=员工.姓名。

Select语句的子查询和多表操作.六
5.以全外连接显示三个表的数据。

select 公司表.姓名,公司表.性别,年龄,公司名称,籍贯,手机 from

 公司表 full join 员工表 on 公司表.姓名=员工表.姓名 full join

网址表 on 员工表.姓名=网址表.姓名

Select语句的子查询和多表操作.六
. 数据表的排序。

语法为:select 字段名列表 from 表名 where条件】 order  by 字段名1 asc /desc 【,字段名 asc /desc……

作用是对满足条件的记录按照字段\进排列,如果字段名的值相同,则按照字段名2排列。

Asc:升序 从小到大

Desc :降序 从大到小

默认的是:asc

1:按照年龄升序排列。

Select * from 表名 order by 年龄 asc

Select语句的子查询和多表操作.六
数值:数字的大小。

汉字:新华字典为标准、

2.按照部门升序排列,同一个部门的再按照年龄降序排列

Select * from 表名 order by 部门 asc,年龄desc

Select语句的子查询和多表操作.六
3.对男同志的工资进行降序排列。

Select * from 表名 where 性别=‘男’ order by 工资 desc

Select语句的子查询和多表操作.六
子查询和多表操作以完成。