SQL: Skirtumas tarp puslapio versijų

4 769 pridėti baitai ,  15 balandžio
nėra keitimo aprašymo
 
3 eilutė: 3 eilutė:


Visa šita SQL kalba skirta tik tam, kad būtų galima kaip tai standartiškai dirbti su [[reliacinės duomenų bazės|reliacinėmis duomenų  bazėmis]], bet kaip bebūtų keista, kartais ir su nereliacinėmis irgi visai tinka.
Visa šita SQL kalba skirta tik tam, kad būtų galima kaip tai standartiškai dirbti su [[reliacinės duomenų bazės|reliacinėmis duomenų  bazėmis]], bet kaip bebūtų keista, kartais ir su nereliacinėmis irgi visai tinka.
== SQL pagrindai ==
Visas SQL susideda iš dviejų esminių dalių - viena vadinasi DDL (Data Definition Language) ir yra skirta tam, kad apibrėžtų visokius duomenis su tų duomenų struktūra. Kita dalis yra skirta darbui su duomenimis ir vadinasi DML (Data Manipulation Language). Teoriškai abi šios dalys gali būti realizuotos visiškai paskirai, praktiškai irgi kartais taip ir būna.
Pats pirmas, seniausias abiejų šių dalių standartas yra SQL-86, kuris kažkodėl kartais vadinamas dar ir SQL-87. Nors šitas standartas ir yra absurdiškai pasenęs, jis visgi kadaise padėjo SQL pagrindus, tai nuo jo reikalavimų ir verta pradėti mokytis, nes ten patys elementariausi dalykai. Bet kadangi pats standartas tenai surašytas labai baisiai, kažkokioje sugadintoje [[Backus-Naur forma|Backus-Naur formoje]], tai čia paprasčiau jį paaiškinsim.
=== SQL DDL pagrindai ===
Realiacinė duomenų bazė visada yra sudaryta iš lentelių, o lentelės savo esme yra panašios į kokio nors [[exel]] lenteles - eilutėse yra duomenys, o stulpeliais apibrėžiama duomenų rūšis ir paskirtis. Taigi, kuriant duomenų bazę, svarbu apibrėžti visas ją sudarančias lenteles.
Duomenų apibrėžimui naudojamos tokios pagrindinės komandos:
* CREATE ''tablename'' - sukurti lentelę, pvz., CREATE ''pipedija'' (''id'' INTEGER, ''straipsnis'' VARCHAR);
* ALTER ''tablename'' - modifikuoti lentelę, pvz., ALTER TABLE ''pipedija'' ADD ''komentaras'' VARCHAR;
* DROP TABLE ''tablename'' - ištrinti lentelę, pvz., DROP TABLE ''pipedija'';
Kaip apibrėšit tą duomenų bazę, taip paskui ir naudosit, o naudojimo metu struktūros kaitalioti paprastai neprireikia.
=== SQL DML pagrindai ===
Darbui su duomenimis naudojamos tokios pagrindinės komandos, kurios jau gali turėti daugiau visokių modifikatorių ir įvairovės, kurią čia pat irgi pavardinam jums:
* SELECT ''fieldname'' FROM ''tablename'' - gauti duomenis iš lentelės, pvz., SELECT * FROM ''pipedija''
* INSERT INTO ''tablename'' (''fieldname'', ''otherfieldname'') VALUES (''"value1"'', ''"value2"'') - įrašyti duomenis į lentelę, pvz., INSERT into ''pipedija'' (''straipsnis'') VALUES (''"kažkoks jūsų tekstas"'');
* UPDATE ''tablename'' SET ''fieldname'' = ''"somevalue"'' - atnaujinti visus duomenis lentelėje, juos paverčiant į tuos, kuriuos nurodysit
* DELETE FROM ''tablename'' - ištrinti visus duomenis lentelėje
Čia pastebėkim, kad [[pagal nutylėjimą]] SQL nesiaiškina, ką jūs norit atnaujint ar ištrint ir jei kitaip nenurodyst, tai trins ar kaitalios visiškai viską.
Tai dabar esminis papildymas viskam yra WHERE kriterijus, su kuriuo naudojamos praktiškai visos komandos, išskyrus, aišku, INSERT. Tai štai jums pavyzdžiai:
* SELECT ''fieldname'' FROM ''tablename'' WHERE fieldname = ''"something"'';
* UPDATE ''tablename'' SET ''fieldname'' = ''"this"'' WHERE ''fieldname'' = ''"that"'';
* DELETE FROM ''tablename'' WHERE ''fieldname'' = ''"nothing"'';
Gera praktika yra visada turėti tą WHERE, nes kitaip labai jau lengvai galima pridaryti nesąmonių.
Taip pat čia pastebėkim, kad netgi JOIN nenagrinėjame, nes pvz., SQL-86 standarte jo net ir nebuvo, tai buvo toksai jau pagerintas [[fyčeris]], nors ir sunku įsivaizduoti, kaip be jo gyvent.
Tai štai, jei kažkur pabandėte šituos dalykus padaryti praktiškai, tai jūs dabar jau kažką suprantate apie SQL ir galėtumėt tą SQL kur nors panaudoti.
== Pipedijai žinomi SQL ==
Yra gyvas galas visokiausių SQL serverių, kuriuos gamina patys įvairiausi gamintojai. Tai paprastai bendra yra tai, kad visi palaiko tam tikrą bainį SQL standartą, tačiau visi turi vienų ar kitų išplėtimų. Tai tie išplėtimai gali būti labai įvairūs, bet dažniausiai būna tokie, kur truputį vieni nuo kitų skiriasi. Tai rezultatas tada toks, kad SQL kaip ir standartas, ale nors ir standartas, vienoje sistemoje pastatytos [[duomenų bazė|duomenų bazės]] į kitą sistemą perkelti nepavyksta. Ir kuo gudresnius dalykus naudojate, tuo paskui sunkiau ką nors perkelti. Taip kad bendra gera taisyklė yra neskubėti per daug naudotis visokiais fyčeriais.
Beje, geras pirminis pasirinkimas yra [[MySQL]], nes dauguma dalykų, kurie veikia ant šios [[DB]], veiks ir ant kitų. Bet irgi nebūtinai, nes ir MySQL turi savo gražumų.
Štai čia yra kai kurios SQL sistemos, kurios yra garsiausios, žinomiausios ar populiariausios, ar šiaip kaip nors istoriškai svarbios:
* [[MySQL]]
* [[MariaDB]]
* [[SQLite]]
* [[Ingress]]
* [[Microsoft SQL]]
* [[Oracle]]
* [[DB 2]]
* [[Postgress]]
* [[Firebird]]
...ir aišku, dar visokių, katruos tingėjom pavardinti.
Vienas svarbus momentas: dauguma SQL palaikančių duomenų bazių yra [[reliacinės duomenų bazės]]. Tačiau ne kiekviena reliacinė duomenų bazė palaiko SQL. Kai kurios tiesiog kurtos be SQL palaikymo, o kai kurios kurtos tais laikais, kai SQL išvis net ir nebuvo.




== Skaičius Pi suskaičiuojamas per SQL ==
== Skaičius Pi suskaičiuojamas per SQL ==
Tai čia tiesiog vienas iš variantų tiesiog:
Tai čia tiesiog vienas iš variantų tiesiog:


  set nocount on
  set nocount on
43 eilutė: 101 eilutė:




== Pipedijai žinomi SQL ==
* [[MySQL]]
* [[Microsoft SQL]]
* [[Oracle]]
* [[DB 2]]
* [[Postgress]]
...ir aišku, dar visokių, katruos tingėjom pavardinti.


[[Category:Kompiuteriai]]
[[Category:Kompiuteriai]]
229

pakeitimai