sql 面试题
来源:互联网 发布:数控车床车圆球编程 编辑:程序博客网 时间:2024/06/07 18:32
sql 面试题
原文连接:http://www.itemperor.com/a/SQL/75.html
t1_goods(商品表 ) goods_id name price
t1_sale(销售表 ) sale_id goods_id num
创表语句:
create table t1_goods
(
goods_id varchar(10),
name varchar(10),
price number
);
alter table t1_goods add constraint PK_t1_goods primary key ( GOODS_ID);
comment on column t1_goods.goods_id is '商品id';
comment on column t1_goods.name is '商品名称';
comment on column t1_goods.price is '商品价格';
t1_sale(销售表 ) sale_id goods_id num
创表语句:
create table t1_goods
(
goods_id varchar(10),
name varchar(10),
price number
);
alter table t1_goods add constraint PK_t1_goods primary key ( GOODS_ID);
comment on column t1_goods.goods_id is '商品id';
comment on column t1_goods.name is '商品名称';
comment on column t1_goods.price is '商品价格';
insert into t1_goods values('1','软面抄',3.6);
insert into t1_goods values('2','水性笔',1);
insert into t1_goods values('3','墨水',3.5);
insert into t1_goods values('4','尺子',2);
insert into t1_goods values('2','水性笔',1);
insert into t1_goods values('3','墨水',3.5);
insert into t1_goods values('4','尺子',2);
create table t1_sale
(
sale_id varchar(10),
goods_id varchar(10),
num number
);
alter table t1_sale add constraint PK_T1_SALE primary key (SALE_ID, GOODS_ID);
comment on column T1_SALE.SALE_ID is '销售id';
comment on column T1_SALE.GOODS_ID is '商品id';
comment on column T1_SALE.NUM is '销售数量';
(
sale_id varchar(10),
goods_id varchar(10),
num number
);
alter table t1_sale add constraint PK_T1_SALE primary key (SALE_ID, GOODS_ID);
comment on column T1_SALE.SALE_ID is '销售id';
comment on column T1_SALE.GOODS_ID is '商品id';
comment on column T1_SALE.NUM is '销售数量';
insert into t1_sale values('S0001','1',10);
insert into t1_sale values('S0002','2',2);
insert into t1_sale values('S0003','3',30);
insert into t1_sale values('S0004','3',24);
-----------------------------------------------------------------------------------------------------------------------
--1 查询商品表有多少条数据
select count(*) from t1_goods;
--2 查询商品表 前10 条数据
select top * from t1_goods; -- sqlserver 写法
select * from t1_goods where rownum<=10;-- oracle 写法
select * from t1_goods limit 10;-- mysql 写法
--3 销售总金额
select sum(a.price*b.num) from t1_goods a,t1_sale b where a.GOODS_ID = b.GOODS_ID
--4 销售每笔单价平均费用
select sum(a.price*b.num)/count(*) from t1_goods a,t1_sale b where a.GOODS_ID = b.GOODS_ID
或者
select avg(a.price*b.num) from t1_goods a,t1_sale b where a.GOODS_ID = b.GOODS_ID
--5 备份商品表 到一张新表(t1_test)
create table t1_test as select * from t1_goods --(oracle 写法)
select * into t1_test from t1_goods --(sqlservr 写法)
--6 显示销售表按数量排序
select * from t1_sale order by NUM
--7 查询商品名称为墨水的销售情况
select * from t1_sale where GOODS_ID ='3'
--8 销售总额金额最大物品
select * from t1_sale where GOODS_ID
=(select GOODS_ID from (
select b.GOODS_ID, sum(a.price*b.num)
from t1_goods a,t1_sale b where a.GOODS_ID = b.GOODS_ID group by b.GOODS_ID order by sum(a.price*b.num) asc ) where rownum=1 )
--9 销售数量最多的 物品
select * from t1_sale where goods_id =
( select goods_id from
( select goods_id ,sum(num) sl from t1_sale a group by goods_id order by sum(num) desc ) where rownum=1)
insert into t1_sale values('S0002','2',2);
insert into t1_sale values('S0003','3',30);
insert into t1_sale values('S0004','3',24);
-----------------------------------------------------------------------------------------------------------------------
--1 查询商品表有多少条数据
select count(*) from t1_goods;
--2 查询商品表 前10 条数据
select top * from t1_goods; -- sqlserver 写法
select * from t1_goods where rownum<=10;-- oracle 写法
select * from t1_goods limit 10;-- mysql 写法
--3 销售总金额
select sum(a.price*b.num) from t1_goods a,t1_sale b where a.GOODS_ID = b.GOODS_ID
--4 销售每笔单价平均费用
select sum(a.price*b.num)/count(*) from t1_goods a,t1_sale b where a.GOODS_ID = b.GOODS_ID
或者
select avg(a.price*b.num) from t1_goods a,t1_sale b where a.GOODS_ID = b.GOODS_ID
--5 备份商品表 到一张新表(t1_test)
create table t1_test as select * from t1_goods --(oracle 写法)
select * into t1_test from t1_goods --(sqlservr 写法)
--6 显示销售表按数量排序
select * from t1_sale order by NUM
--7 查询商品名称为墨水的销售情况
select * from t1_sale where GOODS_ID ='3'
--8 销售总额金额最大物品
select * from t1_sale where GOODS_ID
=(select GOODS_ID from (
select b.GOODS_ID, sum(a.price*b.num)
from t1_goods a,t1_sale b where a.GOODS_ID = b.GOODS_ID group by b.GOODS_ID order by sum(a.price*b.num) asc ) where rownum=1 )
--9 销售数量最多的 物品
select * from t1_sale where goods_id =
( select goods_id from
( select goods_id ,sum(num) sl from t1_sale a group by goods_id order by sum(num) desc ) where rownum=1)
--10 每种商品的 销售数量和总额
select b.GOODS_ID ,a.name, sum(b.num),sum(a.price*b.num)
from t1_goods a,t1_sale b where a.GOODS_ID = b.GOODS_ID group by a.name, b.GOODS_ID
select b.GOODS_ID ,a.name, sum(b.num),sum(a.price*b.num)
from t1_goods a,t1_sale b where a.GOODS_ID = b.GOODS_ID group by a.name, b.GOODS_ID
阅读全文
0 0
- 一道sql面试题
- SQL Server面试题
- sql面试题(转载)
- 一道sql面试题
- sql 2005 面试题
- 常见SQL面试题
- SQL面试题 (一)
- SQL面试题
- SQL面试题
- SQL 面试题
- 数据库sql面试题
- 经典SQL面试题
- SQL面试题
- sql面试题
- Sql常见面试题
- 一个sql面试题
- sql面试题
- 一道SQL面试题
- Xcode 9 上传ipa包异常
- 我热爱编程,但厌恶这个行业
- 轮播图(1)
- 解决RecycleView嵌套RecycleView滑动卡顿的问题
- Maven镜像更换为阿里云中央仓库
- sql 面试题
- 2017 在zrx踩过的坑
- 个人封装的工具类
- Android网络框架
- 编写ORM框架
- 哈理工oj 1913 小乐乐要下山 【数塔 + 打印路径】
- 前后端模板冲突问题(留言本)
- u-boot里怎么设置mac地址,mac地址从EEPROM里读取
- JAVA学习笔记18——MyBatis框架第一章