检索出 stu表中‘计算机工程’或‘软件工程’专业的学生的记录,结果集按学号升序排序。 表结构: 请在这里写定义表结构的SQL语句。例如: CREATE TABLE `major` ( `mno` char(2) NOT NULL, `mname` varchar(20) NOT NULL, PRIMARY KEY (`mno`) ); CREATE TABLE `stu` ( `sno` char(4) NOT NULL, `sname` char(8) NOT NULL, `sex` tinyint(1) DEFAULT NULL, `mno` char(2) DEFAULT NULL, `birdate` datetime DEFAULT NULL, `memo` text, PRIMARY KEY (`SNO`), CONSTRAINT fk_stu_mno FOREIGN KEY (mno) REFERENCES major (mno) );
时间: 2023-10-21 11:05:32 浏览: 52
CREATE TABLE `major` (
`mno` char(2) NOT NULL,
`mname` varchar(20) NOT NULL,
PRIMARY KEY (`mno`)
);
CREATE TABLE `stu` (
`sno` char(4) NOT NULL,
`sname` char(8) NOT NULL,
`sex` tinyint(1) DEFAULT NULL,
`mno` char(2) DEFAULT NULL,
`birdate` datetime DEFAULT NULL,
`memo` text,
PRIMARY KEY (`sno`),
CONSTRAINT `fk_stu_mno` FOREIGN KEY (`mno`) REFERENCES `major` (`mno`)
);
SELECT * FROM stu WHERE mno IN (SELECT mno FROM major WHERE mname IN ('计算机工程', '软件工程')) ORDER BY sno ASC;
相关问题
将stu表中的软件工程专业(专业号mno为'02')的学生记录批量插入到一个学生简表softstu表中怎么写
假设stu表中的字段为sid(学号)、sname(姓名)、sex(性别)、age(年龄)、mno(专业号),softstu表中的字段为sid、sname、sex、age,需要将stu表中mno为'02'的记录插入到softstu表中。
方案1:使用INSERT INTO SELECT语句
可以使用INSERT INTO SELECT语句实现批量插入,具体语句如下:
```sql
INSERT INTO softstu (sid, sname, sex, age)
SELECT sid, sname, sex, age
FROM stu
WHERE mno = '02';
```
解释:
- INSERT INTO softstu (sid, sname, sex, age):指定要插入数据的表和要插入的字段。
- SELECT sid, sname, sex, age FROM stu WHERE mno = '02':从stu表中选取符合条件的记录的sid、sname、sex、age字段的值。
- 整个语句的意思是将stu表中专业为软件工程的学生记录插入到softstu表中的相应字段中。
方案2:使用INSERT INTO VALUES语句
如果stu表和softstu表的字段对应关系一样,则可以使用INSERT INTO VALUES语句实现批量插入,具体语句如下:
```sql
INSERT INTO softstu (sid, sname, sex, age)
SELECT sid, sname, sex, age
FROM stu
WHERE mno = '02';
```
解释:
- INSERT INTO softstu:指定要插入数据的表。
- (sid, sname, sex, age):指定要插入的字段。
- VALUES (sid_value, sname_value, sex_value, age_value):指定要插入的值,其中每个字段对应的值是从SELECT语句中选出来的。
需要注意的是,方案2需要保证两个表中字段的顺序以及字段类型一致,否则可能会插入失败或出现数据错误。
本题目要求编写 Insert语句,在stu表中添加一条学生记录: 学号:S012,姓名:周强,性别:1,其它属性为NULL
假设stu表的字段包括:学号(id)、姓名(name)、性别(gender)等字段,可以使用如下的SQL语句插入一条学生记录:
```
INSERT INTO stu (id, name, gender) VALUES ('S012', '周强', '1');
```
其中,id、name、gender分别对应stu表中的学号、姓名、性别字段,'S012'、'周强'、'1'分别是要插入的学生记录的值。其它属性为NULL可以不用指定,因为如果这些字段设定了默认值或允许为空,系统会自动为其赋值。