SQL Server基本使用示例三

    xiaoxiao2021-03-25  87

    create database Saijie use Saijie create table goods1( 商品编号 int primary key identity(1,1),–主键,自增 商品名称 varchar(20) unique, –唯一键 商品价格 decimal(5,1) check(商品价格>0),

    ); –drop table member create table member( 会员编号 int primary key identity(100,1), 会员姓名 varchar(20), 性别 varchar(4) default(‘女’) ); –drop table orders create table orders( 订单编号 int primary key identity(0000000,1), 会员编号 int foreign key references member(会员编号), 商品编号 int foreign key references goods1(商品编号), 下单时间 smalldatetime, 数量 int );

    insert into goods1 values(‘棒棒糖’,0.5); insert into goods1 values(‘奶茶’,1.0); insert into goods1 values(‘可口可乐’,3.5); insert into goods1 values(‘雪碧’,3.0); insert into goods1 values(‘怡宝’,2.0); insert into goods1 values(‘铅笔’,1.0); insert into goods1 values(‘酸奶’,3.5); insert into goods1 values(‘啤酒’,3.0); insert into goods1 values(‘纸巾(袋装)’,1.0); insert into goods1 values(‘纸巾(卷)’,3.0); insert into goods1 values(‘信纸’,2.0); insert into goods1 values(‘水性笔’,3.5); insert into goods1 values(‘橡皮擦’,1.0);

    select * from goods1

    insert into member values(‘文雅’,’女’); insert into member values(‘李双龙’,’男’); insert into member values(‘贺志玉’,’女’); insert into member values(‘黄成’,’男’); insert into member values(‘蔡文鹏’,’男’); insert into member values(‘王艳芳’,’女’);

    select * from member

    insert into orders values (100,1,getdate(),12); insert into orders values (102,1,getdate()-1,1); insert into orders values (100,2,getdate()+1,12); insert into orders values (102,4,getdate()-1,1); insert into orders values (100,7,getdate(),12); insert into orders values (101,10,getdate(),4); insert into orders values (103,9,getdate(),9); insert into orders values (105,6,getdate()-1,17);

    select * from orders ;

    –多表查询 –1. 交叉查询:查询原理:将A表,B表中d数据相互交叉组合,一共有M*N种结合结果。 –1.1 隐式交叉查询: select goods1.商品编号, 商品名称, 商品价格, 数量,下单时间 from goods1,orders where 会员编号=100;

    --1.2 显式交叉查询

    select goods1.商品编号,商品名称,商品价格,数量,下单时间 from goods1 cross join orders;

    –2. 内链接查询:查询原理:将A表,B表中的数据根据某种条件链接起来, –将符合条件的数据查询显示 –2.1 隐式内链接查询 select 会员编号 ,goods1.商品编号,商品名称,商品价格,数量,下单时间 from goods1,orders where goods1.商品编号=orders.商品编号 and 会员编号=101; –2.2 显式内链接查询 select goods1.商品编号, 商品名称,商品价格,数量,下单时间 from goods1 inner join orders on goods1.商品编号=orders.商品编号 where 会员编号=102;

    –左链接查询:查询原理:以左边的表为主,右边的表为辅,将左表和右边中的数据根据某种条件链接起来, –将符合条件的数据查询显示。 select goods1.商品编号, 商品名称,商品价格,数量,下单时间 from goods1 left join orders on goods1.商品编号=orders.商品编号 where 会员编号=103;

    –查询销售额占前两位的商品编号,名称及销售额 select top 2 goods1.商品编号,商品名称,sum(商品价格*数量) as 消费总额 from goods1 inner join orders on goods1.商品编号=orders.商品编号 group by goods1.商品编号 ,商品名称 order by 消费总额 desc;

    –查询会员单次消费的总额 select 会员编号,sum(商品价格*数量) as 消费总额 from goods1 inner join orders on goods1.商品编号=orders.商品编号 group by 商品名称 , 会员编号 ;

    –查询会员消费的总额 select 会员编号,sum(商品价格*数量) as 消费总额 from goods1 inner join orders on goods1.商品编号=orders.商品编号 group by 会员编号 ;

    –查询最近两天天销售额占前两位的商品编号,名称及销售额 select top 2 goods1.商品编号,商品名称,sum(商品价格*数量) as 消费总额 from goods1 inner join orders on goods1.商品编号=orders.商品编号 where 下单时间 between GETDATE()-2 and GETDATE() group by goods1.商品编号,商品名称 order by 消费总额 desc;

    –查询如下信息: /* 1.查询某人的消费总额 */ select sum(商品价格*数量) as 消费总额 from goods1 left join orders on goods1.商品编号=orders.商品编号 where 会员编号=101;

    /* 2.查询每个人的消费总额,按照会员编号排序 */ select 会员编号,sum(商品价格*数量) as 消费总额 from goods1 inner join orders on goods1.商品编号=orders.商品编号 group by 会员编号 ;

    /* 3.查询某个时间段的消费总额 */ select 会员编号,sum(商品价格*数量) as 消费总额 from goods1 inner join orders on goods1.商品编号=orders.商品编号 where 下单时间 between GETDATE()-2 and GETDATE() group by 会员编号 order by 消费总额 desc;

    /* 4.查询某人购买次数最多的商品名称 */ select 商品名称, max(数量) as 数量 from goods1 left join orders on goods1.商品编号=orders.商品编号 where 会员编号=101 group by 商品名称;

    /* 5.查询某个商品的销售额 */ select 商品名称,sum(商品价格*数量) as 销售额 from goods1 left join orders on goods1.商品编号=orders.商品编号 where goods1.商品编号=10 group by 商品名称;

    /* 6.查询每个商品的销售额,按照商品销售额排序,商品编号排序 */ select goods1.商品编号 ,商品名称, sum(商品价格*数量) as 销售额 from goods1 left join orders on goods1.商品编号=orders.商品编号 group by goods1.商品编号, 商品名称 order by 销售额 desc ,goods1.商品编号 asc ;

    转载请注明原文地址: https://ju.6miu.com/read-24913.html

    最新回复(0)