Sākums » Datubāzes

SQL Rokasgrāmata 1. daļa

03.04.2009 14:32 725 skatījumi 5 komentāri

Šī 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&gt;'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.

VN:F [1.2.3_620]
Rating: 5.0/5 (1 vote cast)
  • eduards www

    šo derētu kā smuku .pdf’u noformēt

    VA:F [1.2.3_620]
    Rating: 0.0/5 (0 votes cast)
    1
  • daGrevis www

    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ā?

    VA:F [1.2.3_620]
    Rating: 0.0/5 (0 votes cast)
    2
  • Moerto www

    Cik ilgi tulkoji? :)

    VA:F [1.2.3_620]
    Rating: 0.0/5 (0 votes cast)
    3
  • rob

    Pagaidām, reģistrācija vel nav pieejam reģistrēti tie tikai rakstu autori :)

    Cik atceros šī tulkojuma izcelsmes gads ir ap 2006

    VA:F [1.2.3_620]
    Rating: 0.0/5 (0 votes cast)
    4
  • AnetiX www

    Visus datus no tabulas labāk dzēst ārā ar TRUNCATE TABLE `table`.

    VA:F [1.2.3_620]
    Rating: 0.0/5 (0 votes cast)
    5
  • Nav nevienas atsauces

Ir ko teikt?

Vari izmantot:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Raksta komentāru RSS