SQL Server基本使用示例三

2021-07-28 06:29:33 字數 4711 閱讀 2785

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 ;

awk程式設計基本使用示例

對於每一行,如果第三列大於0,則列印第一列,第二列 第三列的值 awk 3 0 file1 file2 f指定執行程式的檔案 awk f programfile inputfile 列印整行輸入 awk 或者 awk nr當前行數,nf當前行的列數,下面這個 是列印當前行的列數,第一列和最後一列 a...

keras基本使用示例一

初步了解了tensorflow以後,發現了基於tensorflow的非常簡潔的深度學習框架keras,只需要短短幾行 就可以編寫網路模型 下面是示例一,最簡單的使用例子,採用最基本的序貫模型 import keras from keras.models import sequential from ...

Sql Server分組查詢示例

create table guest info guestid intprimary key,guestname varchar 50 birthday datetime create table or info order id intidentity 1,1 primary key,guesti...