Archive for the ‘SQL’ Category

Uskrs

Tuesday, September 2nd, 2008

Pronasao sam kod za izracunavanje Uskrsa, po pravoslavnom i po katolickom kalendaru. Izvor: http://www.tek-tips.com/faqs.cfm?fid=5075 Pravoslavni: CREATE FUNCTION dbo.OEaster (@Yr as int) RETURNS datetime AS  -- SELECT dbo.OEaster(2007) BEGIN    Declare @I int, @J int, @Metonic int, @EMo int, @EDay int, @LeapAdj int    Set @LeapAdj=@Yr/100-@Yr/400-2    Set @Metonic=@Yr % 19    Set @I=(19*@Metonic+15) % 30    Set @J=(@Yr+@Yr/4+@I) % 7    Set @EMo=3+(@I-@J+40)/44    ...

NULLS, LEFT JOIN, EXISTS i NOT IN

Friday, July 4th, 2008

Kada zelimo da uporedimo dve tabele A i B, i da pokazemo koji su redovi prisutni u A, a nema ih u B (Accessov 'unmatched query'), to generalno mozemo da uradimo na nekoliko nacina. Mozemo da upotrebimo LEFT JOIN, mozemo da upotrebimo NOT IN ili NOT EXISTS. Da li su ...

Prava pristupa podacima – prvi deo

Saturday, May 17th, 2008

SQL baze podataka nam omogućavaju izvestan nivo kontrole pristupa podacima. Ova kontrola se postiže upotrebom GRANT komande i njenih varijacija GRANT SELECT, GRANT INSERT, GRANT UPDATE, GRANT DELETE. Da bi se primenila ovakva pravila pristupa bitno je da svaki korisnik sistema ima svoje jedinstveni nalog na nivou baze podataka. Mnogi ...

Alternativa za EXECUTE IMMEDIATE i DBMS_SQL u MySQL-u ?

Thursday, April 17th, 2008

Vi pitate - mi odgovaramo! Radovan B. iz Novog Sada je postavio pitanje: Potreban mi je određeni mehanizam, koji bi mogao na serveru da odradi dinamičko izvršenje određene SQL komande na MYSQL bazi. Znači, ja da mogu da pozovem proceduru na serveru, koja će parsirati SQL komandu zavisno od uslova i koja ...

Upotreba korisničkih funkcija u CHECK CONSTRAINTS

Wednesday, March 5th, 2008

MS SQL  2000 doneo je jednu lepu novinu - mogućnost pisanja korisničkih funkcija. Uz to je tiho došla još jedna novina, slabo dokumentovana,  iako se može naći u Boks On Line. Korisničke funkcije mogu se pozvati iz CHECK constraints. Funkcije ko funkcije, mogu da pozivaju redove iz posmatrane tabele, ali i ...

Ne volite fiziku i biologiju? A možda SQL?

Saturday, November 24th, 2007

Kompanija za koju radim prikuplja podatke o učenicima srednjih i osnovnih škola u Ontariju. Podaci koje prikupljamo menjaju se od godine do godine. Da ne bi menjali bazu svaki čas, imamo dve tabele: CREATE TABLE Osobe (Ime varchar(25) NOT NULL PRIMARY KEY) GO CREATE TABLE Predmeti (Ime ...

Isti upit izražen na različite načine

Sunday, October 28th, 2007

Većina upita može da se napiše na različite načine.  C.J. Date je u online članku "Fifty Ways to Quote Your Query" prikazao listu od 52 načina da se iskaže jedan upit! Nije mi namera da se u ovome takmičim sa Date-om, već želim da prikažem nekoliko praktičnih i pravolinijskih metoda pomoću kojih se izvesna forma upita može zameniti adekvatnom (a efikasnijom) formom. Prikazaću dve ...

Spajanje podataka po zajednickom atributu

Tuesday, October 16th, 2007

Miša, jedan moj kolega s posla, je juče naišao na problem prilikom pravljenja nekog izveštaja. Za potrebe tog izveštaja mora da prikupi podatke iz četiri različita izvora, a onda da ih objedini u jedinstven izveštaj. Miša je napravio strukturu od četiri tabele, i u svaku od tabela je importovao podatke iz ...

Agregatno spajanje stringova za PostgreSQL

Sunday, August 26th, 2007

SQL standard propisuje 5 agregatnih funkcija: AVG, COUNT, MAX, MIN i SUM. Uz izuzetak COUNT funkcije, ostale agregatne funkcije rade nad numeričkim vrednostima. Šta da radimo ako nam je potrebno prosto spajanje (konkatenacija) stringova? Iskoristićemo PostgreSQL-ovu mogućnost CREATE AGGREGATE za kreiranje nove agregatne funkcije. Uopšte nije teško na internetu naći ovakvu funkciju. ...

Spajanje neprekidnih datumskih intervala

Tuesday, August 7th, 2007

Pre neki dan je Dado (kolega s posla) naišao na interesantan problem. Originalni problem se tiče generisanja M4 obrazca za zaposlene i treženja neprekidnog intervala u kome je osoba bila zaposlena. Postavka problema Problem se može abstrahovati na sledeći način: Neka imamo skup datumskih intervala . Interval ’I’ je određen početnim i krajnjim ...