sql sever 查询同时选修了‘信息系统’和‘数据结构’课程的学生名单
以下是查询同时选修了‘信息系统’和‘数据结构’课程的学生名单的 SQL 语句:
SELECT 学生名单.学生姓名 FROM 学生名单 INNER JOIN 选课 ON 学生名单.学生编号 = 选课.学生编号 INNER JOIN 课程 ON 选课.课程编号 = 课程.课程编号 WHERE 课程.课程名称 = '信息系统' AND 学生名单.学生编号 IN ( SELECT 学生编号 FROM 选课 INNER JOIN 课程 ON 选课.课程编号 = 课程.课程编号 WHERE 课程.课程名称 = '数据结构' );
sqlsever学生管理系统
使用 SQL Server 构建或操作学生管理系统
设计数据库结构
为了构建一个高效的学生信息系统,首先需要规划并创建合适的数据库架构。这包括定义实体及其关系,以及设置必要的约束条件来确保数据的一致性和完整性。
CREATE DATABASE StudentManagementSystem;
USE StudentManagementSystem;
-- 创建表 Students 存储学生的个人信息
CREATE TABLE Students (
StudentID INT PRIMARY KEY IDENTITY(1,1),
FirstName NVARCHAR(50) NOT NULL,
LastName NVARCHAR(50) NOT NULL,
DateOfBirth DATE NOT NULL,
Gender CHAR(1) CHECK (Gender IN ('M', 'F')),
EnrollmentDate DATETIME DEFAULT GETDATE()
);
-- 创建表 Courses 表示课程信息
CREATE TABLE Courses (
CourseID INT PRIMARY KEY IDENTITY(1,1),
Title NVARCHAR(100) UNIQUE NOT NULL,
Credits TINYINT NOT NULL,
Department NVARCHAR(50)
);
上述代码片段展示了如何通过 CREATE
语句建立两个基本表格——Students 和 Courses 来保存学生和课程的相关资料[^1]。
建立关联关系
接着,在这两个基础表之间建立起联系,比如可以引入中间表 Enrollments 记录每位同学所选修的具体科目:
-- 创建表 Enrollments 维护学生与课程之间的多对多关系
CREATE TABLE Enrollments (
EnrollmentID INT PRIMARY KEY IDENTITY(1,1),
StudentID INT FOREIGN KEY REFERENCES Students(StudentID),
CourseID INT FOREIGN KEY REFERENCES Courses(CourseID),
Grade DECIMAL(3,2) CHECK (Grade >= 0 AND Grade <= 4.0),
Semester VARCHAR(7)
);
此部分实现了对学生选课情况的有效追踪,并允许记录每学期的成绩等级。
插入初始测试数据
为了让新搭建好的系统能够立即投入使用,通常会预先准备一些样例数据供调试之用:
INSERT INTO Students (FirstName, LastName, DateOfBirth, Gender)
VALUES ('张三', '李四', '2000-09-15', 'M'),
('王五', '赵六', '2001-06-22', 'F');
INSERT INTO Courses (Title, Credits, Department)
VALUES ('计算机科学导论', 4, '信息技术系'),
('高等数学A', 5, '理学院');
INSERT INTO Enrollments (StudentID, CourseID, Grade, Semester)
SELECT s.StudentID, c.CourseID, CAST(RAND() * 4 AS DECIMAL(3,2)), 'Fall 2022'
FROM Students s CROSS JOIN Courses c;
这些命令向各个表内填充了几条简单的实例记录以便后续查询验证功能正常运作。
进行日常维护工作
最后,管理员还需要定期执行备份、优化索引等常规任务以保障系统的稳定运行;同时也要注意安全策略的应用防止未授权访问造成敏感信息泄露等问题的发生。
帮我用SQL sever写一个学生选课管理系统
创建一个简单的学生选课管理系统涉及设计数据库表、创建基本操作的SQL语句,比如添加学生、课程、和选课记录。以下是简化的数据库结构示例以及一些基本的CRUD操作:
- 创建数据库和表: ```sql CREATE DATABASE StudentCourseSystem;
USE StudentCourseSystem;
-- 创建学生表 CREATE TABLE Students ( ID INT PRIMARY KEY, Name VARCHAR(50), Major VARCHAR(50) );
-- 创建课程表 CREATE TABLE Courses ( ID INT PRIMARY KEY, CourseName VARCHAR(50), Teacher VARCHAR(50) );
-- 创建选课表 (一对多关系) CREATE TABLE Enrollments ( StudentID INT, CourseID INT, FOREIGN KEY (StudentID) REFERENCES Students(ID), FOREIGN KEY (CourseID) REFERENCES Courses(ID), PRIMARY KEY (StudentID, CourseID) );
2. **插入数据**:
```sql
INSERT INTO Students (ID, Name, Major) VALUES (1, '张三', '计算机科学');
INSERT INTO Courses (ID, CourseName, Teacher) VALUES (1, '数据结构', '李四');
INSERT INTO Enrollments (StudentID, CourseID) VALUES (1, 1); -- 学生1选修了课程1
- 查询操作:
- 查询所有学生:
SELECT * FROM Students;
- 查询特定学生所选的所有课程:
SELECT Courses.CourseName FROM Courses JOIN Enrollments ON Courses.ID = Enrollments.CourseID WHERE Enrollments.StudentID = (SELECT ID FROM Students WHERE Name = '张三');
- 更新和删除操作:
- 修改学生信息:
UPDATE Students SET Major = '软件工程' WHERE ID = 1;
- 删除学生选课记录:
DELETE FROM Enrollments WHERE StudentID = 1 AND CourseID = 1;
相关推荐












