本练习册主要涉及数据库嵌套查询的练习题,通过对职工-社团数据库的三个基本表进行查询和分析。数据库中包含了职工表、社会团体表和参加表,分别记录了职工的信息、社会团体的信息以及职工参加团体的记录。练习要求分别查找没有参加任何团体的职工情况、参加了全部社会团体的职工情况以及参加了某个特定职工所参加的全部社会团体的其他职工的职工号。
首先,查询没有参加任何团体的职工情况,可以使用以下SQL语句:
```sql
Select * from 职工 where 职工号 not in (Select 职工号 from 参加);
```
这条语句通过在职工表中筛选出在参加表中没有对应记录的职工号,从而找到没有参加任何团体的职工信息。
其次,查找参加了全部社会团体的职工情况,可以使用以下SQL语句:
```sql
Select * from 职工
where not exists (
Select * from 社会团体
where not exists (
Select * from 参加
where 参加.编号 = 社会团体.编号
and 参加.职工号 = 职工.职工号
)
);
```
这条语句通过嵌套查询的方式,首先在职工表中找到参加了全部社会团体的职工号,然后通过在社会团体表中查找这些团体是否都有对应的参加记录,从而筛选出参加了全部社会团体的职工信息。
最后,查找参加了职工号为1001的职工所参加的全部社会团体的职工的职工号,可以使用以下SQL语句:
```sql
Select 职工.职工号 from 职工
where 职工.职工号 in (
Select 参加.职工号 from 参加
where 参加.编号 in (
Select 参加.编号 from 参加
where 参加.职工号 = '1001'
)
);
```
这条语句首先通过在参加表中找到职工号为1001的职工参加的社会团体编号,然后在参加表中筛选出参加了这些团体的其他职工的职工号,并最终在职工表中找到这些职工的信息。
通过这些练习题,不仅能加深对数据库嵌套查询的理解,同时也能够提升对SQL语句的熟练度和应用能力。希望大家能够通过不断的练习和实践,掌握数据库查询的各种技巧,为今后在实际工作中更加熟练地运用数据库查询语句打下坚实的基础。