【2019-2020春学期】数据库作业6:SQL练习3 - SELECT(单表查询)

本文提供了丰富的SQL查询案例,涵盖单表查询、条件筛选、排序、聚合函数、分组及多表联接等核心操作,适合初学者和进阶者实践与参考。

【例3.29】查询学号为201215121的学生的详细情况
SELECT *
FROM Student
WHERE Sno LIKE ‘201215121’;
还有
SELECT *
FROM Student
WHERE Sno = ‘201215121’;
两次输入结果一样

【例3.30】 查询所有姓刘学生的姓名、学号和性别。
SELECT Sname, Sno, Ssex
FROM Student
WHERE Sname LIKE ‘刘%’;
显示全是姓刘的同学

【例3.31】查询姓"欧阳"且全名为三个汉字的学生的姓名。`
SELECT Sname
FROM Student
WHERE Sname LIKE ‘欧阳_’;
{注:(转载自他人)【例3.31补充】
数据库字符集为ASCII时,一个汉字需要两个_
数据库字符集为 GBK 时,一个汉字需要一个_

【字符集】是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,就需要进行字符编码,以便计算机能够识别和存储各种文字。
————————————————
版权声明:本文为优快云博主「小甜豆0v0」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/qq_44871112/article/details/104800959}

【例3.32】查询名字中第二个字为"阳"字的学生的姓名和学号。
SELECT Sname,Sno
FROM Student
WHERE Sname LIKE ‘_阳%’;
所有姓欧阳的都在

【例3.33】查询所有不姓刘的学生姓名、学号和性别。
SELECT Sname,Sno,Ssex
FROM Student
WHERE Sname NOT LIKE ‘刘%’;
无异常

【例3.34】查询DB_Design课程的课程号和学分。
SELECT Cno,Ccredit
FROM Course
WHERE Cname LIKE 'DB_Design’ESCAPE ‘’;
显示两项内容Cno、Ccredit

【例3.35】查询以"DB_"开头,且倒数第3个字符为 i的课程的详细情况。
SELECT *
FROM Course
WHERE Cname LIKE 'DB_%i__'ESCAPE ‘’;

DB_Design课程及其信息出现。

【例3.36】某些学生选修课程后没有参加考试,所以有选课记录,但没 有考试成绩。查询缺少成绩的学生的学号和相应的课程号。
SELECT Sno,Cno
FROM SC
WHERE Grade IS NULL
无异常

【例3.37】查所有有成绩的学生学号和课程号。
SELECT Sno,Cno
FROM SC
WHERE Grade IS NOT NULL

{(转载自他人)多重条件的查询
逻辑运算符:AND和 OR来连接多个查询条件
AND的优先级高于OR,可以用括号改变优先级。
原文链接:https://blog.youkuaiyun.com/qq_44871112/article/details/104800959}

【例3.38】查询计算机系年龄在20岁以下的学生姓名。
SELECT Sname
FROM Student
WHERE Sdept='CS’AND Sage<20
主要对象为年龄

【例3.39】查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。
SELECT Sno,Grade
FROM SC
WHERE Cno= ’ 3 ’
ORDER BY Grade DESC;
无异常

【例3.40】查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。
SELECT *
FROM Student
ORDER BY Sdept ASC, Sage DESC;
上一例中的人也都在这里面。

【例3.41]】 查询学生总人数。

SELECT COUNT(*)
FROM Student;
无异常

【例3.42】查询选修了课程的学生人数。
SELECT COUNT(DISTINCT Sno)
FROM SC;
只有上一例里面的部分人。

【例3.43】1号课程的学生平均成绩。
SELECT AVG(Grade)
FROM SC
WHERE Cno=‘1’;
无异常

【例3.44】查询选修1号课程的学生最高分数。
SELECT MAX(Grade)
FROM SC
WHERE Cno=‘1’;
只有一个人。。。

【例3.45】 查询学生201215012选修课程的总学分数。
SELECT SUM(Ccredit)
FROM SC,Course
WHERE Sno=‘201215122’ AND SC.Cno=Course.Cno;
具体到一个人

【例3.46】求各个课程号及相应的选课人数。
SELECT Cno,COUNT(Sno)
FROM SC
GROUP BY Cno;
无异常

【例3.47】查询选修了3门以上课程的学生学号。
SELECT Sno
FROM SC
GROUP BY Sno
HAVING COUNT(*)>3;
多加一个条件即可

【例3.48】查询平均成绩大于等于90分的学生学号和平均成绩
SELECT Sno,AVG(Grade)
FROM SC
GROUP BY Sno
HAVING AVG(Grade)>=80;
平均的用语是AVG,明白了,干货满满。

<think>好的,我需要处理用户关于MySQL单表查询实验的问题。首先,用户提到想查找CTGU2025学期MySQL数据库实验2_1的单表查询示例或教程。根据提供的引用,用户可能已经看过实验1_1和3_1的内容,现在需要实验2_1的资料。虽然直接引用中没有实验2_1的具体内容,但可以基于已有信息和通用知识来构建答案。 首先,我应该明确单表查询的基本概念,包括SELECT语句的结构、WHERE条件的使用、聚合函数如COUNT和SUM,以及排序和分组。这些是单表查询的核心内容,用户可能需要这些知识点来完成实验。 接下来,我需要参考提供的引用内容。引用[1]提到了创建数据库和设置字符集,虽然不直接相关,但可以联想到实验可能基于之前创建的数据库进行查询。引用[2]涉及左外连接,但用户需要的是单表查询,所以可能不需要连接操作,但可以提到单表查询是连接操作的基础。 然后,我需要确保回答结构清晰,分步骤说明。例如,先创建示例数据表,插入数据,再展示各种查询示例,如基本查询、条件查询、聚合函数、分组和排序。每个示例都需要具体的SQL代码和解释,帮助用户理解。 同时,用户可能希望了解实验的具体要求,虽然引用中没有实验2_1的详细信息,但可以推测常见的单表查询练习题目,比如查询特定条件下的记录、使用聚合函数统计、分组统计等。因此,提供几个示例问题,并给出解决方法会很有帮助。 还需要注意使用正确的LaTeX格式,例如在行内数学表达式使用$...$,独立公式使用$$...$$。不过在数据库查询的上下文中,可能数学公式较少,但如果有涉及计算的地方需要正确应用。 最后,按照用户的要求生成相关问题,这些问题应该围绕单表查询的进一步应用、优化和常见问题,帮助用户深化理解。例如,如何优化单表查询性能,单表查询的常见错误等。 总结步骤: 1. 创建示例数据表,符合实验可能的结构。 2. 插入示例数据,供查询使用。 3. 展示各种单表查询示例,包括基本查询、条件、聚合、分组、排序。 4. 每个示例附上SQL代码和解释。 5. 生成相关问题,引导用户深入学习。 6. 确保引用正确,虽然直接引用可能不涉及实验2_1,但可以关联到之前的实验内容。 需要检查LaTeX语法是否正确,例如变量名或条件表达式可能需要使用$符号,如WHERE score > 80,如果有数学表达式的话。但在此上下文中可能不需要,所以可能主要用代码块展示SQL语句。 确保回答用中文,结构清晰,分步骤说明,并提供练习题和问题。同时,结尾处添加相关问题,帮助用户进一步学习。</think>以下是为您整理的MySQL单表查询实验指导,包含示例和练习要点: ### 一、单表查询基本语法结构 SELECT <字段列表> FROM <表名> [WHERE 条件] [GROUP BY 分组字段] [ORDER BY 排序字段] [LIMIT 数量] ### 二、实验示例(基于图书借阅表) ```sql -- 创建示例表(引用实验1_1的字符集设置) CREATE TABLE books ( book_id INT PRIMARY KEY, title VARCHAR(50) NOT NULL, author VARCHAR(30), price DECIMAL(6,2), publish_date DATE, category VARCHAR(20) ) CHARSET=utf8; -- 插入测试数据 INSERT INTO books VALUES (1, &#39;数据库原理&#39;, &#39;王强&#39;, 45.00, &#39;2022-03-01&#39;, &#39;计算机&#39;), (2, &#39;计算机网络&#39;, &#39;李芳&#39;, 68.50, &#39;2021-09-15&#39;, &#39;计算机&#39;), (3, &#39;西方哲学史&#39;, &#39;张伟&#39;, 39.80, &#39;2023-01-10&#39;, &#39;人文&#39;); ``` ### 三、典型查询示例 1. **基础查询** ```sql -- 查询所有字段 SELECT * FROM books; -- 查询指定字段 SELECT title, author FROM books; ``` 2. **条件查询** ```sql -- 查询计算机类书籍(注意字符集支持中文[^1]) SELECT * FROM books WHERE category = &#39;计算机&#39;; -- 查询价格超过50元的书籍 SELECT title, price FROM books WHERE price > 50; ``` 3. **聚合函数** ```sql -- 统计书籍总数 SELECT COUNT(*) AS total_books FROM books; -- 计算计算机类书籍平均价格 SELECT AVG(price) FROM books WHERE category = &#39;计算机&#39;; ``` 4. **分组统计** ```sql -- 按类别统计书籍数量 SELECT category, COUNT(*) FROM books GROUP BY category; ``` 5. **排序查询** ```sql -- 按出版日期降序排列 SELECT title, publish_date FROM books ORDER BY publish_date DESC; ``` ### 四、实验练习题 1. 查询2022年后出版的书籍信息 2. 找出价格最高的前3本书 3. 统计每位作者的著作数量 4. 查询书名包含"网络"的书籍
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值