班级:0401304 姓名:邓小俊学号:2013211526
3.
<pre name="code" class="sql">create table 服装(
服装编号 varchar(4) not null unique,
品牌 varchar(20),
型号 varchar(5),
颜色 varchar(2),
价格 int,
primary key(服装编号)
);
create table 顾客(
顾客编号 varchar(4) not null unique,
姓名 varchar(20),
性别 varchar(2),
年龄 int,
电话 varchar(11),
primary key(顾客编号)
);
create table 购买记录 (
服装编号 varchar(4),
顾客编号 varchar(4),
购买日期 date,
数量 int,
primary key(服装编号,顾客编号),
foreign key(服装编号)references 服装(服装编号),
foreign key(顾客编号)references 顾客(顾客编号)
);
SELECT 服装编号,型号,颜色,价格 FROM 服装 where 品牌='佐丹奴';
select DISTINCT 姓名,电话 from 顾客,购买记录,服装 where 顾客.顾客编号=购买记录.顾客编号 and 购买记录.服装编号= 服装.服装编号 and 品牌='美津浓';
select * from 顾客 where not exists (select * from 购买记录 where 顾客编号=顾客.顾客编号);
SELECT * from `顾客` where not EXISTS(select * from `服装` where 品牌='佐丹奴' AND not EXISTS (SELECT *from `购买记录`where `顾客编号`=`顾客`.`顾客编号`AND 服装编号=服装.`服装编号`));
4.
CREATE TABLE `课程` (
`课程号` varchar(20) NOT NULL,
`课程名` varchar(20) DEFAULT NULL,
`学分` float DEFAULT NULL,
`先行课程号` varchar(20) DEFAULT NULL,
PRIMARY KEY (`课程号`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `选修` (
`学号` varchar(10) DEFAULT NULL,
`课程号` varchar(20) DEFAULT NULL,
`成绩` float DEFAULT NULL,
KEY `学号` (`学号`),
KEY `课程号` (`课程号`),
CONSTRAINT `@9009@4fee_ibfk_1` FOREIGN KEY (`学号`) REFERENCES `学生` (`学号`),
CONSTRAINT `@9009@4fee_ibfk_2` FOREIGN KEY (`课程号`) REFERENCES `课程` (`课程号`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `学生` (
`学号` varchar(10) NOT NULL,
`姓名` varchar(20) DEFAULT NULL,
`专业` varchar(20) DEFAULT NULL,
`年龄` int(11) DEFAULT NULL,
PRIMARY KEY (`学号`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
select * FROM 学生 where 专业='通信工程';
SELECT 课程号,学分 from 课程;
select 课程号,成绩 from `学生`,`选修` where 姓名='张珊'AND `学生`.`学号`=`选修`.`学号`;
SELECT `学生`.`学号` FROM 学生 where not EXISTS (select * from 课程 where NOT EXISTS (SELECT * FROM `选修` where `课程`.`课程号`=选修.`课程号`AND `选修`.`学号`=`学生`.`学号`));
select 学号 from `选修` where 课程号 is null;
select 学号 from 课程,选修 where 课程名 = '数据库原理' and `选修`.课程号 = 先行课程号;
delete FROM 选修 where 学号='9501';
select * from 选修;
delete FROM 选修 where 学号='9501';
select * from 选修;
(其中数据因为建表时没考虑周全临时将9503选的课程号改为db01)
delete FROM 选修 where 学号='9501';
select * from 选修;
select * FROM 数据库成绩信息 where 成绩<90;
(因前面执行删除操作后数据库中已无成绩大于90的成绩,故此处做成绩小于90的查询)