Student 表: num name age scoreid 97001 张三 23 1002 97002 李四 21 1005 97003 王五 NULL 1001 97004 赵六 22 1004 97005 吴七 20 1003 Socre 表: num linux C cpp 1001 56 67 80 1002 72 84 59 1003 49 60 60 1004 80 72 55 1005 61 20 57 (1) 写出创建student表的sql语句(num 为主键), (2) 写出sql语句,将age 的类型由 int 修改为 tiny int; (3) 写出sql语句查出李四同学的 C++ (字段名为cpp)的成绩 ; (4) 写出sql语句,显示姓名为李四,吴七,张三的学号(num); (5) 请写出sql,删除年龄(age)为NULL的记录。
时间: 2024-03-14 20:47:49 浏览: 198
(1) 创建Student表的SQL语句:
```mysql
CREATE TABLE Student (
num VARCHAR(20) PRIMARY KEY,
name VARCHAR(20),
age INT,
scoreid VARCHAR(20)
);
```
(2) 将age的类型由int修改为tinyint的SQL语句:
```mysql
ALTER TABLE Student MODIFY age TINYINT;
```
(3) 查出李四同学的C++(字段名为cpp)的成绩的SQL语句:
```mysql
SELECT cpp FROM Student s, Score sc WHERE s.num=sc.num AND s.name='李四';
```
(4) 显示姓名为李四、吴七、张三的学号(num)的SQL语句:
```mysql
SELECT num FROM Student WHERE name IN ('李四', '吴七', '张三');
```
(5) 删除年龄(age)为NULL的记录的SQL语句:
```mysql
DELETE FROM Student WHERE age IS NULL;
```
相关问题
学生信息表(Student):学生信息编号(StudentID)、姓名(Name)、性别(Gender)、出生日期(BirthDate)、联系电话(Phone)、家庭住址(Address)、班级编号(ClassID) 班级信息表(Class):班级编号(ClassID)、班级名称(ClassName)、所属学院(Academy) 教师信息表(Teacher):教师编号(TeacherID)、姓名(Name)、性别(Gender)、出生日期(BirthDate)、联系电话(Phone)、所属学院(Academy) 课程信息表(Course):课程编号(CourseID)、课程名称(CourseName)、学分(Credit) 成绩信息表(Score):成绩编号(ScoreID)、学生信息编号(StudentID)、课程编号(CourseID)、成绩(Grade)字段表
好的,以下是该学生管理系统的数据库设计:
## 学生信息表(Student)
- 学生信息编号(StudentID) int primary key
- 姓名(Name) varchar(20) not null
- 性别(Gender) char(2) not null
- 出生日期(BirthDate) date not null
- 联系电话(Phone) varchar(20)
- 家庭住址(Address) varchar(100)
- 班级编号(ClassID) int not null
- foreign key (ClassID) references Class(ClassID)
## 班级信息表(Class)
- 班级编号(ClassID) int primary key
- 班级名称(ClassName) varchar(20) not null
- 所属学院(Academy) varchar(20) not null
## 教师信息表(Teacher)
- 教师编号(TeacherID) int primary key
- 姓名(Name) varchar(20) not null
- 性别(Gender) char(2) not null
- 出生日期(BirthDate) date not null
- 联系电话(Phone) varchar(20)
- 所属学院(Academy) varchar(20) not null
## 课程信息表(Course)
- 课程编号(CourseID) int primary key
- 课程名称(CourseName) varchar(20) not null
- 学分(Credit) float not null
## 成绩信息表(Score)
- 成绩编号(ScoreID) int primary key
- 学生信息编号(StudentID) int not null
- 课程编号(CourseID) int not null
- 成绩(Grade) float not null
- foreign key (StudentID) references Student(StudentID)
- foreign key (CourseID) references Course(CourseID)
学生信息表(Student):学生号(StudentID)、姓名(Name)、性别(Gender)、出生日期(BirthDate)、联系电话(Phone)、家庭住址(Address)、班级编号(ClassID) 班级信息表(Class):班级号(ClassID)、班级名称(ClassName)、所属学院(Academy) 教师信息表(Teacher):教师号(TeacherID)、姓名(Name)、性别(Gender)、出生日期(BirthDate)、联系电话(Phone)、所属学院(Academy) 课程信息表(Course):课程号(CourseID)、课程名称(CourseName)、学分(Credit)、授课教师(teacher_name) 成绩信息表(Score):成绩号(ScoreID)、学生号(StudentID)、课程号(CourseID)、成绩(Grade)建表代码和查询语句
建表代码:
```
-- 学生信息表
CREATE TABLE Student (
StudentID INT PRIMARY KEY,
Name VARCHAR(50),
Gender CHAR(1),
BirthDate DATE,
Phone VARCHAR(20),
Address VARCHAR(100),
ClassID INT
);
-- 班级信息表
CREATE TABLE Class (
ClassID INT PRIMARY KEY,
ClassName VARCHAR(50),
Academy VARCHAR(50)
);
-- 教师信息表
CREATE TABLE Teacher (
TeacherID INT PRIMARY KEY,
Name VARCHAR(50),
Gender CHAR(1),
BirthDate DATE,
Phone VARCHAR(20),
Academy VARCHAR(50)
);
-- 课程信息表
CREATE TABLE Course (
CourseID INT PRIMARY KEY,
CourseName VARCHAR(50),
Credit INT,
teacher_name VARCHAR(50)
);
-- 成绩信息表
CREATE TABLE Score (
ScoreID INT PRIMARY KEY,
StudentID INT,
CourseID INT,
Grade FLOAT,
FOREIGN KEY (StudentID) REFERENCES Student(StudentID),
FOREIGN KEY (CourseID) REFERENCES Course(CourseID)
);
```
查询语句:
1. 查询学生信息表中所有学生的姓名、性别和班级名称
```
SELECT Student.Name, Student.Gender, Class.ClassName
FROM Student
INNER JOIN Class
ON Student.ClassID = Class.ClassID;
```
2. 查询所有学生的课程名称、课程学分和成绩
```
SELECT Student.Name, Course.CourseName, Course.Credit, Score.Grade
FROM Student
INNER JOIN Score
ON Student.StudentID = Score.StudentID
INNER JOIN Course
ON Score.CourseID = Course.CourseID;
```
3. 查询所有学生的平均成绩
```
SELECT Student.Name, AVG(Score.Grade) AS AverageGrade
FROM Student
INNER JOIN Score
ON Student.StudentID = Score.StudentID
GROUP BY Student.Name;
```
4. 查询某个学生的所有成绩
```
SELECT Course.CourseName, Score.Grade
FROM Score
INNER JOIN Course
ON Score.CourseID = Course.CourseID
WHERE Score.StudentID = [学生ID];
```
5. 查询某个教师的所有课程和授课班级
```
SELECT Course.CourseName, Class.ClassName
FROM Course
INNER JOIN Class
ON Course.teacher_name = [教师姓名] AND Class.ClassID = Course.ClassID;
```
阅读全文