Sunteți pe pagina 1din 6

E:\Descărcări\Udemy-70-461.761.Querying.Microsoft.SQL.Server.with.Transact-SQL\4.

Session 1 - Number types and functions

sunt la 4

SQL
limbaj de programare
Sari la navigareSari la căutare
SQL
SQL
Extensii fișiere sql Modificați la Wikidata
Paradigmă Multi-paradigmă
Apărut în 1974
Proiectat de Donald D. Chamberlin
Raymond F. Boyce
Dezvoltator ISO/IEC
Tipare statică, puternică
Dialecte SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003, SQL:2008
Influențat de Agena, Common Query Language(CQL), Language Integrated
Query(LINQ), Windows PowerShell, Ingres, QUEL
Influențe Datalog
Sistem de operare Multi platformă
Tip MIME application/x-sql
application/sql[1][2] Modificați la Wikidata
Prezență online http://www.sql.org/
Modifică date / text Consultați documentația formatului
SQL (de la numele englez Structured Query Language - limbaj de interogare
structurat - care se pronunță [es kiu el]) este un limbaj de programare specific
pentru manipularea datelor în sistemele de manipulare a bazelor de date relaționale
(RDBMS), iar la origine este un limbaj bazat pe algebra relațională. Acesta are ca
scop inserarea datelor, interogații, actualizare și ștergere, modificarea și
crearea schemelor, precum și controlul accesului la date. A devenit un standard în
domeniu (standardizat ANSI-ISO), fiind cel mai popular limbaj utilizat pentru
crearea, modificarea, regăsirea și manipularea datelor de către SGBD-urile
(Sistemele de Gestiune a Bazelor de Date) relaționale. Pe lângă versiunile
standardizate ale limbajului, există o mulțime de dialecte și variante, unele
proprietare, fiind specifice anumitor SGBD-uri și de asemenea conținând extensii
pentru a suporta SBD-urile (Sistemele de Baze de Date) obiectuale (obiectual-
relaționale).

SQL permite atât accesul la conținutul bazelor de date, cât și la structura


acestora.

Cuprins
1 Istoric
2 Elementele limbajului SQL
3 Tipuri de date în SQL
3.1 Interogări
3.2 Logica ternară (3VL)
4 Manipularea datelor
4.1 Instrucțiunile limbajului de manipulare a datelor
5 Tranzacții
5.1 Instrucțiuni:
6 Limbajul de definire a datelor
6.1 Instrucțiuni
7 Drepturi ale utilizatorilor SQL în rețea
7.1 Instrucțiuni
8 Legături externe
9 Note
Istoric
SQL a fost inițial dezvoltat la compania IBM de către Donald D. Chamberlin și
Raymond F. Boyce în anul 1974. Inițial numele era SEQUEL (tot de la Structured
Query Language) și avea ca scop manipularea și regăsirea datelor stocate în bazele
de date relaționale IBM. [3]

La sfârșitul anilor '70, compania Relational Software, Inc. (în prezent Oracle
Corporation) a văzut potențialul acestor concepte descrise de Codd, Chamberlin și
Boyce, și a dezvoltat propriul SQL RDBMS cu aplicații la U.S. Navy, Central
Intelligence Agency și U.S. government. În iunie 1979, Relational Software a
introdus prima implementare comercială disponibilă de SQL, Oracle. După testarea
SQL, au apărut implementări ale acestui limbaj și din partea firmei IBM: SQL/DS și
DB2. [4]

Elementele limbajului SQL


Limbajul SQL este divizat în următoarele elemente:

Clauze, care sunt componente ale instrucțiunilor și interogărilor. [5]


Expresii, al căror efect este producerea de valori scalare sau tabele.
Predicates, pot specifica condiții care sunt evaluate de SQL conform logicii
ternare sau logicii booleene, în scopul limitării efectelor instrucțiunilor, sau
pentru a influența cursul programului.
Interogările, au ca scop regăsirea datelor după criterii specifice.
Instrucțiunile, pot avea un efect persistent asupra datelor sau structurii datelor,
sau pot controla tranzacțiile, conexiunile sau cursul programului. În general,
instrucțiunile SQL se termină cu caracterul punct-virgulă (";"), deși acest lucru
nu este obligatoriu în toate platformele SQL. Spațiile albe suplimentare sunt
ignorate, dar ele pot fi folosite pentru lizibilitatea codului SQL.
Tipuri de date în SQL
Oricărei coloane (sau câmp) dintr-un tabel SQL îi este asignat un tip de dată, la
fel ca în toate celelalte limbaje de programare. Tipurile de date sunt următoarele:

CHARACTER (sau CHAR) - șir de caractere


INTEGER (sau SMALLINT) - număr întreg
FLOAT, REAL sau DOUBLE PRECISION - număr real
NUMERIC(precision, scale) sau DECIMAL(precision, scale) - număr zecimal , unde
“precision” înseamnă numărul de cifre din partea întreagă, “scale” înseamnă numărul
de zecimale.
DATE - data zilei.
TIME - ora.
Funcția sistem NOW întoarce data și ora curentă.

Interogări
Cea mai des utilizată instrucțiune în SQL este instrucțiunea SELECT. [6] [7]

SELECT [ALL | DISTINCT] coloana1 [,coloana2]


[INTO fișier]
FROM tabel1 [,tabel2]
[WHERE condiție] [ AND|OR condiție...]
[GROUP BY listă-coloane]
[HAVING condiții]
[ORDER BY listă-coloane [ASC | DESC] ]
Clauza INTO este utilizată pentru a transfera rezultatul interogării într-o nouă
tabelă; valabil în Microsoft Access, dar nu în toate platformele SQL.
Clauza WHERE este utilizată pentru a specifica condiții trebuie să îndeplinească
coloanele din care se face selecția. Această condiție este o expresie logică
obținută prin aplicarea operatorilor conjuncție (AND) și disjuncție (OR) asupra
unor expresii logice elementare obținute cu ajutorul operatorilor: = (egal), <>
(diferit), < (mai mic decât), <= (mai mic sau egal decât), > (mai mare decât), >=
(mai mare sau egal decât), LIKE (permite selectarea potrivirilor parțiale cu
ajutorul operatorului %; de exemplu: select city, state from towntable where state
LIKE 'north%');
Clauza GROUP BY permite gruparea coloanelor multiple în scopul prelucrării acestora
prin funcțiile agregate: AVG - media aritmetică; COUNT - numărul articolelor; MAX -
maximul; MIN - minimul; SUM - suma.
Exemplu: Maximul populației tuturor orașelor americane din statul Indiana:

SELECT MAX(population) FROM citylist WHERE state = 'Indiana';


Clauza HAVING Spre deosebire de clauza WHERE, acționează asupra rândurilor
rezultate din clauza GROUP BY , aplicându-le condiția, spre a fi ulterior
prelucrare prin funcțiile agregate.
Clauza ORDER BY Ordonează rezultatele interogării în ordine alfabetică după unul
sau mai multe câmpuri. ASC înseamnă în ordine crescătoare, iar DESC - ordine
descrescătoare. Ordinea implicită este crescătoare.
Alte cuvinte cheie: ALL - Toate articolele; DISTINCT - Numai articolele unice, fără
duplicate.
Exemple: 1. Selectarea tuturor cărților din tabela Book, având prețul mai mare
decât 100.00, în ordinea crescătoare a titlurilor:

SELECT * FROM Book WHERE price>100.00 ORDER BY title;


2. Selectarea tuturor titlurilor cărților din tabelele Book și a autorilor cărților
citiți din tabela Authors:

SELECT Book.title, Authors.name FROM Book INNER JOIN Authors ON Book.author =


Authors.id
GROUP BY Book.title;
Logica ternară (3VL)
Ideea a fost introdusă în SQL pentru a asigna valoarea Null înregistrărilor vide și
informațiilor care lipsesc dintr-un câmp. [8] [9] [10] [11]

Manipularea datelor
Limbajul de manipulare a datelor (DML) este un subset al SQL utilizat pentru a
adăuga, actualiza sau șterge date.

Instrucțiunile limbajului de manipulare a datelor


INSERT - inserează un articol într-o tabelă:
INSERT INTO tabel (câmp1, câmp2, ...) VALUES (valoare1, valoare2, ...);
UPDATE - actualizează un set de articole:
UPDATE tabel SET câmp = valoare [WHERE condiție];
DELETE - șterge un set de articole:
DELETE FROM tabel [WHERE condiție];
Tranzacții
Tranzacțiile sunt utilizate pentru a controla în ce condiții se desfășoară o
succesiune a instrucțiunilor de manipulare a datelor.

Instrucțiuni:
START TRANSACTION (sau BEGIN WORK, BEGIN TRANSACTION, în funcție de dialectul SQL)
Început de tranzacție.
SAVE TRANSACTION (sau SAVEPOINT) salvează starea bazei într-un punct al transacției
COMMIT Operează toate operațiile tranzacției ca fiind permanente.
ROLLBACK Anulează toate operațiile tranzacției începând cu ultimul COMMIT.
Instrucțiunile COMMIT și ROLLBACK termină tranzacția curentă și deblochează datele.

Exemple:

1.
CREATE TABLE tbl_1(id int);
INSERT INTO tbl_1(id) VALUES(1);
INSERT INTO tbl_1(id) VALUES(2);
COMMIT;
UPDATE tbl_1 SET id=200 WHERE id=1;
SAVEPOINT id_1upd;
UPDATE tbl_1 SET id=1000 WHERE id=2;
ROLLBACK to id_1upd;
SELECT id from tbl_1;
2.

START TRANSACTION;
UPDATE Account SET amount=amount-200 WHERE account_number=1234;
UPDATE Account SET amount=amount+200 WHERE account_number=2345;
IF ERRORS=0 COMMIT;
IF ERRORS<>0 ROLLBACK;
Limbajul de definire a datelor
Limbajul de definire a datelor (DDL) gestionează structura datelor și indexului.

Instrucțiuni
CREATE TABLE creează un tabel în mod linie de comandă:
CREATE TABLE tabel(
câmp1 tip1,
câmp2 tip2,
...
PRIMARY KEY (index1, index2, ...)
);
Exemplu:

CREATE TABLE My_table(


my_field1 INT,
my_field2 VARCHAR(50),
my_field3 DATE NOT NULL,
PRIMARY KEY (my_field1, my_field2)
);
ALTER TABLE modifică structura unui tabel existent prin
redenumirea/adăugarea/ștergerea/schimbarea structurii unei coloane sau index:
[12]

Redenumirea unui tabel

ALTER TABLE tabel RENAME TO nume_nou_tabel;


Adăugarea de câmpuri noi

ALTER TABLE table_name ADD ( câmp1 def1, col2 def2, ... );


Exemplu:

ALTER TABLE supplier ADD (supplier_name varchar2(50), city varchar2(45));


Modificarea structurii unui câmp

ALTER TABLE table_name MODIFY (câmp1 tip1, câmp2 tip2, ... );


Exemplu:

ALTER TABLE supplier MODIFY ( supplier_name varchar2(100) not null, city


varchar2(75));
Ștergerea unui câmp

ALTER TABLE tabel DROP COLUMN câmp;


Exemplu:

ALTER TABLE supplier DROP COLUMN supplier_name;


Redenumirea unui câmp

ALTER TABLE tabel RENAME COLUMN nume_vechi TO nume_nou;


Exemplu:

ALTER TABLE supplier RENAME COLUMN supplier_name to sname;


TRUNCATE TABLE – Șterge toate articolele unui tabel:
TRUNCATE TABLE tabel;
DROP TABLE – Șterge tabelul:
DROP TABLE tabel;
Drepturi ale utilizatorilor SQL în rețea
Limbajul de control al datelor (DCL) autorizează utilizatorii și grupurile care
lucrează cu o anumită bază de date.

Instrucțiuni
GRANT acordă unul sau mai multe drepturi unui utilizator sau grup.
REVOKE (operația inversă) elimină unul sau mai multe drepturi unui utilizator sau
grup.
Exemple: 1.

GRANT SELECT, UPDATE ON My_table TO some_user, another_user;


2.

REVOKE SELECT, UPDATE ON My_table FROM some_user, another_user;


Legături externe
1995 SQL Reunion: People, Projects, and Politics, by Paul McJones (ed.) - Simpozion
dedicat bazelor de date relaționale în SQL.
American National Standards Institute. X3H2 Records, 1978–1995 Charles Babbage
Institute - Standardele commitetului H2 de dezvoltare a standardelor NDL și SQL.
Oral history interview with Donald D. Chamberlin - Interviu cu Donald D.
Chamberlin.
Comparison of Different SQL Implementations Comparație între diferite versiuni și
implementări SQL: SQL:2008, PostgreSQL, DB2, MS SQL Server, MySQL, Oracle și
Informix.
Note
^ , 27 februarie 2013 http://www.iana.org/assignments/media-types/application/sql
Lipsește sau este vid: |title= (ajutor)
^ The application/sql Media Type
^ [1] http://www.almaden.ibm.com/cs/people/chamberlin/sequel-1974.pdf
^ [2] http://www-03.ibm.com/ibm/history/history/year_1978.html
^ ANSI/ISO/IEC International Standard (IS). Database Language SQL—Part 2:
Foundation (SQL/Foundation). 1999.
^ [3]http://www.w3schools.com/sql/sql_select.asp
^ [4]http://msdn.microsoft.com/en-us/library/h09t6a82(v=vs.80).aspx
^ [5]http://www.sqlservercentral.com/columnists/mcoles/fourrulesfornulls.asp
^ M. Negri, G. Pelagatti, L. Sbattella (1989) Semantics and problems of universal
quantification in SQL
^ Fratarcangeli, Claudio (1991). Technique for universal quantification in SQL.
ACM.org.
^ Kawash, Jalal (2004). Complex quantification in Structured Query Language (SQL):
a tutorial using relational calculus - Journal of Computers in Mathematics and
Science Teaching ISSN 0731-9258 Volume 23, Issue 2, 2004 AACE Norfolk, Virginia,
Thefreelibrary.com.
^ [6]http://www.techonthenet.com/sql/tables/alter_table.php
Categorii: Limbaje de programareBaze de date
Meniu de navigare
Nu sunteți autentificat
Discuții
Contribuții
Creare cont
Autentificare
ArticolDiscuție
LecturăModificareModificare sursăIstoric
Căutare
Căutare în Wikipedia
Pagina principală
Schimbări recente
Cafenea
Articol aleatoriu
Facebook
Participare
Cum încep pe Wikipedia
Ajutor
Portaluri tematice
Articole cerute
Donații
Trusa de unelte
Ce trimite aici
Schimbări corelate
Trimite fișier
Pagini speciale
Legătură permanentă
Informații despre pagină
Citează acest articol
Element Wikidata
Tipărire/exportare
Creare carte
Descărcare ca PDF
Versiune de tipărit
În alte proiecte
Wikimedia Commons

În alte limbi
Български
Deutsch
Ελληνικά
English
Español
Français
Magyar
Српски / srpski
Türkçe
Încă 74
Modifică legăturile
Ultima editare a paginii a fost efectuată la 23 ianuarie 2020, ora 11:20.
Acest text este disponibil sub licența Creative Commons cu atribuire și distribuire
în condiții identice; pot exista și clauze suplimentare. Vedeți detalii la Termenii
de utilizare.
Politica de confidențialitateDespre WikipediaTermeniVersiune
mobilăDezvoltatoriStatisticiDeclarație cookieWikimedia FoundationPowered by
MediaWiki

S-ar putea să vă placă și