文档详情

SQL上机考试(答案).docx

发布:2025-02-04约1.56千字共6页下载文档
文本预览下载声明

SQL上机考试(答案)

问题1:创建数据库和表

题目:创建一个名为`school`的数据库,并在该数据库中创建两个表:`students`和`teachers`。

```sql

创建数据库

CREATEDATABASEschool;

使用数据库

USEschool;

创建学生表

CREATETABLEstudents(

idINTAUTO_INCREMENTPRIMARYKEY,

nameVARCHAR(50)NOTNULL,

ageINTNOTNULL,

genderENUM(M,F)NOTNULL,

class_idINTNOTNULL

);

创建教师表

CREATETABLEteachers(

idINTAUTO_INCREMENTPRIMARYKEY,

nameVARCHAR(50)NOTNULL,

ageINTNOTNULL,

subjectVARCHAR(50)NOTNULL

);

```

问题2:插入数据

题目:向`students`表和`teachers`表中插入数据。

```sql

向学生表插入数据

INSERTINTOstudents(name,age,gender,class_id)VALUES

(Alice,20,F,1),

(Bob,21,M,1),

(Charlie,22,M,2),

(Diana,20,F,2);

向教师表插入数据

INSERTINTOteachers(name,age,subject)VALUES

(Mr.Smith,40,Mathematics),

(Ms.Johnson,35,English),

(Mrs.Lee,45,Science);

```

问题3:查询数据

题目:编写SQL查询语句,满足以下要求:

1.查询所有学生的姓名和年龄。

2.查询所有教授数学的教师姓名和年龄。

```sql

查询所有学生的姓名和年龄

SELECTname,ageFROMstudents;

查询所有教授数学的教师姓名和年龄

SELECTname,ageFROMteachersWHEREsubject=Mathematics;

```

问题4:更新数据

题目:更新`students`表中年龄大于21岁的学生年龄加1。

```sql

UPDATEstudentsSETage=age+1WHEREage21;

```

问题5:删除数据

题目:删除`teachers`表中年龄大于45岁的教师记录。

```sql

DELETEFROMteachersWHEREage45;

```

问题6:连接查询

题目:查询学生的姓名、年龄和他们所在班级的教师姓名。

```sql

SELECTs.nameASstudent_name,s.age,t.nameASteacher_name

FROMstudentss

JOINteacherstONs.class_id=t.id;

```

问题7:子查询

题目:查询年龄大于平均年龄的学生的姓名和年龄。

```sql

SELECTname,age

FROMstudents

WHEREage(SELECTAVG(age)FROMstudents);

```

显示全部
相似文档