Kabla ya kuendelea na somo, kwanza nataka kukufundisha kitu kinachoitwa alias. kwenye database hii keyword ina maana unakwenda kubadili jina la table ama database temporary yaani sio permanent. tulishatumia hii keyword hapo juu. hapa nitakupa ,ifano zaidi.

 

Tebo yetu ina column 3 ambazo ni id, jina, alama. Sasa kwa sababu za kiusalama tunataka column jina na alama tuzipe majina ya utani ili mtu mwingine asijuwe jina halisi la hizo column. kwa nini ni muhimu? ni kwa sababu hacker anaweza kufanya uharibifu kwa haraka endapo atalijuwa jina halisi la databae ama column.

 

Hivyo column id  tutatiita, column jina  tutaiita name na column alama tutaiita marks. Kwa kutumia alias tunaweza kufanya hivyo. kwanza utaweka jina halisi likifuatiwa na keyword as ikifuatiwa na jina la utani ama alias .

Mfano.

 

SELECT id as NO, jina as name, alama as marks FROM `majibu` 

 

Utaona hapo column zetu zimepata majina mapya. Sasa unaweza kutumia majina hayo kwenye code zako za PHP kwa usalama zaidi wa project yako.

 

Sasa turudi kwenye somo letu la kutafuta rank ama position. Ili uweze kutafuta rank zipo njia nyingi ila hapa tutatumia function ya RANK() OVER () katika somo linalofuata tutajifunza kuhusu function kwenye sql. hivyo hapa elewa kwanza functio hii tunayokwend akuitumia.

 

Ndani ya function hii tutakwenda ku order by hapa utachaguwa hiyo position yako ama rank unataka kuangalia vigezo gani. Kwa mfano hapo tutaangalia kmwenye marks nyingi zaidi ndiye wa kwanza, hivyo  itatubidi ku oder by marks ila tutazipanga kutoka kubwa kuja ndogo yaani desc hivyo function yetu itasomeka hivi rank over(order by marks desc) baada ya hapo utaweka alias na kuweka jina la hiyo column yenye rank, kwa mfano hapo tutaiita position rank over(order by marks desc) as position

 

SELECT id as NO, jina as name, alama as marks, RANK() OVER (ORDER BY marks DESC) as POSITION FROM `majibu`;

Mpaka kufika hapo sasa tunamjuwa mwanafunzi wa kwanza hadi wa mwisho. Pia kama watakuwa wamefungana wote watachukuwa namba moja. angalia hapo chini nimeongeza mwanafunzo mwingine anaitwa kasimu na amepata 32 sawa na Halima. wote utaona wamechukuwa namba 2

 

Mpaka kufika hapa somo letu imekwisha. Sasa nataka tuchanganye na code za somo lililopita ili kuweka na grade za kila mwanafunzi.

SELECT id as NO, jina as name, alama as marks, 

CASE 

     WHEN alama > 40 THEN 'A'

     WHEN alama > 30 AND alama <41 THEN 'B'

     WHEN alama > 20 AND alama < 31 THEN 'C'

     WHEN alama > 10 AND alama < 20 THEN 'D'

     ELSE 'F'

END as GRADE,

RANK() OVER (ORDER BY marks DESC) as POSITION,

CASE 

     WHEN alama > 40 THEN 'Vizuri sana'

     WHEN alama > 30 AND alama <41 THEN 'vizuri'

     WHEN alama > 20 AND alama < 31 THEN 'Wastani'

     WHEN alama > 10 AND alama < 20 THEN 'Dahifu'

     ELSE 'Mbaya'

END as Maoni

FROM `majibu`;

Mwisho:

Katika somo lijalo tutakwend akujifunza baadhi ya funcion kwenye sql ili kuboresha zaidi project yetu ya matokeo.