From Wikipedia, the free encyclopedia
SQL (angle Structured Query Language, strukturhava serĉmenda lingvo) estas komputillingvo por rilataj datumbazoj. Ĝia relative malkomplika sintakso similas al tiu de la angla kaj provizas la uzanton per komandoj por la manipulado de datumaroj (kiel aldoni, ŝanĝi kaj forigi datumerojn, strukturigi tabelojn, ktp.) kaj por serĉmendi datumojn. Pro sia kvazaŭa normeco SQL subtenas la sendependecon de programoj disde la datumbazo, kiun ili uzas. La plej multaj el la realigoj de SQL krome ebligas la uzon de aldonaj funkcioj kaj komandoj nenormaj.
SQL | |
---|---|
deklara programlingvo • demandlingvo • programlingvo • faka programlingvo | |
Paradigmo: | Plurparadigma: deklara, procedura |
Paradigmo(j): deklara programado | |
Klaso: | Rilata datumbazo |
Aperis en: | 1986 |
Aktuala versio: | SQL:2011 (2011) |
Tipa sistemo: | statika, strikta |
Ĉefaj realigoj: | MSSQL, MySQL, Oracle, PostgreSQL ktp. |
Programlingva(j) dialekto(j): | SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003, SQL:2006, SQL:2008, SQL:2011 |
La fundamenton de ĉiuj datumbazoj rilataj kreis en 1970 Edgar F. Codd per sia artikolo A Relational Model of Data for Large Shared Data Banks (rilateca modelo de datumoj por grandaj komune uzataj datumbazoj). La artikoloj sekvintaj ĉi-artikolon interalie temis pri la kreo de rilataj lingvoj, el kiuj la plej grava estis Structured English Query Language aŭ SEQUEL, evoluigita en 1974 ĉe IBM. En 1976 oni difinis SEQUEL/2 kaj alinomis ĝin SQL pro leĝaj kialoj. Ties prototipo, System R, estis finevoluigita en 1977 kaj jam enhavis la plejparton de SQL.
Pro la sukceso de System R poste multaj aliaj firmaoj decidis enkonduki produktojn SQL-kapablajn en la merkaton, interalie
Ene de dek jaroj SQL iĝis la laŭfakta normo de datumbazoj.
La American National Standards Institute (ANSI) ordonis 1982 la normigon de rilata lingvo, kiun oni subskribis en 1986 (ĉi-tial nomata SQL/86) kaj kiun plejparte konsistigis la SQL-dialekto de IBM. En 1987, ĝi ankaŭ estis akceptita kiel ISO-normo; ĝisdatigoj sekvis per SQL/89, SQL/92 kaj SQL/99.
La komandojn oni partigas en tri kategoriojn:
La komandoj por datumdifino estas CREATE, ALTER kaj DROP.
CREATE TABLE adresoj (nomo VARCHAR(30), antnomo VARCHAR(40))
ALTER TABLE adresoj ADD COLUMN urbo VARCHAR(30)
DROP TABLE adresoj
CREATE INDEX indekso_nomo ON adresoj (nomo)
DROP INDEX indekso_nomo
La komando por serĉmendi estas SELECT.
SELECT * FROM adresoj WHERE nomo='Schmidt'
SELECT nomo FROM adresoj ORDER BY nomo
SELECT COUNT(*) AS nombro_de_adresoj FROM adresoj
SELECT nomo,COUNT(nomo) FROM adresoj GROUP BY nomo
La komandoj por ŝanĝi datumojn estas INSERT, UPDATE kaj DELETE.
INSERT INTO adresoj (nomo,antnomo,urbo) VALUES ('Schmidt','Philipp','Hamburg')
UPDATE adresoj SET urbo='Berlin' WHERE nomo='Schmidt'
DELETE FROM adresoj WHERE urbo!='London'
DELETE FROM adresoj
La komandoj de datumkontrolo estas GRANT kaj REVOKE.
GRANT SELECT,UPDATE ON TABLE adresoj TO karlo
REVOKE ALL ON TABLE adresoj FROM alia_uzanto
kaj krome ankaŭ
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.