第一题 某班学生和考试成绩信息如下表Student所示: Student表 ID SName Mark 1 Jack 90 2 Marry 96 3 Rose 88 4 Bob 86 5 John 83 6 Belty 85 7 Robert 其中ID为学生的编号,SName为姓名,Mark为成绩,请针对以下问题,写出相应的SQL: CREATE TABLE student(id tinyint unsigned primary key auto_increment,snamevarchar(10) not null,mark decimal(4,1)); 1、 请查询成绩大于85分的学生的姓名; SELECT sname FROM student WHERE mark > 85; 2、 请查询成绩大于等于90分的人数; SELECT count(id) FROM student WHERE mark >= 90; 3、 Robert此次考试考了80分,但是成绩没能录入表中,请将其成绩添加进入; UPDATE student SET mark = 80 WHERE id = 7; 4、 请将Rose的成绩修改为87.5; UPDATE student SET mark = 87.5 WHERE id = 3; 5、 请删除Belty的记录; DELETE FROM student WHERE id = 6; 6、 查询分数在83和90之间的学生名字 SELECT sname FROM student WHERE mark >= 83 and mark <= 90; SELECT sname FROM student WHERE mark between 83 and 90; 7、 查询首字母为J的学生姓名 SELECT sname FROM student WHERE sname like ‘J%’; 8、 查询学习最好的学生姓名和成绩 SELECT sname,max(mark),mark FROM student; 第二题 现有关系数据库如下: 同学表(学号char(6)、姓名、性别、年龄、名族、身份证号、宿舍号) 宿舍表(宿舍号char(6)、宿舍电话) 用SQL语言实现下列功能的sql语句代码: 1、 创建数据表[宿舍表]代码: 宿舍表(宿舍号char(6)、宿舍电话) 要求使用:主键(宿舍号) CREATE TABLE dormitory(did char(6) primary key,telvarchar(13)); 2、 创建数据表[同学表]代码: 同学表(学号char(6)、姓名、性别、年龄、民族、身份证号、宿舍号) 要求使用:主键(学号)、外键(宿舍号)、默认(汉族)、非空(民族、姓名、年龄)、唯一(身份证号) CREATE TABLE student1(sid char(6) primary key,snamevarchar(10) not null,sexenum(‘男’,’女’,’保密’),age tinyint unsigned not null,nationalityvarchar(10) not null default ‘汉族’,cidvarchar(18) unique,ssid char(6),foreign key(ssid) references dormitory(did) on delete cascade on update cascade); 3、 将下列宿舍信心添加到宿舍表的代码 宿舍号 宿舍电话 101 6331157 102 6331777 1)、修改:宿舍号为101的宿舍电话:6331158 UPDATE dormitory SET tel = ‘6331158’ WHERE did = ‘101’; 2)、删除:宿舍号为102的宿舍信息 DELETE FROM dormitory WHERE did = ‘102’; 第三题 根据要求编写SQL语句,设有一个数据表Store_Information,用于存储2009年某连锁商店各地分店的每月营业额信息,片段如下: sName Sales sDate 北京店 15000 2009-6-10 天津店 2500 2009-6-10 北京店 3000 2009-6-10 哈尔滨店 7000 2009-6-11 1)、创建该表,所有字段均不可为空 CREATE TABLE store_information(snamevarchar(10) not null,sales decimal(8,2) not null,sdate date not null); 2)、修改表结构,添加一列可以为空的备注信息:Memo 3)、将所有分店名称均由”某某店”改成”某某分店”,改后片段如下 sName Sales sDate Memo 北京分店 15000 2009-6-10 天津分店 2500 2009-6-10 北京分店 3000 2009-6-10 哈尔滨分店 7000 2009-6-11 UPDATE store_information SET sname = ‘北京分店’ WHERE sname = ‘北京店’; UPDATE store_information SET sname =replace(sname,’店’,’分店’); 4)、查询各分店的平均日营业额 SELECT sname,round(avg(sales)/30,2) FROM store_information GROUP BY sname; 5)、查询哪些分店的营业总额超过了17000 SELECT sname,sum(sales) FROM store_information GROUP BY sname HAVING sum(sales) > 17000;