create database StudCourse; use StudCourse; #Student(Sid,Sname,Sage,Ssex) 学生表 CREATE TABLE student ( sid varchar(10) NOT NULL, sName varchar(20) DEFAULT NULL, sAge datetime DEFAULT '1980-10-12 23:12:36', sSex varchar(10) DEFAULT NULL, PRIMARY KEY (sid) ) ENGINE=InnoDB DEFAULT CHA-RSET=utf8; #Course(Cid,Cname,Tid) 课程表 CREATE TABLE course ( cid varchar(10) NOT NULL, cName varchar(10) DEFAULT NULL, tid int(20) DEFAULT NULL, PRIMARY KEY (cid) ) ENGINE=InnoDB DEFAULT CHA-RSET=utf8; #SC(Sid,Cid,score) 成绩表 CREATE TABLE sc ( sid varchar(10) DEFAULT NULL, cid varchar(10) DEFAULT NULL, score int(10) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHA-RSET=utf8; #Teacher(Tid,Tname) 教师表 CREATE TABLE teacher ( tid int(10) DEFAULT NULL, tName varchar(10) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHA-RSET=utf8; #数据:( MySQL ) insert into teacher(tid,tName) values (1,' 李老师'),(2,' 何以琛'),(3,' 叶平'); insert into student(sid,sName,sAge,sSex) values ('1001',' 张三丰 ','1980-10-12 23:12:36',' 男'),('1002',' 张无极 ','1995-10-12 23:12:36',' 男'),('1003',' 李奎','1992-10-12 23:12:36',' 女'),('1004',' 李元宝 ','1980-10-12 23:12:36',' 女'),('1005',' 李世明','1981-10-12 23:12:36',' 男'),('1006',' 赵六','1986-10-12 23:12:36',' 男'),('1007',' 田七','1981-10-12 23:12:36',' 女'), ('1008',' 张三丰 ','1982-08-12 23:12:36',' 男'); insert into sc(sid,cid,score) values ('1','001',80),('1001','002',60),('1001','003',75),('1002','001',85),('1002','002',70),('1003','004',100), ('1003','001',90),('1003','002',55),('1004','002',65),('1004','003',60); insert into course(cid,cName,tid) values ('001',' 企业管理 ',3),('002',' 马克思 ',3),('003','UML',2),('004',' 数据库 ',1),('005','英语',1);
时间: 2023-08-20 20:29:28 浏览: 96
好的,根据您提供的数据库表结构和数据,以下是查询选修课程名称为“数据库”的学生姓名和分数的 SQL 语句:
```
SELECT s.sName, sc.score
FROM student s
JOIN sc ON s.sid = sc.sid
JOIN course c ON c.cid = sc.cid
WHERE c.cName = '数据库';
```
执行该 SQL 语句后,将会返回选修了“数据库”课程的学生姓名和分数。
相关问题
建mysql学生表 Student(SId,Sname,Ssex,Dno) 查询同时选修" 01“课程和” 02 "课程的情况
可以按照以下语句建立学生表:
```
CREATE TABLE Student (
SId INT PRIMARY KEY,
Sname VARCHAR(255),
Ssex VARCHAR(10),
Dno VARCHAR(20)
);
```
假设课程表为 Course,可以按照以下语句查询同时选修“01”课程和“02”课程的情况:
```
SELECT S.SId, S.Sname
FROM Student S
INNER JOIN SC SC1 ON S.SId = SC1.SId AND SC1.CId = '01'
INNER JOIN SC SC2 ON S.SId = SC2.SId AND SC2.CId = '02';
```
其中 SC 表是学生选课表,包含 SId 和 CId 两列。INNER JOIN 表示内连接,即只返回同时满足两个条件的记录。
2.在数据库student中创建基本表 (1) student (sno, sname, ssex, sage, sdept) (2) course (cno, cname, cpno, ccredi
在数据库中创建基本表通常涉及到SQL语言的CREATE TABLE语句。以下是为您提供的两个表的创建示例:
1. 学生表(student):
```sql
CREATE TABLE student (
sno VARCHAR(10) PRIMARY KEY, -- 学号,主键
sname VARCHAR(50), -- 姓名
ssex CHAR(1) -- 性别
sage INT, -- 年龄
sdept VARCHAR(50) -- 所在系部
);
```
2. 课程表(course):
```sql
CREATE TABLE course (
cno VARCHAR(10) PRIMARY KEY, -- 课程编号,主键
cname VARCHAR(50), -- 课程名称
cpno INT, -- 授课教师编号
ccredit DECIMAL(3,1) -- 学分
);
```
在这里:
- `VARCHAR`用于存储字符串类型的数据,`CHAR`用于固定长度字符数据,`INT`表示整数类型,`DECIMAL`表示带有小数部分的数字。
- 主键(`PRIMARY KEY`)用于标识每个记录的唯一性。
阅读全文