structured - yolaajlahasani.yolasite.com/resources/sql urdheresat.pdf · dhe manipulimin me...

38
Valon Hoti IT Software Developer Prishtine – 2001,2002 Verzioni : 1.0 Structured Query Language DRAFT 1.1 – ne shqyrtim 15.Janar.2002

Upload: others

Post on 05-Jan-2020

24 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Valon Hoti IT Software Developer Prishtine – 2001,2002 Verzioni : 1.0

Structured Query Language DRAFT 1.1 – ne shqyrtim 15.Janar.2002

Page 2: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Index DRAFT 1.1

Valon Hoti

00 - Permbajtja 01 - Hyrja 02 - SELECT 03 - WHERE 04 - INSERT INTO 05 - UPDATE 06 - ORDERED BY 07 - AND & OR 08 - BETWEEN .. AND 09 - Aliases 10 - JOIN 11 - CREATE 12 - ALTER 13 - Agregate Functions 14 - GROUP BY 15 - SELECT INTO

Page 3: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

SQL Hapat Themelore

SQL Hyrje Pershkrimi se cka eshte SQL dhe si mund te perdoret

SQL SELECT si te perdoret komanda SELECT per selektimin e te dhenave nga tabelat ne SQL.

SQL WHERE Si te perdoret klauzula WHERE per percaktimin e kriteriumeve ne tabele

SQL INSERT INTO Si te perdoret komanda INSERT INTO qe te vendosen rreshtat e reja ne tabel

SQL UPDATE Si te perdoret komanda UPDATE per te ndrruar shenimet ose rreshtin ne tabel.

SQL DELETE How to use the DELETE statement to delete rows in a table.

SQL Hapat e avancuara

SQL ORDER BY Si te perdoret komanda ORDER BY te cilat e bejne renditjen sipas nje definicionit te caktuar

SQL AND & OR Si te perdoren AND dhe OR ti therrasin dy a me shume kriteriume ne komanden WHERE .

SQL BETWEEN...AND Si te perdoret BETWEEN....AND per te gjetur shenimet e caktuar ne nje rang.

SQL Aliases Si te perdoren aliaset per kolona dhe tabela

SQL JOIN Si te selektohen shenimet nga me shume se nje tabel.

SQL CREATE Si te krijohen bazat e te dhenave ,tabelat si dhe si te fshihen ato.

SQL ALTER TABLE Si te perdoret komanda ALTER TABLE per te shtuar ose larguar kolonat ne nje table ku ato ekzistojn

SQL Functions Si te perdoren funksionet e ndertuara ne SQL.

SQL GROUP BY Si te perdoret funksioni GROUP BY ne SQL.

SQL SELECT INTO

Si te perdoret komanda SELECT INTO qe te krijohen kopjet reserve te tabelave

Page 4: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

SQL eshte nje gjuhe standarde programuese e kompjutereve per qasje dhe manipulim me bazat e te dhenave

Cka eshte SQL?

• SQL rrjedh Structured Query Language • SQL lejon qe te ju qaseni bazes se te dhenave • SQL eshte nje standard I gjuheve te kompjutereve - ANSI • SQL mund te I ekzukutoj pyetesoret e bazave te shenimeve • SQL mund te I lexoj shenimet nga bazat e te dhenave • SQL mund te vendos rekorde te reja ne bazen e te dhenave • SQL mund te I fshij te rekordet nga baza e te dhenave • SQL mund te ri-ndryshoj te dhenat qe jan ne bazat e te dhenave • SQL eshte shume e lehte per t’u mesuar

SQL eshte nje Standard - POR....

SQL eshte nje ANSI (American National Standards Institute) standard I gjuheve kopmjuterike per qasjen dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve ne bazat e te dhenave. SQL punon me bazat e te dhenave sikurs te perogrameve siq jan MS Access, DB2, Informix, MS SQL Server, Oracle, Sybase, e tjera.

Fatkeqesisht, jane disa verzionet te ndryshme te gjuhes SQL, por per te qen kompatibil me standardin ANSI, ata duhet te perkrahin fjalet njejta te rezervuara per SQL siq jan SELECT, UPDATE, DELETE, INSERT, WHERE, edhe te tjera.

Verejtje: Shume programe te baza te dhenave SQL gjithashtu kan ekstenzionet e tyre prioritare si shtojca ne standardin e SQL.

SQL – Tabelat e bazave te dhenave

Nje baze e te dhenave shpesh permban 1 ose me shume tabela. Secila table identifikohet me emrin e tij(p.sh.. "Personet" or "Porosit"). Tabelat permbajne rekorde(reshta) me shenime.

Ketu eshte nje shembull tabela qe quhet "Personet"

Emri Mbiemri Adresa Qyteti

Valon Hoti 7 Shtatori Mitrovice

Gzim Ademi Shipol Mitrovice

Bajram Fejza Arsim Jashari Prishtine

Tabela siq shihet permban tre rekorde (nje per secilin person) dhe kater kolona (Mbiemri, Emri, Adresa, dhe Qyteti).

Page 5: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

SQL Pytesoret

Me SQL pytesoret,ne mund a te arrijme deri te rezultatet e deshiruar te cilat na nevojiten.

Pytesori si kjo:

SELECT Mbiemri FROM Personet

Na kthen rezultatin si kjo qe vijon:

Mbiemri

Hoti

Ademi

Fejza

Verejtje: Disa sisteme te bazave te dhenave kerkojne qe ne fund te komandave te ju vendoset presja ose pikepresja.Ne kete tutorial nuk kemi vendosur presje ose pikepresje.

SQL - Data Manipulation Language (DML)-Gjuha per manipulimin me te dhenave

SQL (Structured Query Language) eshte nje sintakse per ekzukutimin e pyetesoreve. Por SQL gjuhet permbajne sintaksen per ndrrim, vendosje, dhe fshirje te recordeve.

Keto komanda se bashku e formojne “Data Manipulation Language (DML)” pjese e SQL

SELECT – ekstrakton te dhenat nga tabela e bazave te dhenave UPDATE – ndryshon te dhenat ne tabelat e bazave te dhenave DELETE – fshin te dhenat nga tabelat ne baza te dhenave INSERT INTO – vendos te dhena te reja ne tabela te bazave te dhenave

SQL Data Definition Language (DDL) – Gjuha per definimin e shenimeve

“Data Definition Language (DDL)” eshte pjese e SQL e cila lejon tabelat e bazes se te dhenave te jene te krijuara apo te fshira. Ne gjithashtu munde te definojme indekset(qeleset), te cilat veqojn lidhjen ne mes te tabelave si dhe imponojne permbajtjen ne mes tabelave

Komandat kryesore qe me shumti nevojiten ne DDL jane keto SQL komanda:

CREATE TABLE – krijon nje tabele te re ne bazen e te dhenave ALTER TABLE - nderprerjet (per ndryshime) tabelave ne bazen e te dhenave DROP TABLE – fshin tabelen nga baza e te dhenave CREATE INDEX – krijon nje indeks (qelesin kerkues) DROP INDEX – fshin indeksin

Page 6: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Komanda - SELECT

Komanda SELECT perdoret per te I selektuar shenimet ne tabele. Rezultati tabular eshte I ruajtur ne tabelat rezultuese (quhet pjesa-rezultat).

Sintaksa:

SELECT emrin_e_kolenes-ave FROM emri_tabeles

Selektimi i disa kolonave

Per te I selektuar kolonat me emra "Mbiemri" dhe "Emri", perdoret komanda SELECT sikurse qe eshte kjo si vijon:

SELECT Mbiemri,Emri FROM Personet

Tabela "Personet"

Mbiemri Emri Adresa Qyteti

Hoti Valon 7 Shtatori no.12 Mitrovice

Ademi Gzim Shipol shpija e dyte Mitrovice

Hasani Mimoza 2 Korriku no.37 Prishtine

Resulton ne tabelen e re siq eshte kjo me poshte

Mbiemri Emri

Hoti Valon

Ademi Gzim

Hasani Mimoza

Selektimi I tere kolonave

Per te selektuar tere kolonat nga tabela "Personet" perdorim simbolin * ne vend te emrave te kolonave siq vijon me poshte :

SELECT * FROM Personet

Resultati eshte siq vijon

Mbiemri Emri Adresa Qyteti

Hoti Valon 7 Shtatori no.12 Mitrovice

Ademi Gzim Shipol shpija e dyte Mitrovice

Hasani Mimoza 2 Korriku no.37 Prishtine

Page 7: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Rezultati rang

Rezultati prej SQL pyetesoreve eshte I ruajtur ne rang-rezultat. Shumica e sistemeve softuerike te bazave te dhenave lejon navigimin neper rang-rezultate me funksionet te programuara si p.sh.: Move-To-First-Record(shko ne fillim te rekordit te pare), Get-Record-Content(lexo permbajtjen e rekordit), Move-To-Next-Record(shko te tjetri record me radhe), etj.

Per te mesuar rreth ketyre funksioneve se si thirren nga gjuhet programuese e kemi ne tutoriale te programimit.

Pikepresja ne komandat e SQL ?

Pikepresja eshte menyra standarde per te ndare secilin komande te SQL ne sistemet e bazave te dhenave duke lejuar ne ate menyre te ekzekutohen me shume se nje komande e SQL ne nje renditje te nje pas njeshme ne server.

Disa mesime perfundojme me pikepresje te nje pas njeshme te komandave te SQL.

A eshte e nevojshme a jo? Nese perdorim bazat te dhenave sikurse MS Access apo Ms Sql Server nuk ka nevoj per secilen pikepresje ne secilen komand te SQL , por disa baza te dhenave e shtytin me force qe te perdoret ajo gjithesesi.

Komanda SELECT DISTINCT

Fjala e rezervuar DISTINCT perdoret per te kthyer vetem vlerat qe ndryshojne.

Me komanden SELECT I kthen informacionet qe I ka tabela . Por nese deshirojm te selektojme vetem tabelat kur prej tyre presim rezultat te filtruar me vetem nga nje vlere te ndryshme ?

Rezultati eshte vetem vlerat e pa perseritura

Me SQL, krejt cka nevojitet eshte te shtojme fjalen e rezervuar DISTINCT pas komandes SELECT :

Sintaksa:

SELECT DISTINCT emri_kolones-ave FROM emri_tabeles

Perdorimi I fjales se rezervuar DISTINCT

Per te selektuar te gjitha vlerat nga tabela qe quhet “Kompanite” ne do te perdorim komanden SELECT ne kete menyre:

SELECT Kompanite FROM Porosite

Tabela Porosite

Page 8: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Kompanite NumriPorosise

IT Department 3412

BRK 2312

IT Department 4678

Shtepia Mallrave Lux 6798

Rezultati eshte :

Kompanite

IT Department

BRK

IT Department

Shtepia Mallrave Lux

Vereni kete se "IT Department" eshte listuar dy here :

Keshtu qe te selektohen vetem vlera e ndryshme prej kolones "Kompanite" ne do te perdorim komanden SELECT DISTINCT siq eshte kjo qe vijon :

SELECT DISTINCT Kompanite FROM Porosite

Rezultati do te jete:

Kompanite

IT Department

BRK

Shtepia Mallrave Lux Tash e shohim se "IT Department" eshte listuar vetem njehere

Page 9: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Klauzula WHERE per te caktuar kriterin gjate selektimit

Klauzula WHERE

Per te selektuar shenimet nga baza e te dhenave nga nje tabele ne baze te nje kushti te caktuar ,atehere e shtojm klauzulen WHERE gjate perdorimit te komandes SELECT .

Sintaksa

SELECT emri_kolones FROM emri_tabeles WHERE emri_kolones operatori vlera

Me klauzulen WHERE ,mund te perdoren keto operator

Operatori Pershkrimi

= Barbarte

<> Jo Barabarte

> Me e madhe se

< Me e vogel se

>= Me e madhe ose e barabart

<= Me e vogel ose e barabart

BETWEEN Ne mes te rangut

LIKE Sipas nje kushti te per afert

Verejte: Ne disa verzione te SQL operatori <> mund te shkruhet si !=

Perdorimi I klauzules WHERE

Per te selektuar personet te cilet jetojn ne qytetin "Mitrovica", ne ja shtojme klauzulen WHERE gjate perdorimit te komandes SELECT :

SELECT * FROM Personet WHERE Qyteti='Mitrovice'

Tabela “Personet"

Mbiemri Emri Adresa Qyteti Viti

Hoti Valon 7 Shtatori no.12 Mitrovice 1951

Ademi Gzim Shipol no.2 Mitrovice 1978

Doroci Adnan Shupkofc no.1 Prishtine 1980

Krasniqi Ismajl Xhamia Haxhi Veselit no.1 Prishtine 1960

Page 10: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Rezultati do te jete

Mbiemri Emri Adresa Qyteti Viti

Hoti Valon 7 Shtatori no.12 Mitrovice 1951

Ademi Gzim Shipol no.2 Mitrovice 1978

Perdorimi I thojzave

Vereni se ne kemi perdorur thojza te thjeshta te nje fishte ‘’.

SQL per vlerat text perdore thojza te thjeshta (shume sisteme te bazave te dhenave mund te perdorin edhe thojza te dyfishta “). Ndersa vlerat numerike nuk kan nevoje te futen ne thojza.

Per vlerat text:

Mire : SELECT * FROM Personet WHERE Emri='Valon' Keq: SELECT * FROM Personet WHERE Emri=Valon

Per vlera numerike:

Mire: SELECT * FROM Personet WHERE Viti>1965 Keq: SELECT * FROM Personet WHERE Viti>'1965'

kushti LIKE

Kushti LIKE perdoret per te kerkuar dicka te perafert .

Sintaksa

SELECT emri_kolones FROM emri_tabeles WHERE emri_kolones LIKE perafersishte

Shenja "%" mund te perdoret si gjoker (per shenjat qe mungojn perpara apo pas shenimit te perafert)

Page 11: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

perdorimi LIKE

Perdorimi i kesaj komandet kthen si rezulat emrat qe fillojn me 'O':

SELECT * FROM Personet WHERE Emri LIKE 'O%'

Perdorimi i kesaj komandet kthen si rezulat emrat qe mbarojne me 'a':

SELECT * FROM Personet WHERE Emri LIKE '%a'

Perdorimi i kesaj komandet kthen si rezulat emrat qe permbajne 'la':

SELECT * FROM Personet WHERE Emri LIKE '%la%'

Page 12: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Komanda INSERT INTO

Komanda INSERT INTO perdoret per te shtuar rreshta te reja net abele.

Sintaksa

INSERT INTO emri_tabeles VALUES (vlera1, vlera2,....)

Ju gjithesesi mund te tregoni se ku deshironi te vendosni vlerat:

INSERT INTO emri_tabeles(kolona1, kolona2,...) VALUES (vlera1, vlera2,....)

Vendosja e nje rreshti te ri

Ne tabelen "Personet" :

Mbiemri Emri Adresa Qyteti

Hoti Valon 7 Shtatori no.12 Mitrovice

Dhe nese e shenojme komanden si me poshte

INSERT INTO Personet VALUES ('Jonuzi', 'Ilir', 'Zhabari no.4', 'Mitrovice')

Do te kemi si rezultat:

Mbiemri Emri Adresa Qyteti

Hoti Valon 7 Shtatori no.12 Mitrovice

Jonuzi Ilir Zhabari no.4 Mitrovice

Page 13: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Vendosja e shenimit ne kolone te caktuar

Tabela "Personet" :

Mbiemri Emri Adresa Qyteti

Hoti Valon 7 Shtatori no.12 Mitrovice

Jonuzi Ilir Zhabari no.4 Mitrovice

Dhe nese e shenojm komanden siq vijon :

INSERT INTO Personet (Mbiemri, Adresa) VALUES ('Arifi', 'Soliteri tjegullorja')

Do te kemi rezultat

Mbiemri Emri Adresa Qyteti

Hoti Valon 7 Shtatori no.12 Mitrovice

Jonuzi Ilir Zhabari no.4 Mitrovice

Arifi Soliteri tjegullorja

Page 14: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Komanda UPDATE

Komanda UPDATE perdoret per te modifikuar shenimet

Sintaksa

UPDATE emri_tabels SET emri_kolones = vlera_re WHERE emri_kolones = vlera_caktuar

Tabela “Personet”:

Mbiemri Emri Adresa Qyeti

Hoti Valon 7 Shtatori no.12 Mitrovice

Arifi Soliteri tjegullorja

Modifikimi i shenimit ne kolone

Ne deshirojme te vendosim emrin e aty ku gjinedet mbiemri "Arifi":

UPDATE Personet SET Emri = 'Aferdita' WHERE Mbiemri = 'Arifi'

Rezultaton tabelen:

Mbiemri Emri Adresa Qyteti

Hoti Valon 7 Shtatori no.12 Mitrovice

Arifi Aferdita Soliteri tjegullorja

Modifikimi i disa kolonoave pernjehere

Nese deshirojme te shtojme emrin e qytetit dhe te ndrrojme emrin e adreses:

UPDATE Personet SET Adresa = 'Soliteri kalter ', Qyteti = 'Prishtine' WHERE Mbiemri = 'Arifi'

Rezultaton tabelen si vijon:

Mbiemri Emri Adresa Qyteti

Hoti Valon 7 Shtatori no.12 Mitrovice

Arifi Aferdita Soliteri kalter Prishtine

Page 15: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Komanda DELETE

Komanda Delete perdoret per te fshire rreshtin

Sintaksa

DELETE FROM emri_tabeles WHERE emri_kolones = vlera_caktuar

Tabela “Personet”:

Mbiemri Emri Adresa Qyteti

Hoti Valon 7 Shtatori no.12 Mitrovice

Milaimi Milot 2 Korriku Mitrovice

Fshirja e rreshtit

Deshirojm te fshijme rreshtin ne te cilen eshte “Milot Milaimi”:

DELETE FROM Personet WHERE Mbiemri = 'Milaimi'

Rezultati do te jete :

Mbiemri Emri Adresa Qyteti

Hoti Valon 7 Shtatori no.12 Mitrovice

Fshirja e te gjitha rreshtave ne tabele

Eshte e mundeshme te fshihen te gjitha rreshtat pa e fshire tabelen fare. Kjo do te thot qe atributet ,indekset,struktura do te jete e pa prekur:

DELETE FROM emri_tabeles ose DELETE * FROM emri_tabeles

Page 16: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Renditja perms fjale se rezervuar ORDER BY

Renditja e rreshtave

Klauzula ORDER BY perdoret per rrenditjen ose sortimin e tabeles apo me saktesisht te kolones

Porosite:

Kompanite NumriPorosise

BRK 3412

Ardi 5678

IT Department 2312

IT Department 6798

Shembull

Nese deshirojme te i paraqesim kompani te renditura sipa alfabetit:

SELECT Kompanite, NumriPorosise FROM Porosite ORDER BY Kompanite

Rezulton tabelen:

Kompanite NumriPorosise

Ardi 5678

BRK 3412

IT Department 6798

IT Department 2312

Shembull 2:

Te paraqiten Kompanite sipas renditje me alphabet dhe numrit te porosive ne renditje numerike:

SELECT Kompanite, NumriPorosise FROM Porosite ORDER BY Kompanite, NumriPorosise

Resulton tabelen qe vijon:

Kompanite NumriPorosise

Ardi 5678

BRK 3412

IT Department 2312

IT Department 6798

Page 17: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Shembull 3

Te paraqitet renditja reverze e renditjes alfabetike

SELECT Kompanite, NumriPorosise FROM Porosite ORDER BY Kompanite DESC

Rezulton tabelen:

Kompanite NumriPorosise

IT Department 6798

IT Department 2312

BRK 3412

Ardi 5678

Shembull 4

Te paraqitet renditja reverze e renditjes alfabetike dhe numerike ne rregull:

SELECT Kompanite, NumriPorosises FROM Porosite ORDER BY Kompanite DESC, NumriPorosise ASC

Rezulton tabelen:

Kompanite NumriPorosise

IT Department 2312

IT Department 6798

BRK 3412

Ardi 5678

Page 18: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Operatore AND dhe OR

AND dhe OR bashkojn dy apo me shume kushte ne klauzulen WHERE .

Operatori AND paraqet rreshta vetem nese te gjitha kushte e listimit jane te plotesuar. Ndersa operatori OR paraqet rreshtat vetem nese ndonje prej kushteve te listimit jan te plotesuar.

Tabela Origjinale (Qe perdoret si shembull)

Mbiemri Emri Adresa Qyteti

Hoti Valon 7 Shtatori no.12 Mitrovice

Ademi Gzim Shipol no.4 Mitrovice

Arifi Aferdita Soliteri Tjegullorja 8/2 Mitrovice

Jonuzi Ilir Zhabar no.4 Mitrovice

Doroci Adnan Shupkofc no.1 Mitrovice

Shembull

Perdorimi i operatorit AND per te paraqitur te gjithe personat qe e kan emrin "Adnan",si dhe qe e kan mbiemrin "Doroci":

SELECT * FROM Personet WHERE Emri='Adnan' AND Mbiemri='Doroci'

Do te na paraqitet tabela :

Mbiemri Emri Adresa Qyteti

Doroci Adnan Shupkofc no.1 Mitrovice

Page 19: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Shembull 2

Perdorimi i operatorit OR secilin person qe ka emrin "Tove", ose mbiemrin "Hoti":

SELECT * FROM Personet WHERE Emri='Adnan' OR Mbiemri='Hoti'

Rezultati:

Mbiemri Emri Adresa Qyteti

Doroci Adnan Shupkofc no.1 Mitrovice

Hoti Valon 7 Shtatori no.12 Mitrovice

Shembull

Ju gjithashtu munde ti kombinoni operatoret AND dhe OR (duke i perdorur kllapat per format komplekse te operacioneve):

SELECT * FROM Personet WHERE (Emri='Adnan' OR Emri='Valon') AND LastName='Hoti'

Rezulton:

Mbiemri Emri Adresa Qyteti

Hoti Valon 7 Shtatori no.12 Mitrovice

Page 20: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Operatoret BETWEEN ... AND

Operatoret BETWEEN ... AND selektojn nje range te shenimeve ne mes te dy vlerave te caktuara. Keto vlera mund te jene numra,tekst ,data.

SELECT emri_kolones FROM emri_tabeles WHERE emri_kolones BETWEEN vlera1 AND vlera2

Tabela origjinale qe perdoret ne shembull eshte :

Mbiemri Emri Adresa Qyteti

Hoti Valon 7 Shtatori no.12 Mitrovice

Hasani Mimoza Xhamia Haxhi Veselit no.5 Mitrovice

Siqeva Florentina Kodra Minatoreve no.4 Mitrovice

Hoxha Mit Hat Tregu Gjelbert no.5 Mitrovice

Morina Nexhat Tregu Mbyllur no.4 Mitrovice

Arifi Luljeta Tjegullorja 8/2 Mitrovice

Shembull 1

Per te I paraqitur ne menyre alfabetike personet prej(duke I perfshi edhe ata) "Hoti" dhe eksluzivisht "Hoxha", perdoren komandat e SQL siq vijojn me poshte :

SELECT * FROM Personet WHERE Mbiemri BETWEEN 'Hoti' AND 'Hoxha'

Rezulton:

Mbiemri Emri Adresa Qyteti

Hoti Valon 7 Shtatori no.12 Mitrovice

Hasani Mimoza Xhamia Haxhi Veselit no.5 Mitrovice

Siqeva Florentina Kodra Monatoreve no.4 Mitrovice

Hoxha Mit Hat Tregu Gjelbert no.5 Mitrovice

Me Rendesi! Operatoret BETWEEN...AND perdoren ne menyra te ndryshme ne bazat e te dhenave te ndryshme. Ne disa baza te dhenave personi me mbiemrin "Hoti" ose "Hoxha" nuk do te listohen (ne mes dhe vetem te selektuarat mund te paraqiten). Ne disa baza te dhenave personi me mbiemer "Hoti" ose "Hoxha" do te listohen (ne mess i dhe fushat e selektuara jane te perfshira). Ndersa ne baza e te dhenave tjera personi me mbiemer "Hoti" do te listohet, po jo edhe personi me mbiemrin "Hoxha" (ne mes dhe vetem te selektuarat duke perfshi larguar te fundit nga lista) Keshtu paraprakisht :Bazen e te dhenave tuaj se si I perdor keto BETWEEN....AND operatoret!

Page 21: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Shembull 2

Per te e paraqitur listen jasht rangut ne mes te ‘Hoti’ dhe ‘Hoxha’

SELECT * FROM Personet WHERE Mbiemri NOT BETWEEN 'Hoti' AND 'Hoxha'

Rezulton:

Mbiemri Emri Adresa Qyteti

Morina Nexhat Tregu Mbyllur no.4 Mitrovice

Arifi Luljeta Tjegullorja 8/2 Mitrovice

Page 22: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Ne SQL mund te perdorem aliaset “pseudonimet” e tabelave {te cilave mund te ju japim cfaredo emra per nga emrat e tyre origjinale}

Emri Kolones Pseudonimi

Sintaksa:

SELECT emri_kolones AS pseudonimi FROM emri_tabeles

Emri tabeles Pseudonimi

Sintaksa:

SELECT emri_kolones FROM emri_tabeles AS pseudonim

Shembull perdorimi i kolones si alias

Tabela (Personet):

Mbiemri Emri Adresa Qyteti

Doroci Adnan Shupkofc no.2 Mitrovice

Ademi Gzim Shipol no.4 Mitrovice

Arifi Aferdita Tjegullorja 8/2 Mitrovice

Si dhe keto komanda do te na japin kete rezultat

SELECT Mbiemri AS EmriFamiljar, Emri AS EmriPersonal FROM Personet

Na kthehet si rezultat tabela si me poshte:

EmriFamiljar EmriPersonal

Doroci Adnan

Ademi Gzim

Arifi Aferdita

Page 23: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Shembull perdorim i tabelave si alias

Tabela (Personet):

Mbiemri Emri Adresa Qyteti

Doroci Adnan Shupkofc no.1 Mitrovice

Ademi Gzim Shipol no.4 Mitrovice

Arifi Aferdita Tjegullorja 8/2 Mitrovice

Si dhe keto komanda te SQL

SELECT Mbiemri, Emri FROM Personet AS Puntoret

Rezultati do te jete tabela :

Tabela Puntoret:

Mbiemri Emri

Doroci Adnan

Ademi Gzim

Arifi Aferdita

Page 24: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Lidhjet dhe qelesat

Ndonjehere na nevojitet te selektojme shenimet prej dy a me shume tabela per te fituar rezultate te duhura qe na nevojitetn. Atehere ne e bejme lidhjen ne mes dy a me shume tabelave

Tabelat ne baza te dhenave mundet te kene secila relacionet e veta perms qelesit identifikues. Qelsi primar eshte nje identifikator unik net abele dhe ka per qellim te I kontrolloj dhe punoj me shenimet neper tabel pa patur nevoje per perseritjen e te gjitha shenimeve neper secilin tabele.

Ne tabelen me poshte "Puntoret" kolona "Punteori_ID" eshte qelsi, qe nenkupton qe asnje rreshte ne at tabele nuk mund te kete shenim te njejt . Puntori_ID dallon dy personet nese kane emrin e njejte.

Shikoni shembullin ne vijim dhe vereni kete:

• Kolona "Puntori_ID" eshte qelsi primar ne tabelen "Puntoret" • Kolona "Prodh_ID" eshte qelsi primar ne tabelen "Porosite" • Kolona "Puntori_ID" ne tabelen "Porosite" e perdor per tu referuar te personi ne tabelen

"Puntoret" pa i perdorur emrat e tyre

Puntoret:

Puntori_ID Emri

01 Hoti, Valon

02 Ademi,Gzim

03 Arifi,Luljeta

04 Jonuzi,Ilir

Porosite:

Prodh_ID Produket Puntori_ID

234 Printeri 01

657 Tabela 03

865 Karrige 03

Page 25: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Referimi te dy tabelat

Ne munde te i lexojme shenimet prej dy tabelave duke u referuar ne te dy tabelat , keshtu:

Shembull

Kush ,cka ka marre?

SELECT Puntoret.Emri, Porosite.Produktet FROM Puntoret, Porosite WHERE Puntoret.Puntori_ID=Porosite.Puntori_ID

Rezultati do te jete

Emri Produktet

Hoti,Valon Printeri

Arifi,Luljeta Tabela

Arifi,Luljeta Karrige

Shembull

Kush ka marre printerin?

SELECT Puntoret.Emri FROM Puntoret, Porosite WHERE Puntoret.Puntori_ID=Porosite.Puntori_ID AND Porosite.Produktet='Printeri'

Rezulton

Emri

Hoti,Valon

Page 26: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Perdorimi i fjales se rezervuar JOIN

Ose ne mund te selektojm shenimet ne dy e me shume tabela duke perdorur fjalen e rezervuar JOIN ne kete menyre:

Shembull INNER JOIN

Sintaksa

SELECT fusha1, fusha2, fusha3 FROM tabela_pare INNER JOIN tabela_dyte ON tabela_pare.fusha_kotrolluese = tabela_dyte.fusha_referuar

Kush ka porositur dhe cka kan porositur ata?

SELECT Puntoret.Emri, Porosite.Produket FROM Puntoret INNER JOIN Porosite ON Puntoret.Puntori_ID=Porosite.Puntori_ID

Fjala rezervuar INNER JOIN ka per detyre te kthej rezultatin nga tere reshtat nga te dy tabelat ku ata jane te njejta. Nese ka rreshta ne tabelen “Puntoret” te cilat nuk perputhen me tabeln “Porosite” tere ato rreshta nuk do te listohen.

Rezultati

Emri Produktet

Hoti,Valon Printeri

Arifi,Luljeta Tabela

Arifi,Luljeta Karrige

Page 27: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Shembull LEFT JOIN

Sintaksa

SELECT Puntoret.Emri, Porosite.Produket FROM Puntoret LEFT JOIN Porosite ON Puntoret.Puntori_ID=Porosite.Puntori_ID

Liston te gjithe puntoret dhe porosite e tyre – nese ndonjeri.

Fjala rezervuar LEFT JOIN te gjitha rreshtat prej tabeles (Puntoret), nese ato nuk perputhen me rreshta e tabeles (Porosite). Nese ekziston ndonje rreshte ne tabelen “Puntoret” e cila nuk perputhet me at ne tabelen “Porosite” ato do te listohen

Rezultati si vijon

Emri Produktet

Hoti,Valon Printeri

Ademi,Gzim

Arifi,Luljeta Tabele

Arifi,Luljeta Karrige

Jonuzi,Ilir

Page 28: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Shembull RIGHT JOIN

Sintaksa

SELECT Puntoret.Emri, Porosite.Produket FROM Puntoret RIGHT JOIN Porosite ON Puntoret.Puntori_ID=Porosite.Puntori_ID

Liston te gjithe porosite dhe ata qe kan marre – nese ka ndonje.

Fjala rezervuar RIGHT JOIN te gjitha rreshtat nga tabela e dyte(Porosite), vetem nese ato nuk perputhen me rreshtat e tabeles (Puntoret). Nese ka ndonje rreshte ne tabelen Porosite dhe nuk perputhet me ate ne tabelen Puntoret, ato rreshta gjithashtu do te listohen.

Rezulton tabelen

Emri Produkti

Hoti,Valon Printeri

Arifi,Luljeta Tabele

Arifi,Luljeta Karrige

Shembull

Kush e ka marr printerin?

SELECT Puntoret.Emri FROM Puntoret INNER JOIN Porosite ON Puntoret.Puntori_ID=Porosite.Puntori_ID WHERE Porosite.Produkti = 'Printer'

Rezulton

Emri

Hoti,Valon

Page 29: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Krijimi i bazes se dhenave

Per te krijuar bazat e te dhenave perdorim si me poshte:

CREATE DATABASE emri_bazes_se_te_dhenave

Krijimi i tabeles

Per te krijuar tabele perdorim si me poshte:

CREATE TABLE emri_tabeles ( kolona1 tipi_i_te_dhenave, Kolona2 tipi_i_te_dhenave, ....... )

Shembull

Ky shembull demonstron se si krijohet tabela me emrin "Personet", e cila ka kater kolona. Emrat e kolonave do te jene "Mbiemri", "Emri", "Adresa", dhe "Mosha":

CREATE TABLE Personet ( Mbiemri varchar, Emri varchar, Adresa varchar, Mosha int )

Ndersa ky shembull tregon se mund te caktoni gjatesin maksimale per secilen fushe:

CREATE TABLE Personet ( Mbiemri varchar(30), Emri varchar, Adresa varchar, Mosha int(3) )

Page 30: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Tipi I te dhenave tregon se cfare shenimesh do te mbaj kolona. Tabela si vijon tregon se cfare tipesh me se shumti perdoren ne SQL:

Tipi I te dhenave Pershkrimi

integer(madhesia) int(madhesia) smallint(madhesia) tinyint(madhesia)

Permban tipet e te dhenave integjer dhe numri ne kllapa tregon sa shifror.

decimal(madhesia,d) numeric(madhesia,d)

Tregon numrat me pike dhjetor. Sa shifror definohet ne madhesin e saj. Sa shifra pas pikes dhjetore shenohet ne "d".

char(madhesia) Tregon gjatesin fikse te stringut (mund te permbaj shkronja,numra si dhe karaktere speciale). Madhesia fikse definohet ne kllapa.

varchar(madhesia) Permban variablen e tipit string (mund te permbaj shkronja,numra si dhe karaktere speciale). Madhesia fikse definohet ne kllapa.

date(yyyymmdd) Shenon daten yyyy – viti,mm – muaji , dd – dita

Krijimi i indekseve

Indekset krijohen ne tabele per arsye qe ti gjej rreshta ne tabele shume me shpejt. Eshte e mundeshme qe te krijohen indekset ne nje a me shume kolonat te tabeles, dhe secili indeks mund te kete emerin e vet. Ata qe I perdorin nuk munde te I shohin indekset por mund te I perdorin per ta shpejtuar punen gjate punimit me pyetesoret

Verejte: Ndryshimi “freskimi” shenimve ne tabelen me indeksa merr kohe me shume se sa tabela pa indeksa, kjo eshte per arsye se ndrrimi behet ne te gjitha indekset. Keshtu , te krijohet indekset veten ne ato kolona ne te cilen do te behet kerkesat per kriteriume.

Indeksi unik

Krijimi i indekseve unike. Indeksi unik nenkupton qe dy rreshta nuk munde te kene vler te njejte.

CREATE UNIQUE INDEX emri_indeksit ON emri_tabeles (emri_kolones)

"emri_kolones" tregon se cilen kolone deshironi t’a indeksoni.

Page 31: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Indeksi thjeshte

Krijimi I nje indeksi te thjeshte. Kur perdorimi I fjales se rezervuar UNIQUE nuk eshte bere, indeksat me vlerat te perseritura jan te lejuara.

CREATE INDEX emri_indeksit ON emri_tabeles (emri_kolones)

"emri_kolones" tregon se cila kolon indeksohet.

Shembull

Krijimi i indeksit te thjesht, emertuar "PersonIndex", ne fushen Mbiemri ne tabelen Personet:

CREATE INDEX PersonIndex ON Personet (Mbiemri)

Nese deshirojm qe vlerat e indekseve te paraqiten ne forme renese “nga fundi deri ne fillim” atehere ju duhet qe te shtoni fjalen e rezervuar DESC pas emrit te kolones:

CREATE INDEX PersonIndex ON Personet (Mbiemri DESC)

Ndese dershironi te indeksioni me shume kolona atehere I ndajme kolonat me presje:

CREATE INDEX PersonIndex ON Personet (Mbiemri, Emri)

Fshirja indeksit

Ju mund te fshini indekset permes komandes DROP.

DROP INDEX emri_tabeles.emri_indeksit

Fshirja e bazes te dhenave ose tabeles

Te fshihet baza e te dhenave perdorim si me poshte:

DROP DATABASE emri_bazes_te_dhenave

Te fshihet tabela (struktura,atributete dhe indekset gjithashtu do te fshihen):

DROP TABLE emri_tabeles

Page 32: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Ndryshimi i tabeles

Komanda ALTER TABLE perdoret per shtimin apo largimin e kolonave nga tabela.

Shtimi i nje kolone: ALTER TABLE emri_tabeles ADD emri_kolones tipi_i_te_dhenave Largimi i nje kolone: ALTER TABLE emri_tabeles DROP COLUMN emri_kolones

Verejtej: Disa sisteme te baza te dhenave nuk lejojn fshirjen e kolonave ne tabelat e bazave te dhenave(DROP COLUMN emri_kolones).

Personet:

Mbiemri Emri Adresa

Hoti Valon 7 Shtatori no.12

Shembull

Te shtohet kolona me emrin "Qyteti" ne tabelen "Personet":

ALTER TABLE Person ADD Qyteti varchar(30)

Rezulton:

Mbiemri Emri Adresa Qyteti

Hoti Valon 7 Shtatori no.12

Shembull

Te largohet kolona "Adresa" nga tabela "Personet":

ALTER TABLE Personet DROP COLUMN Adresa

Rezulton:

Mbiemri Emri Qyteti

Hoti Valon

Page 33: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

SQL ka shume funksione te integruara per llogaritje e kalkulime te ndryshme

Sintaksa e funksioneve

Sintaksa e funksioneve te ndertuara ne SQL eshte:

SELECT function(emri_kolones) FROM emri_tabeles

Tipet e funksioneve

Ka disa tipe themelore te funksioneve ne SQL. Tipet themelore jane siq vijon:

• Funksionet Agregate • Funksionet Skalare

Funksionet Agregate

Funksionet Agregate punojne me vlera te kolektuara , por si rezultat e kthejne vetem nje vlere.

Verejtej: Nese perdoret me shume artikuj tjere net abele permes komandes SELECT, atehere SELECT duhe te kete klauzulen GROUP BY!!

Tabela "Personet"

Emri Mosha

Hoti,Valon 34

Beqiri,Agim 45

Dauti,Bekim 19

Page 34: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Funksionet agregate ne MS Access jane :

Function Description

AVG(emri_kolones) Kthen vleren mesatare qe gjindet ne kolone

COUNT(emri_kolones) Kthen numri e rreshtave (pa i numruar rreshtat NULL)

COUNT(*) Kthen numrin e rreshtave gjithesej sa jan ne tabele

FIRST(emri_kolones) Kthen vleren qe gjindet ne rekordin e pare te asaj kolone

LAST(emri_kolones) Kthen vleren qe gjindet ne rekordin e fundit te asaj kolone

MAX(emri_kolones) Kthen vleren me te madhe qe eshte ne at kolone

MIN(emri_kolones) Kthen vleren me te vogel qe eshte ne at kolone

STDEV(emri_kolones)

STDEVP(emri_kolones)

SUM(emri_kolones) Kthen Shumen totale qe eshte ne at kolone

VAR(emri_kolones)

VARP(emri_kolones)

Funksionet agregate ne SQL Server jane:

Funksioni Pershkrimi

AVG(emri_kolones) Kthen vleren mesatare qe gjindet ne at kolone

BINARY_CHECKSUM

CHECKSUM

CHECKSUM_AGG

COUNT(emri_kolones) Kthen numrin e rreshtave (pa i numruar rreshtat NULL)

COUN(*) Kthen numrin e rreshtave qe ka ne at tabele

COUNT(DISTINC emri_kolones) Kthen numrin nga Funksioni DISTINC ne kolone

FIRST(emri_kolones) Kthen vleren e pare te rekordit ne at kolone

LAST(emri_kolones) Kthen vleren e fundit te rekordit ne at kolone

MAX(emri_kolones) Kthen vleren maksimale qe gjindet ne at kolone

MIN(emri_kolones) Kthen vleren minimale qe gjindet ne at kolone

STDEV(emri_kolones)

STDEVP(emri_kolones)

SUM(emri_kolones) Kthen shumen totale ne ate kolone

VAR(emri_kolones)

VARP(emri_kolones)

Page 35: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Funksionet Skalare

Funksionet skalare jane funksionet qe punojn me nje vlere te caktuar, dhe kthejn rezultat bazuar nga vlera hyres.

Funksionet skalare qe perdoren ne MS Access

Funksionet Pershkrimi

UCASE(c) Fushat I kthen ne shkronja te medha

LCASE(c) Fushat I kthen ne shkronja te vogla

MID(c,start[,end]) Nxjerr karakterin e caktuar nga TEKSTI

LEN(c) Kthen gjatesin e tekstit

INSTR(c) Kthen rezultat numeric te pozites se caktuar te nje karakteri ne tekst

LEFT(c,number_of_char) Kthen pjesen e majte te ndonje teksti te kerkuar

RIGHT(c,number_of_char) Kthen pjesen e djath te ndonje teksti te kerkuar

ROUND(c,decimals) Rumbullakon numrin me pike dhjetore ne nje numer te plote

MOD(x,y) Kthen mbetjen nga rezultati i pjestimit te dy numrave

NOW() Kthen rezultat daten aktuale

FORMAT(c,format) Ndrron menyren e paraqitjes

DATEDIFF(d,date1,date2) Perdoret per kalkulimet ne diference te datave

Page 36: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Funksionet agregate (sikurse SUM) shpesh ka nevoj te ju shtohet GROUP BY funksionaliteti .

GROUP BY...

GROUP BY... eshte shtuar ne SQL sepse funksionet agregate (sikurse SUM) kthen vlera aggregate nga kolona sa here te thirret , si dhe pa funksionin GROUP BY eshte e pa mundur te gjendet shuma per secilin grup individual per vlerat e kolones.

Sintaksa e funksionit GROUP BY eshte:

SELECT emri_kolones,SUM(emri_kolones) FROM emri_tabeles GROUP BY emri_kolones

Shembull GROUP BY

Tabela "Shitjet":

Kompanite Sasia

IT Department 5500

Ardi 4500

IT Department 7100

Dhe komandat ne SQL si me poshte:

SELECT Kompanite, SUM(Sasia) FROM Shitjet

Kthen rezultat:

Kompanit SUM(Sasia)

IT Department 17100

Ardi 17100

IT Department 17100

Rezultati permbi eshte I pakuptueshem dhe nuk eshte me pjese e funksioneve agregate.Prandaj duhet te perdoret klauzula GROUP BY per te zgjedhur kete problem:

SELECT Kompanit,SUM(Sasia) FROM Shitjet GROUP BY Kompanit

Dhe si rezultat fitojm:

Kompanit SUM(Sasia)

IT Department 12600

Ardi 4500

Page 37: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

HAVING...

HAVING... i eshte shtuar SQL sepse fjala e rezervuar WHERE nuk perdoret gjate thirrjeve te funksionve agregate (sikurse SUM), si dhe pa fjalen e rezervuar HAVING... eshte e pamundur qe te thirren kushtet per rezultat.

Sintaksa per funksionin HAVING eshte:

SELECT emri_kolones,SUM(emri_kolones) FROM emri_tabeles GROUP BY emri_kolones HAVING SUM(emri_kolones) vlera e kushtit

Tabela "Shitjet":

Kompanit Sasia

IT Department 5500

Ardi 4500

IT Department 7100

Nese perdorim keto SQL komanda:

SELECT Kompanit,SUM(Sasia) FROM Shitjet GROUP BY Kompanit HAVING SUM(Sasia)>10000

Na kthehet ky rezultat

Komanit SUM(Sasia)

IT Department 12600

Page 38: Structured - Yolaajlahasani.yolasite.com/resources/SQL urdheresat.pdf · dhe manipulimin me sistemet e bazave te dhenave. Komandat e SQL perdoren per leximin dhe ndryshimin e shenimeve

Komanda SELECT INTO

Komanda SELECT INTO shpesh perdoret per te krijuar kopje rezerver te arkivuara te tabelave per arkivimin e rekordeve.

Sintaksa

SELECT emri_kolone(ave) INTO tabela_e_re [IN bazen_e_te_dhenave_tjeter] FROM burimit

Krijimi i kopjeve rezerve

Krijimi i kopjeve reserve ne tabelen "Persone":

SELECT * INTO Personet_kopjerezerve FROM Personet

Klauzula IN munde te perdoret nese e kopjojm tabelen nje baze te dhenave tjeter:

SELECT Personet.* INTO Personet IN 'Backup.mdb' FROM Personet

Nese doni te i kopjoni vetem sa fusha ate munde te e beni duke I listuar ato, me ndihmen e komandes SELECT :

SELECT Mbiemri,Emri INTO Personet_kopjarezerver FROM Personet

Ju gjithashtu mund te perdorni klauzulen WHERE. Shikoni kete shembull p.sh. tabela "Personet_kopjarezerve" me dy kolona (Emri dhe Mbiemri) duke I nxjerr vetem personet qe jetojn ne "Mitrovice" nga tabela "Personet":

SELECT Mbiemri,Emri INTO Personet_mitrovice FROM Personet WHERE Qyteti='Mitrovice'

Selektimi i shenimeve nga me shume tabela gjithashtu eshte e mundeshme. Shembulli I ardheshem krijon kopjen ne nje tabele te re "Porosite_e_puntoreve_kopja" e cila permban shenimet prej dy tabelave Puntoret dhe Porosite:

SELECT Puntoret.Emri,Porosite.Produkti INTO Porosite_e_puntoreve_kopja FROM Puntoret INNER JOIN Porosite ON Puntoret.Puntori_ID=Porosite.Puntori_ID