SQL语句编写一个学生课表
时间: 2023-07-01 18:17:20 浏览: 52
假设有以下三个表:
1. 学生表(student):包含学生的学号、姓名等信息。
| 字段名 | 数据类型 |
| -------- | ------------ |
| stu_id | int(11) |
| stu_name | varchar(20) |
2. 课程表(course):包含课程的课程号、课程名称等信息。
| 字段名 | 数据类型 |
| ------------ | ----------- |
| course_id | int(11) |
| course_name | varchar(20) |
3. 选课表(sc):记录学生选课情况,包括学生学号、选修的课程号等信息。
| 字段名 | 数据类型 |
| -------- | -------- |
| stu_id | int(11) |
| course_id| int(11) |
则可以使用以下 SQL 语句编写一个学生课表:
```
SELECT student.stu_id, student.stu_name, course.course_name
FROM student, sc, course
WHERE student.stu_id = sc.stu_id AND sc.course_id = course.course_id;
```
这个 SQL 语句会查询学生表、选课表和课程表中的信息,然后通过 WHERE 子句进行关联,最终返回每个学生所选的课程信息。
相关问题
使用sql server编写一个学生管理系统
好的,下面是一个简单的学生管理系统的 SQL Server 数据库设计:
**学生表(students)**
| 列名 | 数据类型 | 描述 |
| ---- | ---- | ---- |
| id | int | 学生编号,主键 |
| name | varchar(50) | 学生姓名 |
| gender | varchar(10) | 学生性别 |
| birthday | date | 学生生日 |
| address | varchar(200) | 学生地址 |
| phone | varchar(20) | 学生电话 |
**课程表(courses)**
| 列名 | 数据类型 | 描述 |
| ---- | ---- | ---- |
| id | int | 课程编号,主键 |
| name | varchar(50) | 课程名称 |
| teacher | varchar(50) | 授课教师 |
| credit | float | 学分 |
**成绩表(scores)**
| 列名 | 数据类型 | 描述 |
| ---- | ---- | ---- |
| id | int | 成绩编号,主键 |
| student_id | int | 学生编号,外键,关联学生表 |
| course_id | int | 课程编号,外键,关联课程表 |
| score | float | 成绩 |
以下是 SQL 代码,用于创建上述表格:
```sql
-- 创建学生表
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
gender VARCHAR(10),
birthday DATE,
address VARCHAR(200),
phone VARCHAR(20)
);
-- 创建课程表
CREATE TABLE courses (
id INT PRIMARY KEY,
name VARCHAR(50),
teacher VARCHAR(50),
credit FLOAT
);
-- 创建成绩表
CREATE TABLE scores (
id INT PRIMARY KEY,
student_id INT,
course_id INT,
score FLOAT,
FOREIGN KEY (student_id) REFERENCES students(id),
FOREIGN KEY (course_id) REFERENCES courses(id)
);
```
接下来是一些常用的 SQL 查询语句,用于查询和操作学生管理系统:
**查询所有学生的信息**
```sql
SELECT * FROM students;
```
**查询指定学生的信息**
```sql
SELECT * FROM students WHERE id = 1;
```
**查询所有课程的信息**
```sql
SELECT * FROM courses;
```
**查询指定课程的信息**
```sql
SELECT * FROM courses WHERE id = 1;
```
**查询指定学生的所有成绩**
```sql
SELECT scores.*, courses.name FROM scores
INNER JOIN courses ON scores.course_id = courses.id
WHERE scores.student_id = 1;
```
**添加一个学生**
```sql
INSERT INTO students (id, name, gender, birthday, address, phone)
VALUES (1, '张三', '男', '2000-01-01', '北京市海淀区', '13888888888');
```
**添加一个课程**
```sql
INSERT INTO courses (id, name, teacher, credit)
VALUES (1, '数学', '李老师', 3.0);
```
**添加学生的成绩**
```sql
INSERT INTO scores (id, student_id, course_id, score)
VALUES (1, 1, 1, 90.0);
```
**修改学生的信息**
```sql
UPDATE students SET name = '李四', gender = '女' WHERE id = 1;
```
**修改课程的信息**
```sql
UPDATE courses SET name = '英语', teacher = '王老师', credit = 2.5 WHERE id = 1;
```
**修改学生的成绩**
```sql
UPDATE scores SET score = 95.0 WHERE id = 1;
```
**删除一个学生**
```sql
DELETE FROM students WHERE id = 1;
```
**删除一个课程**
```sql
DELETE FROM courses WHERE id = 1;
```
**删除学生的成绩**
```sql
DELETE FROM scores WHERE id = 1;
```
以上是一个简单的学生管理系统的 SQL Server 数据库设计和操作示例,实际应用中可能需要更复杂的查询和操作。
目前有学生表,课程表和成绩表,使用sql语句编写一条语句查询每位学生语文、数学、外语三门课程成绩的 SQL
语句应该是:
SELECT 学生表.姓名, 课程表.课程名称, 成绩表.成绩
FROM 学生表, 课程表, 成绩表
WHERE 学生表.学号 = 成绩表.学号
AND 课程表.课程编号 = 成绩表.课程编号
AND (课程表.课程名称 = '语文' OR 课程表.课程名称 = '数学' OR 课程表.课程名称 = '外语')