SQL Rokasgrāmata 1. daļa
Šī SQL pamācība ir tulkots no resursa http://www.w3schools.com/ materiāla par SQL.
Šī ir tikai šī materiāla pirmā daļa takā pagaidām visas funkcijas vel nebūs apgūtas.
SQL datubāžu tabulas
Datubāzes var saturēt dažādas un dažādu nosaukumu tabulas (piemēram, page, main u.t.t.), kuru nosaukumi, protams, nedrīkst atkārtoties. Savukārt tabulas satur rindas, jeb laukus ar ievadītajiem datiem.
Šeit ir neliels tabulas ” Persons” piemērs:
| LastName | FirstName | Address | City |
|---|---|---|---|
| Hansen | Ola | Timoteivn 10 | Sandnes |
| Svendson | Tove | Borgvn 23 | Sandnes |
| Pettersen | Kari | Storgt 20 | Stavanger |
Pieprasījumi
Ar SQL var veidot pieprasījumus, kuri atgriezīs datus no datubāzes kuru esat izvēlējušies.
Tas notiek šādi:
SELECT LastName FROM Persons
Jūs iegūsiet šādu te rezultātu:
| LastName |
|---|
| Hansen |
| Svendson |
| Pettersen |
SELECT pieprasījums
SELECT pieprasījums tiek izmantots lai atlasītu datus, kuri ir jāizmanto, kādām darbībām, kuras esi nolēmis veikt ar datiem. Ar SELECT pieprasījumu var tikai atlasīt datus.
šādi notiek datu atlase pašā vienkāršākajā gadījumā:
SELECT column_name(s) FROM table_name
Atlasīt konkrētas tabulas kolonas var ar šādu te sintaksi:
SELECT LastName,FirstName FROM Persons
“Persons” tabula
| LastName | FirstName | Address | City |
|---|---|---|---|
| Hansen | Ola | Timoteivn 10 | Sandnes |
| Svendson | Tove | Borgvn 23 | Sandnes |
| Pettersen | Kari | Storgt 20 | Stavanger |
Rezultāts (izmantojot augstāk minēto pieprasījumu)
| LastName | FirstName |
|---|---|
| Hansen | Ola |
| Svendson | Tove |
| Pettersen | Kari |
Atlasīt visas Kolonas(rindas). Lai atlasītu datus no visas tabulas, tas ir atlasīt datus no visām rindām un visiem laikiem konkrētajā tabulā. Tabulas lauka nosaukuma vietā rakstam *. Tas izskatās aptuveni šādi:
SELECT * FROM Persons
un rezultāts ir šāds:
| LastName | FirstName | Address | City |
|---|---|---|---|
| Hansen | Ola | Timoteivn 10 | Sandnes |
| Svendson | Tove | Borgvn 23 | Sandnes |
| Pettersen | Kari | Storgt 20 | Stavanger |
SELECT DISTINCT pieprasījumu veids
SELECT DISTINCT ir pieprasījums kurs atgriež nevienādos ierakstus konkrētajā tabulā.
Ar SQL , lai izmantotu DISTINCT pieprasījumu vis kas mums ir jādara ir jāizmaina SELECT pieprasījums.
Sintakse ir šāda:
SELECT DISTINCT column_name(s) FROM table_name
Izmantojums DISTINCT tipa pieprasījumam.
Lai atlasītu visus ierakstus no tabulas ar nosaukumu Company mēs izmantojam SELECT pieprasījumu šādi:
SELECT Company FROM Orders
“Orders” tabula
| Company | OrderNumber |
|---|---|
| Sega | 3412 |
| W3Schools | 2312 |
| Trio | 4678 |
| W3Schools | 6798 |
iegūtais rezultāts:
| Company |
|---|
| Sega |
| W3Schools |
| Trio |
| W3Schools |
Lai atlasītu visus nevienādos no kolonas Company mēs izmantosim jau pieminēto DISTINCT pieprasījumu.
Sintakse izskatās šādi:
SELECT DISTINCT Company FROM Orders
Rezultāts:
| Company |
|---|
| Sega |
| W3Schools |
| Trio |
WHERE noteikums
Dažreiz gadās, ka ir nepieciešams atlasīt konkrētus datus, pēc kādiem jau iepriekš zināmiem parametriem.
Šādos gadījumos mēs izmantojam WHERE noteikumu.
Sintakse izskatās šādi:
SELECT COLUMN FROM TABLE WHERE COLUMN operator value
Ar WHERE noteikumu var tikt izmantoti šādi operatori:
| Operatori | Apraksts |
| = | Vienāds |
| <> | Nevienāds |
| > | Lielāks |
| < | Mazāks |
| >= | Lielāks vai vienāds |
| <= | Mazāks vai vienāds |
| BETWEEN | starp |
| LIKE | Meklēšanas parametrs |
Piezīme: dažās SQL versijās operators <> var tikt aizstāts ar !=
Lai atlasītu personas no Persons tabulas, kuras dzīvo pilsētā ar nosaukumu Sandnes izmantojam WHERE noteikumu.
SELECT * FROM Persons WHERE City='Sandnes'
“Persons” tabula
| LastName | FirstName | Address | City | Year |
|---|---|---|---|---|
| Hansen | Ola | Timoteivn 10 | Sandnes | 1951 |
| Svendson | Tove | Borgvn 23 | Sandnes | 1978 |
| Svendson | Stale | Kaivn 18 | Sandnes | 1980 |
| Pettersen | Kari | Storgt 20 | Stavanger | 1960 |
Rezultāts:
| LastName | FirstName | Address | City | Year |
|---|---|---|---|---|
| Hansen | Ola | Timoteivn 10 | Sandnes | 1951 |
| Svendson | Tove | Borgvn 23 | Sandnes | 1978 |
| Svendson | Stale | Kaivn 18 | Sandnes | 1980 |
Pastāv atšķirīgi pieprasījumi cipariem un tekstam.
Teksta vērtībām:
Šādi ir pareizi:
SELECT * FROM Persons WHERE FirstName='Tove'
Šādi ir nepareizi:
SELECT * FROM Persons WHERE FirstName=Tove
Ciparu vērtībām:
Šādi ir pareizi:
SELECT * FROM Persons WHERE Year=1965
Šādi ir nepareizi:
SELECT * FROM Persons WHERE Year>'1965'
LIKE noteikums
LIKE noteikums ir specifiskais meklēšanas noteikums, kuram var nodot tikai dažus simbolus no vārda un tiks atgriezts viss vārds.
SELECT COLUMN FROM TABLE WHERE COLUMN LIKE pattern
% simbols apzīmē trūkstošos simbolus. Tātad ja vēlamies atrast vārdu, kurš sākas ar “O” veidojam šādu sintaksi:
SELECT * FROM Persons WHERE FirstName LIKE 'O%'
Ja vēlamies atlasīt visus datus, kuri beidzas ar “a” rakstam šādu sintaksi:
SELECT * FROM Persons WHERE FirstName LIKE '%a'
Bet savukārt šis piemērs atgriezīs visus ierakstus kuri satur “la”
SELECT * FROM Persons WHERE FirstName LIKE '%la%'
INSERT INTO
Funkciju INSERT INTO izmanto lai ievadītu datus datubāzē.
Sintakse:
INSERT INTO table_name VALUES (value1, value2,....)
Varat arī norādīt konkrētas kolonas, kurās datus ievietot.
INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,....)
Pievienot jaunu rindu tabulai.
Šī ir “Persons” tabula:
| LastName | FirstName | Address | City |
|---|---|---|---|
| Pettersen | Kari | Storgt 20 | Stavanger |
Sintakse:
INSERT INTO Persons VALUES ('Hetland', 'Camilla', 'Hagabakka 24', 'Sandnes')
Rezultāts:
| LastName | FirstName | Address | City |
|---|---|---|---|
| Pettersen | Kari | Storgt 20 | Stavanger |
| Hetland | Camilla | Hagabakka 24 | Sandnes |
Pievienot datus specifiskām (konkrētām) kolonām:
Šī ir “Persons” tabula:
| LastName | FirstName | Address | City |
|---|---|---|---|
| Pettersen | Kari | Storgt 20 | Stavanger |
| Hetland | Camilla | Hagabakka 24 | Sandnes |
Sintakse:
INSERT INTO Persons (LastName, Address) VALUES ('Rasmussen', 'Storgt 67')
Rezultāts:
| LastName | FirstName | Address | City |
|---|---|---|---|
| Pettersen | Kari | Storgt 20 | Stavanger |
| Hetland | Camilla | Hagabakka 24 | Sandnes |
| Rasmussen | Storgt 67 |
UPDATE
Ar UPDATE varam labot kādu noteiktu rindu datubāzē.
Sintakse:
UPDATE table_name SET column_name = new_value WHERE column_name = some_value
“Person” tabula:
| LastName | FirstName | Address | City |
|---|---|---|---|
| Nilsen | Fred | Kirkegt 56 | Stavanger |
| Rasmussen | Storgt 67 |
Izmainīt vienu tabulas rindu:
Teiksim mēs vēlamies pievienot datus laikam FirstName, kur lauks LastName ir Rasmussen, tad mēs rakstam šādu te sintaksi:
UPDATE Person SET FirstName = 'Nina' WHERE LastName = 'Rasmussen'
Rezultāts:
| LastName | FirstName | Address | City |
|---|---|---|---|
| Nilsen | Fred | Kirkegt 56 | Stavanger |
| Rasmussen | Nina | Storgt 67 |
Vairāku lauku izmainīšana:
Ja mēs vēlamies mainīt adresi un pilsētas nosaukumi, tad mums ir jāizmanto šāda sintakse:
UPDATE Person SET Address = 'Stien 12', City = 'Stavanger' WHERE LastName = 'Rasmussen'
Rezultāts:
| LastName | FirstName | Address | City |
|---|---|---|---|
| Nilsen | Fred | Kirkegt 56 | Stavanger |
| Rasmussen | Nina | Stien 12 | Stavanger |
DELETE
DELETE ļauj mums izdzēst datus no tabulas.
Sintakse:
DELETE FROM table_name WHERE column_name = some_value
“Person” tabula:
| LastName | FirstName | Address | City |
|---|---|---|---|
| Nilsen | Fred | Kirkegt 56 | Stavanger |
| Rasmussen | Nina | Stien 12 | Stavanger |
Dzēst rindu:
“Nina Rasmussen” tiks izdzēsta no tabulas Person
DELETE FROM Person WHERE LastName = 'Rasmussen'
Rezultāts:
| LastName | FirstName | Address | City |
|---|---|---|---|
| Nilsen | Fred | Kirkegt 56 | Stavanger |
Pastāv arī iespēja izdzēst visus datus, kuri atrodas tabulā
DELETE FROM table_name OR DELETE * FROM table_name
Autors: Roberts Mozgis (rob)
Web izstrādātājs ar vairāku gadu pieredzi. Esmu strādājis pie daudziem interesantiem projektiem Latvijā un ārpus tās. Specializācija PHP, JavaScript, CSS, Html, kā viss ap datubāzēm.






eduards www 04.04.2009 | 20:49
šo derētu kā smuku .pdf’u noformēt
daGrevis www 04.04.2009 | 23:33
Personīgi man noderēs, paldies! Lielāko daļu no ši te jau zināju! :)
P.S. Šinī lapā var arī reģistrēties, vai kā?
Moerto www 05.04.2009 | 16:40
Cik ilgi tulkoji? :)
rob 05.04.2009 | 18:13
Pagaidām, reģistrācija vel nav pieejam reģistrēti tie tikai rakstu autori :)
Cik atceros šī tulkojuma izcelsmes gads ir ap 2006
AnetiX www 08.05.2009 | 14:53
Visus datus no tabulas labāk dzēst ārā ar TRUNCATE TABLE `table`.