1. 程式人生 > >postgres前言(常用語句熟悉)

postgres前言(常用語句熟悉)

在這裡,我直接把寫的程式碼貼出來,sql語句基本差不多,稍微熟悉即可,直接看程式碼:  

----簡單查詢
create table fruits(

 f_id  char(10) NOT NULL,

 s_id INT NOT NULL,

 f_name char(255) NOT NULL,

 f_price decimal(8,2) NOT NULL,

PRIMARY KEY(f_id)

);----建立表格


------填充資料‘


insert into fruits 
values('a1',101,'apple',5.2),
('b1',102,'blackberry',10.2),
('bs1',103,'orange',11.2),
('bs2',105,'melon',8.2),
('t1',102,'banana',10.3),
('t2',102,'grape',5.3),
('o1',103,'coconut',9.2),
('c0',101,'cherry',3.2),
('a2',103,'apricot',2.2),
('l2',104,'lemon',6.4),
('b2',104,'berry',7.6);



---查詢所有資料
select * from fruits;

---查詢單價大於5的水果
select * from fruits where f_price>5;
---查詢單價位於(2,10)
select * from fruits where f_price between 2 and 10;

---order by排序(降序)
select * from fruits order by f_price desc;


----group by分組

select s_id,count(*) as total from fruits group by s_id;

---having 過濾分組------HAVING子句與GROUP BY子句組合使用,用於選擇函式結果滿足某些條件的特定行

select s_id ,COUNT(f_name) from fruits group by S_id having count(f_name)>1;

-----having關鍵字與where關鍵字都是用來過濾資料,那麼兩者有什麼區別呢?
----其中重要的一點就是having是用在資料分組之後進行過濾選擇分組,而where在分組前進行
---用來選擇資料,另外where 排除記錄不在包括在分組中。


---limit限制查詢結果的數量,select所有行,可能是表中的所有行,如果僅僅需要發返回第行或者
-----前幾行,使用limit關鍵字,

select * from fruits limit 4;----返回前四行


select * from fruits limit 3 offset 4;---offset表示從哪一行之後開始顯示,這裡表示從第五行開始
---顯示,顯示3行



----count函式(返回某列的總數)
select count(s_id) as total from fruits;

----sum求和函式,制定某列進行求和

select sum(f_price) as totalPrice from fruits;

----avg平均值函式,求某一列的平均值

select avg(f_price) as totalPrice from fruits;


----連線查詢

----建立suppliers表格

create table supplies(
s_id INT PRIMARY KEY,

s_name varchar(50) NOT NULL,

s_city varchar(50) NOT NULL

);

--插入資料

insert into supplies
values(101,'京東','江蘇'),
(102,'天貓','北京'),
(103,'蘇寧','北京'),
(104,'餓了麼','鄭州'),
(105,'美團','杭州'),
(106,'支付寶','上海');


----內連結查詢(inner join )比較表之間的資料

select supplies.s_id,s_name ,f_name,f_price from fruits,supplies where fruits.s_id=supplies.s_id;

----supplies和ruits通過s_id聯絡到一塊去

----inner join ....on

select supplies.s_id,s_name ,f_name,f_price from fruits inner join supplies on fruits.s_id=supplies.s_id;

---這裡的連線查詢,兩個表的關係通過inner join 指定,在使用這種語法時候連線條件
---要使用on子句給出不是where,on和where後面的限定條件一樣