一些SQL试题
create database SC
on
(name=‘SC‘,
filename=‘d:\SC.mdf‘)
log on
(name=‘SC_log‘,
filename=‘d:\SC_log.dlf‘)
go
use SC
go
create table 商品供应记录
(商家姓名 nvarchar(20) not null,
商品名称 nvarchar(20),
商品价格 decimal(7,2)
)
insert into 商品供应记录 values(‘长虹公司‘,‘彩电‘,4500.00)
insert into 商品供应记录 values(‘大自然公司‘,‘鸟‘,200.00)
insert into 商品供应记录 values(‘红旗副食‘,‘鸡蛋‘,2.50)
insert into 商品供应记录 values(‘红旗副食‘,‘奶粉‘,19.00)
insert into 商品供应记录 values(‘超霸音响‘,‘VCD‘,860.00)
insert into 商品供应记录 values(‘大邑米业‘,‘大米‘,1.50)
insert into 商品供应记录 values(‘超霸音响‘,‘收录机‘,1100.00)
insert into 商品供应记录 values(‘江湖音响‘,‘随身听‘,200.00)
insert into 商品供应记录 values(‘江湖音响‘,‘音箱‘,1000.00)
insert into 商品供应记录 values(‘江湖音响‘,‘VCD‘,680.00)
create table 顾客记录
(顾客姓名 nvarchar(10) not null,
地址 nvarchar(100),
顾客余额 decimal(7,2)
)
insert into 顾客记录 values(‘王红‘,‘成都太升南路18号‘,1200.00)
insert into 顾客记录 values(‘赵一‘,‘重庆石桥铺‘,1578.20)
insert into 顾客记录 values(‘章静‘,‘成都人民南路一段4号‘,2000.00)
insert into 顾客记录 values(‘李四‘,‘成都双桥子10号‘,980.00)
insert into 顾客记录 values(‘张洋‘,‘成都洞子口130号‘,450.00)
insert into 顾客记录 values(‘舒雨‘,‘成都春熙路2号‘,58.00)
insert into 顾客记录 values(‘李影‘,‘重庆解放碑130号‘,-200.00)
insert into 顾客记录 values(‘舒红‘,‘成都春熙路8号‘,-80.00)
create table 订单记录
(订单号 char(10) not null,
订单发出日期 date,
顾客姓名 nvarchar(10)
)
insert into 订单记录 values(‘0024‘,‘01/20/1997‘,‘王红‘)
insert into 订单记录 values(‘2025‘,‘06/09/1997‘,‘章静‘)
insert into 订单记录 values(‘3026‘,‘02/28/1997‘,‘张洋‘)
insert into 订单记录 values(‘1100‘,‘04/24/1997‘,‘张洋‘)
insert into 订单记录 values(‘1000‘,‘03/25/1997‘,‘李四‘)
insert into 订单记录 values(‘1580‘,‘05/22/1997‘,‘赵一‘)
insert into 订单记录 values(‘2035‘,‘08/08/1997‘,‘舒雨‘)
insert into 订单记录 values(‘0014‘,‘09/10/1997‘,‘李影‘)
create table 订单商品记录
(订单号 char(10) not null,
商品名称 nvarchar(20),
订货数量 int
)
insert into 订单商品记录 values(‘0024‘,‘彩电‘,30)
insert into 订单商品记录 values(‘2025‘,‘鸟‘,16)
insert into 订单商品记录 values(‘3026‘,‘鸡蛋‘,500)
insert into 订单商品记录 values(‘1100‘,‘VCD‘,12)
insert into 订单商品记录 values(‘1000‘,‘VCD‘,1000)
insert into 订单商品记录 values(‘1580‘,‘收录机‘,22)
insert into 订单商品记录 values(‘2035‘,‘随身听‘,50)
insert into 订单商品记录 values(‘0014‘,‘音箱‘,5)
--写出下列SQL语句
--1、找出余额1000~2000元的之间的顾客的信息。
select * from 顾客记录 where 顾客余额 between 1000 and 2000
--2、找出没有余额的顾客的姓名及地址。
select 顾客姓名,地址 from 顾客记录 where 顾客余额<=0
--3、找出查询住在成都地区的顾客。
select * from 顾客记录 where 地址 like ‘成都%‘
--4、插入供应商“超霸音响”以500元的价格提供VCD。
insert into 商品供应记录 values (‘超霸音响‘,‘VCD‘,‘500‘)
--5、找出提供商品种类少于两种的供应商。
select 商家姓名 from 商品供应记录 group up 商家姓名 having COUNT(*)<2
SELECT "栏位1",SUM("栏位2")
FROM "表格名"
GROUP BY "栏位1"
HAVING (函数条件)
请读者注意:如果被 SELECT 的只有函数栏,那就不需要 GROUP BY 子句。
--6、找出至少供应一种张洋订购了的商品的供应商。
select 商家姓名
from 商品供应记录 join 订单商品记录 on 商品供应记录.商品名称=订单商品记录.商品名称
join 订单记录 on 订单商品记录.订单号=订单记录.订单号
where 订单记录.顾客姓名=‘张洋‘
--7、将供应商为“长虹公司”提供的商品价格下调20%。
update 商品供应记录 set 商品价格=商品价格*0.8 where 商家姓名=‘长虹公司‘
--8、删除“大邑米业”的一切相关信息
delete 商品供应记录 where 商家姓名=‘大邑米业‘
--9、统计“成都”的客户人数。
select COUNT(*) as 成都客户人数 form 顾客记录 where 地址 like ‘成都%‘
--10、查询“江湖音响”总共供应了多少种物品。
select COUNT(*) as 江湖音响商品种类 from 商品供应记录 where 商家姓名=‘江湖音响‘