Kas ir SQL?

Pārējos rakstus var lasīt SQL pamatos.

SQL (no angļu valodas – Structured Query Language, latviski varētu saukt strukturēta vaicājumu valoda) ir programmēšanas (vaicājumu) valoda, kas domāta, lai varētu apstrādāt datus relāciju datu bāzēs. Apstrādāt nozīmē:

SQL aizsākumi ir meklējami 1970tajos gados, un sākotnējie autori bija Donald D. Chamberlin un Raymond F. Boyce.

Pašlaik SQL valodai ir pieņemti ANSI un ISO standarti, kas laika gaitā ir attīstījušies un tiem ir nākušas klāt jaunas lietas, bet tas nekādi nav kavējis katram sevi cienošam datubāzu izstrādātājam ieviest savā datubāzē lielākus vai mazākus papildinājumus
un tai pašā laikā paziņot, ka viņa versija atbilst standartam😉

SQL ir principiāli atšķirīga no procedurālajām valodām ar to, ka tā apstrādā ierakstu kopas nevis darbojas ierakstu pa ierakstam kā tas ir procedurālajās valodās. Līdz ar to programmētājiem ar procedurālo valodu pieredzi mēdz būt grūti sākt darboties ar SQLu (vai kā minimums ir nepieciešams “adaptācijas periods”), jo nepārtraukti gribas apstrādāt ierakstu pa ierakstam, nevis apstrādāt ierakstus kā kopu, kas atbilst noteiktiem kritērijiem.

Lielākā daļa “nopietno datubāzu” ir izstrādājušas savas procedurālās valodas, kurās SQL ir iespējams iekļaut, piemēram, Oracle – PL/SQL, MS SQL Server – Transact-SQL, PostgreSQL – PL/pgSQL.

Pats zināmākais un plašāk lietotais SQL teikums ir SELECT. Tā galvenais uzdevums ir atlasīt datus no vienas vai vairākām tabulām, pie tam neobligāti:

  • veicot datu atlases ierobežošanu uz kolonām un/vai ierakstiem,
  • grupējot ierakstus un izmantojot grupēšanas funkcijas,
  • uzliekot nosacījumus atlasītajām grupām,
  • sakārtojot ierakstus.

Lai modificētu datus, tiek izmantoti tādi SQL (DML) teikumi kā INSERT (datu pievienošana), UPDATE (datu koriģēšana), DELETE (dau dzēšana), MERGE (koriģēšana un pievienošana reizē).

Lai darbotos ar datubāzes objektiem tiek lietoti tādi SQL (DDL) teikumi kā CREATE (objekts izveide), ALTER (objekta koriģēšana), DROP (objekta nomešana jeb definīcijas izdzēšana), TRUNCATE (izdzēst visus datus tabulā).

Transakciju kontrolei (TCL) tiek lietoti BEGIN WORK vai START TRANSACTION (Atzīmē transakcijas sākumu, netiek izmantoti Oraclē, jo tur transakcija sākas līdz ar pirmo DML teikumu), COMMIT (apstiprina izmaiņas), ROLLBACK (atceļ veiktās izmaiņas kopš pēdējā COMMIT vai ROLLBACK).

Kas jāņem vērā rakstot SQL?

  1. Katru datubāzi ir izstrādājusi cita kompānija ar citiem darbiniekiem, tāpēc par spīti standartam, nevajadzētu meklēt kaut kādu absolūti kopējo SQL variantu, kas strādās uz visām iespējamām datubāzēm bez izmaiņām. Ja kaut ko tādu tik tiešām izdodas izveidot, tādā gadījumā, tas saturēs tik elementārus SQL teikumus, ka neko sarežģītāku nebūs iespējams izstrādāt, kā arī datubāzu arhitektūra kā tāda ir atšķirīga, kas viss rezultēsies uz to, ka jūsu universālais kods lāgā nestrādās ne uz vienas datubāzes.
  2. Datubāzes ir radītas, lai darbotos ar ierakstu kopām, lai veiktu ierakstu kombinēšanu (join) pašās datubāzēs, tāpēc SQL teikumi ir jāraksta tā, lai tie pēc iespējas apstrādātu visus nepieciešamos datus un nevis jāmiksē ar procedurālām koda konstrukcijām, piemēram, cikliem un nosacījumiem. Mēģiniet izvairīties no “ieraksta pa ierakstam” apstrādes, jo tas padara jūsu kodu lēnāku, grūtāk lasāmu un garāku. Mēģiniet izvairīties no pārlieku lielas datu “pumpēšanas” uz klientu vai aplikāciju serveri un lielas datu apstrādes tur. Šo punktu esmu izvērsis speciālā rakstā – paradigmas maiņa – SQL ātrdarbības atslēga.
  3. Iedziļinieties un apziniet jūsu izvēlētās datubāzes iespējas un izmantojiet tās pēc iespējas vairāk (ja vien tās nav absolūti “zaļas” un šaubīgas). Lieku vismaz 99:1, ka jūsu izgudrotais “divritenis” būs lēnāks un kļūdaināks, nekā iebūvētais “divritenis”.

Tālākā lasāmviela:

One Response to Kas ir SQL?

  1. Gints Plivna says:

    Comparison of different SQL implementations – PostgreSQL, DB2, MSSQL, MySQL, Oracle SQL dialektu salīdzinājums.

Komentēt

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Mainīt )

Twitter picture

You are commenting using your Twitter account. Log Out / Mainīt )

Facebook photo

You are commenting using your Facebook account. Log Out / Mainīt )

Google+ photo

You are commenting using your Google+ account. Log Out / Mainīt )

Connecting to %s

%d bloggers like this: