Advertisement

SQL数据查询实践(一)

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:PDF


简介:
本教程为《SQL数据查询实践》系列的第一部分,专注于介绍SQL语言的基础知识和基本的数据查询技巧,旨在帮助初学者掌握SQL的核心概念。 目录连接+嵌套查询练习S,C,SC关系表及S,J,P,SPJ关系表简易介绍 ### 连接+嵌套查询练习 #### S,C,SC关系表 设有学生-课程关系数据库,它由三个关系组成: 1. **S**(学号`SNO`,姓名`SN`,所在系`DEPT`,年龄`AGE`) 2. **C**(课程号`CNO`,课程名`CN`,先修课号 `CPNO`) 3. **SC**(学号 `SNO`, 课程号 `CNO`, 成绩 `SCORE`)。 请用SQL语句写出下列查询: 1. 检索选修了课程号为C1且成绩为A的所有学生姓名。 ```sql SELECT SN FROM S WHERE SNO IN (SELECT SNO FROM SC WHERE CNO=C1 AND SCORE=A) ``` 2. 查询学号为S1的学生所修读的全部课程名称及先修课号: ```sql SELECT CN, CPNO FROM C WHERE CNO IN (SELECT CNO FROM SC WHERE SNO = S1) ``` 3. 查询年龄为23岁的学生所选的所有课程名。 ```sql SELECT CN FROM C WHERE CNO IN (SELECT CNO FROM SC WHERE SNO IN (SELECT SNO FROM S WHERE AGE=23)) ``` 4. 查找至少修读了学号为S5的学生之一门课程的其他学生的姓名: ```sql SELECT DISTINCT SN FROM S INNER JOIN SC ON S.SNO = SC.SNO WHERE Cno = ANY (SELECT Cno FROM SC WHERE Sno=S5) EXCEPT SELECT SN FROM S WHERE SNO=S5 ``` #### 更复杂的数据库模型:涉及四个表(供应商、工程、零件和SPJ) 1. 查询工程代码为 J2 的所有使用过的零件名称与数量: ```sql SELECT PNAME, QTY FROM P INNER JOIN SPJ ON P.PNO = SPJ.PNO WHERE JNO=J2 ``` 2. 找出使用上海产零件的工程名。 ```sql SELECT JNAME FROM J WHERE JNO IN (SELECT JNO FROM SPJ WHERE PNO IN (SELECT PNO FROM P WHERE CITY= 上海)) ``` 3. 列出没有使用天津产零件的所有工程号: ```sql SELECT JNO FROM J WHERE JNO NOT IN (SELECT JNO FROM SPJ WHERE PNO IN (SELECT PNO FROM P WHERE CITY=天津)) ``` 4. 求未用到天津生产且颜色为红色的零件的工程号。 ```sql SELECT JNO FROM J WHERE JNO NOT IN (SELECT JNO FROM SPJ WHERE PNO IN (SELECT PNO FROM P WHERE CITY= 天津 AND COLOR=红)) ``` 5. 检索姓刘的学生选修的所有课程名与教师姓名: ```sql SELECT CN, TH FROM C, SC, S WHERE S.SNO = SC.SNO AND SC.CNO = C.CNO AND SN LIKE 刘% ``` 6. 查询未选修数据库相关课程的学生学号和姓名。 ```sql SELECT SNO, SN FROM S WHERE SNO NOT IN (SELECT SNO FROM SC WHERE CNO IN (SELECT CNO FROM C WHERE CN LIKE %数据库%)) ``` 通过这些练习,我们能够深入了解SQL中的连接查询、子查询、聚合函数及条件过滤等操作。这些技能在实际的数据库管理和数据分析工作中至关重要。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • SQL
    优质
    本教程为《SQL数据查询实践》系列的第一部分,专注于介绍SQL语言的基础知识和基本的数据查询技巧,旨在帮助初学者掌握SQL的核心概念。 目录连接+嵌套查询练习S,C,SC关系表及S,J,P,SPJ关系表简易介绍 ### 连接+嵌套查询练习 #### S,C,SC关系表 设有学生-课程关系数据库,它由三个关系组成: 1. **S**(学号`SNO`,姓名`SN`,所在系`DEPT`,年龄`AGE`) 2. **C**(课程号`CNO`,课程名`CN`,先修课号 `CPNO`) 3. **SC**(学号 `SNO`, 课程号 `CNO`, 成绩 `SCORE`)。 请用SQL语句写出下列查询: 1. 检索选修了课程号为C1且成绩为A的所有学生姓名。 ```sql SELECT SN FROM S WHERE SNO IN (SELECT SNO FROM SC WHERE CNO=C1 AND SCORE=A) ``` 2. 查询学号为S1的学生所修读的全部课程名称及先修课号: ```sql SELECT CN, CPNO FROM C WHERE CNO IN (SELECT CNO FROM SC WHERE SNO = S1) ``` 3. 查询年龄为23岁的学生所选的所有课程名。 ```sql SELECT CN FROM C WHERE CNO IN (SELECT CNO FROM SC WHERE SNO IN (SELECT SNO FROM S WHERE AGE=23)) ``` 4. 查找至少修读了学号为S5的学生之一门课程的其他学生的姓名: ```sql SELECT DISTINCT SN FROM S INNER JOIN SC ON S.SNO = SC.SNO WHERE Cno = ANY (SELECT Cno FROM SC WHERE Sno=S5) EXCEPT SELECT SN FROM S WHERE SNO=S5 ``` #### 更复杂的数据库模型:涉及四个表(供应商、工程、零件和SPJ) 1. 查询工程代码为 J2 的所有使用过的零件名称与数量: ```sql SELECT PNAME, QTY FROM P INNER JOIN SPJ ON P.PNO = SPJ.PNO WHERE JNO=J2 ``` 2. 找出使用上海产零件的工程名。 ```sql SELECT JNAME FROM J WHERE JNO IN (SELECT JNO FROM SPJ WHERE PNO IN (SELECT PNO FROM P WHERE CITY= 上海)) ``` 3. 列出没有使用天津产零件的所有工程号: ```sql SELECT JNO FROM J WHERE JNO NOT IN (SELECT JNO FROM SPJ WHERE PNO IN (SELECT PNO FROM P WHERE CITY=天津)) ``` 4. 求未用到天津生产且颜色为红色的零件的工程号。 ```sql SELECT JNO FROM J WHERE JNO NOT IN (SELECT JNO FROM SPJ WHERE PNO IN (SELECT PNO FROM P WHERE CITY= 天津 AND COLOR=红)) ``` 5. 检索姓刘的学生选修的所有课程名与教师姓名: ```sql SELECT CN, TH FROM C, SC, S WHERE S.SNO = SC.SNO AND SC.CNO = C.CNO AND SN LIKE 刘% ``` 6. 查询未选修数据库相关课程的学生学号和姓名。 ```sql SELECT SNO, SN FROM S WHERE SNO NOT IN (SELECT SNO FROM SC WHERE CNO IN (SELECT CNO FROM C WHERE CN LIKE %数据库%)) ``` 通过这些练习,我们能够深入了解SQL中的连接查询、子查询、聚合函数及条件过滤等操作。这些技能在实际的数据库管理和数据分析工作中至关重要。
  • 驾照考试科目SQL
    优质
    本课程专注于驾照理论考试(科目一)相关数据的SQL查询技巧,帮助学员掌握如何高效管理和分析大量驾考题库信息。适合数据库初学者和有经验的数据分析师。 驾考科目一数据库驾考科目一数据库驾考科目一数据库驾考科目一数据库。
  • SQL验四_高级
    优质
    本实验涵盖SQL数据库中的高级查询技术,包括子查询、联接操作及聚合函数的应用,旨在提升学生复杂数据检索和分析能力。 SQL数据库实验四_复杂查询(1)解答.doc提供了关于如何进行复杂查询的指导和示例,帮助学生更好地理解和掌握SQL数据库中的高级查询技巧。文档中包含了详细的步骤、实例以及可能遇到的问题解决方案,旨在提高学习者的实践能力和理论知识水平。
  • 高校库创建与
    优质
    《高校数据库创建与查询实践》是一本专注于高校环境下的数据库管理技术指导书籍。本书详细介绍了如何在高等教育机构中建立高效、安全的数据管理系统,并提供了大量的实战案例和技巧,帮助读者掌握从数据库设计到日常维护的所有关键技能。通过具体步骤演示了如何利用SQL等编程语言进行数据操作与分析,是计算机科学及信息管理专业学生和技术人员的理想参考书。 在大学数据库创建与查询实战中,你需要完成的主要任务包括设计数据库、编写SQL语句以及执行数据查询操作。 首先,在右侧编辑器的指定区域补充代码来创建两个表:教师信息表(instructor)和开课信息表(section)。这些表格是基于名为universityDB的数据集进行构建。平台在每次评测时都会重置该环境,确保数据库 universityDB 会重新初始化以供测试。 **1. 数据库设计** - **教师信息表 (instructor)**: - `ID`:作为主键的唯一标识符,注释为“教师号”。 - `name`:非空字段表示每个教师的名字。 - `dept_name`:允许为空的数据项,代表所属系别。此字段通过外键关联到department表中的相应数据,并且当删除department时设置该值为null。 - `salary`:定义为数值类型,使用check约束以确保薪资高于29000。 - **开课信息表 (section)**: - 采用复合主键(course_id, sec_id, semester, year)来保证数据的唯一性。 - `building`和`room_number`字段通过外键关联到classroom表,当删除相关记录时允许为null值。 **2. 查询操作** - **查询 (一)**: - 列出生物系的所有学生姓名。 - 查找薪资高于任何一位生物学教师的其他教师的名字。 - 使用instructor和department表进行联接,显示教师名字、所属部门及所在建筑的信息。 - 获取在Watson大楼内所有教室教授课程的老师的部门名称,并且去重。 - **查询 (二)**: - 统计2010年春季学期授课的所有教师ID数量(去除重复项)。 - 搜索2009年秋季同时教授两门不同课程的老师,包括他们的ID、姓名及所属系别信息。 - 对于2010年的春季学期进行分组统计每个部门里有多少名不同的讲师,并且去重。 以上查询涉及多种SQL操作技巧如SELECT, FROM, WHERE, GROUP BY, HAVING等。通过这些练习可以深入理解如何利用数据库管理系统来获取和分析特定的数据集,比如教师的授课情况、学生分布以及各部门师资力量的情况。
  • 使用SQL语句多个
    优质
    本文章介绍了如何通过编写单一SQL语句实现跨多个数据库的数据检索,提高数据整合效率。 需求:使用一条SQL语句从多个数据库查询相关联的结果,并输出到客户端。 调查发现:Spring框架可以配置多数据源;同时也可以通过在SQL中将多个数据库附加到一个主数据库下来实现这一功能。 解决办法:利用ATTACH DATABASE语句,将多个库添加到主库下,从而实现所需的功能。该语法的具体形式为: ``` ATTACH DATABASE DatabaseName As Alias-Name; ``` 例如: ``` ATTACH DATABASE C:\Users\Administrator\Desktop\sqlite_data.sq3 As sd; ``` 总结以上所述内容可以帮助大家使用一条SQL语句查询多个数据库的相关信息,希望对您有所帮助。如果有任何疑问,请随时提出。
  • 达梦.sql
    优质
    本SQL脚本用于查询达梦数据库中的数据总量,帮助用户快速了解各表存储的数据规模,便于进行数据库性能优化和管理。 达梦数据库数据量统计.sql 这段文字已经是简洁的形式了,并且没有任何联系信息或网站链接需要去除。如果这段话是描述一个SQL脚本段落件的名字或者用途的话,它已经很明确了,无需进一步改动。因此重写后的结果与原文一致: 达梦数据库数据量统计.sql
  • SQL与连接
    优质
    本课程深入浅出地讲解了如何使用SQL进行高效的数据查询和数据库间的连接操作,帮助学员掌握数据检索、合并及处理技巧。 当然可以,请提供您希望我进行重写的具体内容或段落吧。这样我可以帮助您去掉不必要的联系信息并保留原意。
  • SQL当前的前条和后条记录
    优质
    本教程详细介绍如何使用SQL语句获取数据库中某条记录的直接前驱和后续记录,适用于需要进行精确记录导航的数据处理场景。 SQL查询可以用来获取当前数据记录的上一条和下一条记录,仅供参考。
  • 南邮验报告之:创建库模式及SQL
    优质
    本实验报告详细记录了在南京邮电大学数据库课程中的实践环节,重点介绍了如何创建数据库模式和编写有效的SQL查询语句。通过一系列的实际操作,加深了对数据库系统结构的理解与应用技巧的掌握。 南邮数据库实验报告一:创建产品数据库及SQL查询 (1)首先创建名为products的产品数据库。 (2)使用CREATE TABLE语句在products中定义关系模式。