用sql语句创建学生表:student(学号sno,学生姓名sname,出生年月sbirth,性别ssex)
时间: 2024-04-21 09:22:14 浏览: 1640
你可以使用以下 SQL 语句创建一个名为 student 的学生表:
```sql
CREATE TABLE student (
sno INT PRIMARY KEY,
sname VARCHAR(255),
sbirth DATE,
ssex VARCHAR(10)
);
```
这个表包含了四个列:
- sno:学号,使用 INT 类型作为主键。
- sname:学生姓名,使用 VARCHAR(255) 类型存储学生姓名,长度为最大255个字符。
- sbirth:出生年月,使用 DATE 类型存储出生年月。
- ssex:性别,使用 VARCHAR(10) 类型存储性别信息,长度为最大10个字符。
在创建表后,你可以根据需要插入、更新或查询学生信息。记得根据实际需求进行数据类型的选择和合理的约束设置。
相关问题
有一个[学生课程]数据库Stu_Cou,该数据库中包含三个表: 学生表: Student(Sno,Sname,Ssex,Sbirth,Spre,Sclass,Sdept) ,Sno 为关键字。 表示由学号(Sno)、姓名(Sname)、性别(Ssex)、出生日期(Sbirth)、已修学分(Spre)、班级(Sclass)、所在系(Sdept)七个属性,其中Sno为主码。 课程表Course由课程号(Cno)、课程名(Cname)、课程类型(Ctype)、先修课号(Cpno)、学分(Ccredit)五个个属性组成,记为:Course(Cno,Cname,Ctype,Cpno,Ccredit) ,Cno为主码。 学生选课表SC由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记为: SC(Sno,Cno,Grade) (Sno, Cno)为主码。 要求用SQL语句完成:查询学号为‘20230001’的学生选修而学号为‘20230002’的学生没有选修的课程号。
可以使用左连接查询和子查询来实现:
```
SELECT course.Cno
FROM Course course
LEFT JOIN SC sc1 ON course.Cno = sc1.Cno AND sc1.Sno = '20230001'
LEFT JOIN SC sc2 ON course.Cno = sc2.Cno AND sc2.Sno = '20230002'
WHERE sc1.Sno IS NOT NULL AND sc2.Sno IS NULL;
```
解释一下这个 SQL 查询:
- 首先从课程表 Course 开始,使用左连接查询与 SC 表连接,连接条件是 Course 表中的 Cno 字段等于 SC 表中的 Cno 字段。
- 同时再连接 SC 表和学生表 Student,以获取学生的学号和姓名等信息。
- 在连接 SC 表时,使用了两个 SC 表的别名 sc1 和 sc2,分别代表学号为 ‘20230001’ 和 ‘20230002’ 的学生。
- 在 WHERE 子句中,使用 IS NOT NULL 过滤出学号为 ‘20230001’ 的学生已经选修的课程,同时使用 IS NULL 过滤出学号为 ‘20230002’ 的学生没有选修的课程。
- 最后,只返回课程号 Cno 列。
(3)利用SQL命令语句创建全体学生的选修情况视图【CSSTU_VYYXXX】,该视图包含学生的学号、姓名、性别、出生日期及所在系字段。
创建CSSTU_VYYXXX视图的SQL命令语句如下:
```
CREATE VIEW CSSTU_VYYXXX AS
SELECT stu.sno, stu.sname, stu.ssex, stu.sbirth, dept.dname
FROM student stu, department dept, sc
WHERE stu.sno = sc.sno AND dept.deptno = stu.sdept;
```
解释:该视图使用了学生表(student)、系别表(department)和选课表(sc),通过学生表和系别表的关联以及学生表和选课表的关联,查询出学生的学号、姓名、性别、出生日期和所在系字段,并将其作为视图返回。其中,CSSTU_VYYXXX为视图名称,可以根据需要进行修改。
阅读全文