postgres前言(常用語句熟悉)
阿新 • • 發佈:2018-12-12
在這裡,我直接把寫的程式碼貼出來,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後面的限定條件一樣