该文档《SQL Server数据库题目》包含了针对SQL Server数据库设计的各种练习题和测试题,旨在帮助学习者提高数据库管理、查询优化等方面的能力。适合数据库管理员及开发人员使用。
【SQL Server 数据库基本操作详解】
SQL Server 是一款广泛使用的强大关系型数据库管理系统,在本实验中我们将深入理解并实践 SQL 语句,并掌握数据表的基本操作,包括查询、聚合函数的使用、连接及条件过滤等。
1. **聚合函数的应用**:
聚合函数用于对一组值进行计算,如 `AVG` 计算平均数,`COUNT` 统计数量,以及求最大值和最小值的 `MAX` 和 `MIN`。例如查询学生年龄的平均值得到以下语句:
```sql
SELECT AVG(age) FROM student;
```
2. **LIKE 操作符**:
使用 LIKE 进行模式匹配时通常会配合通配符 `%`(代表任意长度字符)和 `_`(代表单个字符)。比如,查询所有姓“王”且名字为两个字的学生可以使用以下命令:
```sql
SELECT * FROM student WHERE sname LIKE 王_;
```
3. **SELECT 查询语句**:
使用 `SELECT` 从数据库中获取数据,并可指定字段和过滤条件。例如,要查看系编号‘D2’的所有学生信息,则执行如下查询:
```sql
SELECT sno 学号, name 姓名, sex 性别, age 年龄
FROM student
WHERE deptsno = D2;
```
4. **DISTINCT 关键字**:
`DISTINCT` 用于去除重复的记录。例如,获取所有有选课记录的不同学生学号可以通过以下命令实现:
```sql
SELECT DISTINCT sno
FROM student INNER JOIN SC ON Student.sno=sc.sno WHERE cno IS NOT NULL;
```
5. **多条件查询**:
使用 `AND` 或 `OR` 连接多个条件。例如,找出同时选修了“1”号课程和“2”号课程的学生可以使用以下语句:
```sql
SELECT sno FROM sc WHERE cno = 1 AND cno = 2;
```
6. **不包含特定模式的查询**:
使用 `NOT LIKE` 排除符合特定模式的数据。例如,列出所有名字中不含“刘”的学生信息可以通过如下命令实现:
```sql
SELECT * FROM student WHERE sname NOT LIKE 刘%;
```
7. **模糊匹配**:
利用 `%` 代表任意长度的字符和 `_` 表示单个字符进行查询。比如,找出姓氏为‘王’且名字恰好两个字的所有学生可以使用以下命令:
```sql
SELECT * FROM student WHERE sname LIKE 王_;
```
8. **排序**:
使用 `ORDER BY` 对结果集中的记录按某一字段升序或降序排列。如对所有学生的年龄进行从低到高的排序,执行如下查询语句即可实现此功能。
```sql
SELECT * FROM student ORDER BY age ASC;
```
9. **统计与分组**:
使用 `GROUP BY` 对结果集中的记录按某一字段值的相同性进行分类汇总。比如,根据课程号降序显示每门课的学生人数、最高成绩、最低成绩和平均分数可以使用以下命令实现。
```sql
SELECT cno, COUNT(sno) 总人数, MAX(grade) 最高分, MIN(grade) 最低分, AVG(grade) 平均分 FROM sc GROUP BY cno ORDER BY cno DESC;
```
10. **计数与平均值**:
使用 `COUNT` 和 `AVG` 分别计算总数和平均值。例如,获取学生总人数及平均年龄可以通过以下命令实现。
```sql
SELECT COUNT(*) 学生总人数, AVG(age) 平均年龄 FROM student;
```
11. **条件转换**:
利用 `CASE` 语句进行条件判断来返回不同的结果。比如根据性别显示“男生”、“女生”,其他情况则标记为“未定义”。实现如下命令。
```sql
SELECT
CASE WHEN ssex = M THEN 男生
WHEN ssex = F THEN 女生
ELSE 未知性別信息
END 性别, sno 学号, sname 姓名, age 年龄 FROM student;
```
以上就是关于 SQL Server 数据库中涉及的一些基本操作,包括查询、聚合函数的应用、连接及条件过滤等功能的实例解析。通过这些练习可以更好地理解和使用 SQL 语言进行数据库的操作。