Comunicare de Specialitate in Limba Engleza Tema Semestrul I
Comunicare de Specialitate in Limba Engleza Tema Semestrul I
Comunicare de Specialitate in Limba Engleza Tema Semestrul I
Facultatea de xxxxxxx
Student: xxxxxxxxx
Anul: xxxxx
Grupa: xxxx
SQL Fundamentals
In This Chapter:
Understanding SQL
Clearing up SQL misconceptions
Taking a look at the different SQL standards
Getting familiar with standard SQL commands and reserved words
Representing numbers, characters, dates, times, and other data types
Exploring null values and constraints
Putting SQL to work in a client/server system
Considering SQL on a network
SQL is a flexible language that you can use in a variety of ways. It’s the most widely used tool for
communicating with a relational database. In this chapter, I explain what SQL is and isn’t —
specifically, what distinguishes SQL from other types of computer languages. Then I introduce the
commands and data types that standard SQL supports and explain key concepts: null values and
constraints. Finally, I give an overview of how SQL fits into the client/server environment, as well as
the Internet and organizational intranets.
The first thing to understand about SQL is that SQL isn’t a procedural language, as are BASIC, C, C++,
C#, and Java. To solve a problem in one of those procedural languages, you write a procedure that
performs one specific operation after another until the task is complete. The procedure may be a
linear sequence or may loop back on itself, but in either case, the programmer specifies the order of
execution.
SQL, on the other hand, is nonprocedural. To solve a problem using SQL, simply tell SQL what you
want (as if you were talking to Aladdin’s genie) instead of telling the system how to get you what you
want. The database management system (DBMS) decides the best way to get you what you request.
All right. I just told you that SQL is not a procedural language. This is essentially true. However,
millions of programmers out there (and you are probably one of them) are accustomed to solving
problems in a procedural manner. So, in recent years, there has been a lot of pressure to add some
procedural functionality to SQL. Thus, SQL now incorporates procedural language facilities, such as
BEGIN blocks, IF statements, functions, and procedures. These facilities have been added so you can
store programs at the server, where multiple clients can use these programs repeatedly.
To illustrate what I mean by “tell the system what you want,” suppose that you have an EMPLOYEE
table and you want to retrieve from that table the rows that correspond to all your senior people.
You want to define a senior person as anyone older than age 40 or anyone earning more than
$60,000 per year. You can make the desired retrieval by using the following query:
This statement retrieves all rows from the EMPLOYEE table where either the value in the Age column
is greater than 40 or the value in the Salary column is greater than 60,000. In SQL, you don’t need to
specify how the information is retrieved. The database engine examines the database and decides
for itself how to fulfill your request. You need only to specify what data you want to retrieve.
A query is a question you ask the database. If any of the data in the database satisfies the conditions
of your query, SQL retrieves that data.
Current SQL implementations lack many of the basic programming constructs fundamental to most
other languages. Real-world applications usually require at least some of these programming
constructs, which is why SQL is actually a data sublanguage. Even with the extensions that were
added in 1999, 2003, and 2005, you still need to use SQL in combination with a procedural language,
such as C, to create a complete application.
Make an ad hoc query from a computer console by just typing an SQL statement and reading
the results from the screen. Console is the traditional term for the computer hardware that
does the job of the keyboard and screen used in current PC-based systems. Queries from the
console are appropriate when you want a quick answer to a specific question. To meet an
immediate need, you may require information that you never needed before from a
database. You’re likely never to need that information again either, but you need it now.
Enter the appropriate SQL query statement from the keyboard, and in due time, the result
appears on your screen.
Execute a program that collects information from the database and then reports on the
information, either on-screen or in a printed report. Incorporating an SQL query directly into
a program is a good way to run a complex query that you’re likely to run again in the future.
That way, you can formulate a query just once for use as often as you want. Chapter 15
explains how to incorporate SQL code into programs written in another language.
SQL originated in one of IBM’s research laboratories, as did relational database theory. In the early
1970s, as IBM researchers performed early development on relational DBMS (or RDBMS) systems,
they created a data sublanguage to operate on these systems. They named the prerelease version of
this sublanguage SEQUEL (Structured English QUEry Language). However, when it came time to
formally release their query language as a product, they wanted to make sure that people
understood that the released product was different from and superior to the prerelease DBMS.
Therefore, the whiz kids at IBM decided to give the released product a name that was different from
SEQUEL but still recognizable as a member of the same family. So they named it SQL (pronounced
ess-que-ell).
IBM’s work with relational databases and SQL was well known in the industry even before IBM
introduced its SQL/DS RDBMS in 1981. By that time, Relational Software, Inc. (now Oracle
Corporation) had already released its first relational database management system (RDBMS). These
early products immediately set the standard for a new class of database management systems. They
incorporated SQL, which became the de facto standard for data sublanguages. Vendors of other
relational database management systems came out with their own versions of SQL. These other
implementations typically contained all the core functionality of the IBM products but were extended
in ways that took advantage of the particular strengths of the underlying RDBMS. As a result,
although nearly all vendors used some form of SQL, compatibility across platforms was poor.
Soon, a movement began to create a universally recognized SQL standard to which everyone could
adhere. In 1986, ANSI (the American National Standards Institute) released a formal standard it
named SQL-86. ANSI updated that standard in 1989 to SQL-89 and again in 1992 to SQL-92. As DBMS
vendors proceed through new releases of their products, they try to bring their implementations
ever closer to this standard. This effort has brought the goal of true SQL portability much closer to
reality.
The most recent full version of the SQL standard is SQL:2003 (ISO/IEC 9075-X: 2003), although
corrections and extensions were added in 2005. In this book, I describe SQL as SQL:2003 defines the
language, including the 2005 extensions. Every specific SQL implementation differs from the standard
to a certain extent. Because the complete SQL standard is comprehensive, currently available
implementations are unlikely to support it fully. However, DBMS vendors are working to support a
core subset of the standard SQL language. The full ISO/IEC standard is available for purchase at
webstore.ansi.org.
SQL Commands
The SQL command language consists of a limited number of commands that specifically relate to
data handling. Some of these commands perform datadefinition functions; some perform data-
manipulation functions; and others perform data-control functions. I cover the data-definition
commands and data-manipulation commands in Chapters 4 through 12, and the data-control
commands in Chapters 13 and 14.
To comply with SQL:2003, an implementation must include all the core features. It may also include
extensions to the core set (which the SQL:2003 specification also describes). But back to basics. Table
2-1 lists the core SQL:2003 commands.
In addition to the commands, a number of other words have a special significance within SQL. These
words, along with the commands, are reserved for specific uses, so you can’t use them as variable
names or in any other way that differs from their intended use. You can easily see why tables,
columns, and variables should not be given names that appear on the reserved word list. Imagine the
confusion that a statement such as the following would cause:
Fundamentele SQL
In acest capitol:
Înțelegerea SQL
Eliminarea concepțiilor greșite în SQL
Luând o privire la diferitele standarde SQL
Familiarizarea cu comenzile SQL standard și cu cuvintele rezervate
Reprezentarea numerelor, caracterelor, datelor, timpilor și a altor tipuri de date
Explorarea valorilor și constrângerilor nul
Punerea SQL într-un sistem client / server
Considerarea SQL într-o rețea
SQL este un limbaj flexibil pe care îl puteți utiliza într-o varietate de moduri. Este instrumentul cel
mai utilizat pentru comunicarea cu o bază de date relațională. În acest capitol, explic ce este și ce nu
este SQL - în mod specific, ceea ce distinge SQL de alte tipuri de limbi de calcul. Apoi introduc
comenzile și tipurile de date pe care standardul SQL le acceptă și explică conceptele cheie: valori nule
și constrângeri. În cele din urmă, ofer o privire de ansamblu asupra modului în care SQL se încadrează
în mediul client/server, precum și pe Internet și pe retelel interne organizaționale.
Primul lucru pe care trebuie să-l înțelegeți despre SQL este că SQL nu este un limbaj procedural, așa
cum sunt BASIC, C, C ++, C # și Java. Pentru a rezolva o problemă într-unul dintre aceste limbaje
procedurale, scrieți o procedură care efectuează o operație specifică după alta până când sarcina
este completă. Procedura poate fi o secvență liniară sau se poate repeta pe ea însăși, dar în ambele
cazuri, programatorul specifică ordinea execuției.
SQL, pe de altă parte, este nonprocedural. Pentru a rezolva o problemă folosind SQL, pur și simplu
spuneți SQL ceea ce doriți (ca și cum ați vorbi cu geniul lui Aladdin), în loc să spuneți sistemului cum
să vă obțină ceea ce doriți. Sistemul de gestionare a bazelor de date (DBMS) decide cel mai bun mod
de a obține ceea ce solicitați.
In regula. Tocmai v-am spus că SQL nu este un limbaj procedural. Acest lucru este, în esență,
adevărat. Cu toate acestea, milioane de programatori de peste tot(și probabil sunteți unul dintre ei)
sunt obișnuiți să rezolve problemele într-o manieră procedurală. Deci, în ultimii ani, a existat o mare
presiune pentru adăugarea unor funcționalități procedurale la SQL. Astfel, SQL include acum facilități
ale limbajelor procedurale, cum ar fi blocuri BEGIN, declarații IF, funcții și proceduri. Aceste facilități
au fost adăugate astfel încât să puteți stoca programe pe server, unde mai mulți clienți pot utiliza
aceste programe în mod repetat.
Pentru a ilustra ce vreau să spun prin "spuneți sistemului ceea ce doriți", să presupunem că aveți un
tabel ANGAJATI și doriți să extrageți din acea tabela rândurile care corespund tuturor persoanelor cu
un statut de senior. Vreti să definiți o persoană senior ca oricine mai în vârstă de 40 de ani sau oricine
câștigă mai mult de 60.000 de dolari pe an. Puteți efectua regăsirea dorită utilizând următoarea
interogare:
Această instrucțiune preia toate rândurile din tabela ANGAJATI în care fie valoarea din coloana Vârstă
este mai mare de 40, fie valoarea din coloana Salariu este mai mare de 60.000. În SQL, nu este
necesar să specificați modul în care informațiile sunt preluate. Motorul bazei de date examinează
baza de date și decide de la sine cum să îndeplinească cererea dvs. Trebuie doar să specificați ce date
doriți să preluați.
O interogare este o întrebare catre baza de date. Dacă oricare dintre datele din baza de date
satisface condițiile interogării dvs., SQL preia aceste date.
Implementările SQL actuale nu conțin multe dintre contructiile de bază ale majoritatii limbajelor
fundamentale de programare. Aplicațiile din lumea reală necesită, de obicei, cel puțin unele dintre
aceste contructii de programare, motiv pentru care SQL este de fapt un sublimbaj de date. Chiar și cu
extensiile care au fost adăugate în 1999, 2003 și 2005, trebuie să utilizați SQL în combinație cu un
limbaj procedural, cum ar fi C, pentru a crea o aplicație completă.
Puteți extrage informații dintr-o bază de date în unul din două moduri:
Efectuați o interogare ad-hoc dintr-o consola de computer prin tastarea unei instrucțiuni SQL
și cititi rezultatele de pe ecran. Consola este termenul tradițional pentru hardware-ul
computerului care efectuează operația tastaturii și a ecranului utilizat în sistemele curente
bazate pe PC. Interogările din consolă sunt potrivite atunci când doriți un răspuns rapid la o
întrebare specifică. Pentru a răspunde unei nevoi imediate, este posibil să aveți nevoie de
informații de care nu ați avut nevoie vreodată de la o bază de date. Probabil că niciodată nu
ai nevoie de aceste informații, dar ai nevoie de ea acum. Introduceți instrucțiunea de
interogare SQL corespunzătoare din tastatură și, în timp util, rezultatul apare pe ecran.
Executați un program care colectează informații din baza de date și apoi raportează
informațiile, fie pe ecran, fie într-un raport imprimat. Incorporarea directă a unei interogări
SQL într-un program este o modalitate bună de a rula o interogare complexă pe care probabil
că o veți relua în viitor. În acest fel, puteți formula o interogare o singură dată pentru a fi
utilizată ori de câte ori doriți. Capitolul 15 explică modul de integrare a codului SQL în
programe scrise într-un alt limbaj.
O (Foarte) scurta istorie
SQL a provenit dintr-unul din laboratoarele de cercetare ale IBM, la fel și teoria bazelor de date
relaționale. La începutul anilor 1970, deoarece cercetătorii IBM au realizat dezvoltarea timpurie a
sistemelor DBMS (sau RDBMS) relaționale, au creat un sublimbaj de date care să funcționeze pe
aceste sisteme. Ei au numit versiunea, pre-versiune a acestui sublimbaj, SEQUEL (Structured English
QUEry Language). Cu toate acestea, atunci când a sosit timpul să se lanseze în mod oficial limbajul lor
de interogare ca produs, ei au vrut să se asigure că oamenii au înțeles că produsul lansat era diferit și
superior sistemului DBMS pre-lansat. Prin urmare, copiii de la IBM au decis să dea produsului lansat
un nume diferit de SEQUEL, dar încă recunoscut ca membru al aceleiași familii. Așa că l-au numit SQL
(pronunțat ess-que-ell).
Lucrarea IBM cu baze de date relaționale și SQL a fost bine cunoscută în industrie chiar înainte ca IBM
să introducă RDBMS-ul SQL / DS în 1981. În acel moment, Relational Software, Inc. (acum Oracle
Corporation) a lansat deja primul său sistem de gestionare a bazelor de date relaționale (RDBMS ).
Aceste produse incipiente au stabilit imediat standardul pentru o nouă clasă de sisteme de
gestionare a bazelor de date. Au inclus SQL, care a devenit standardul de facto pentru sublimbajele
de date. Furnizorii altor sisteme de gestionare a bazelor de date relaționale au ieșit cu propriile
versiuni de SQL. Aceste alte implementări conțin, de obicei, toate funcționalitățile de bază ale
produselor IBM, dar au fost extinse în moduri care au profitat de avantajele specifice ale RDBMS-ului
care stau la baza acestora. Ca rezultat, deși aproape toți vânzătorii au folosit o formă de SQL,
compatibilitatea între platforme a fost slabă.
Curând, o mișcare a început să creeze un standard SQL recunoscut universal, la care toată lumea ar
putea adera. În 1986, ANSI (Institutul Național de Standarde americane) a lansat un standard formal
numit SQL-86. ANSI a actualizat standardul în 1989 la SQL-89 și din nou în 1992 la SQL-92. Dat fiind că
vânzătorii de sisteme DBMS continuă prin lansarea de noi produse, ei încearcă să aducă
implementările lor mai aproape de acest standard. Acest efort a adus obiectivul de portabilitate reală
SQL mult mai aproape de realitate.
Cea mai recentă versiune completă a standardului SQL este SQL: 2003 (ISO / IEC 9075-X: 2003), deși
corecțiile și extensiile au fost adăugate în 2005. În această carte, descriu SQL ca SQL definit in 2003,
cu extensiile din 2005. Fiecare implementare SQL specifică diferă de la standard intr-o anumită
măsură. Deoarece standardul SQL complet este cuprinzător, implementările disponibile în prezent
sunt puțin probabil să o susțină pe deplin. Cu toate acestea, furnizorii de DBMS lucrează pentru a
suporta un subset de bază al limbajului standard SQL. Standardul ISO / IEC complet este disponibil
pentru achiziționare la webstore.ansi.org.
Comenzi SQL
Limbajul de comandă SQL constă dintr-un număr limitat de comenzi care se referă în mod specific la
manipularea datelor. Unele dintre aceste comenzi îndeplinesc funcții de definire a datelor; unele
funcții de manipulare a datelor; iar alții efectuează funcții de control al datelor. Acopar comenzile de
definire a datelor și comenzile de manipulare a datelor din capitolele 4 până la 12 și comenzile de
control al datelor in capitolele 13 și 14.
Pentru a respecta SQL: 2003, o implementare trebuie să includă toate caracteristicile principale. De
asemenea, poate include extensii la setul de bază (care, de asemenea, descriu specific SQL: 2003).
Dar înapoi la elementele de bază. Tabelul 2-1 enumeră comenzile de bază SQL: 2003.
Cuvinte rezervate
În plus față de comenzi, o serie de alte cuvinte au o semnificație specială în SQL. Aceste cuvinte,
împreună cu comenzile, sunt rezervate pentru utilizări specifice, deci nu le puteți utiliza ca nume de
variabile sau în alt mod care diferă de destinația lor. Puteți vedea cu ușurință motivele pentru care
tabelele, coloanele și variabilele nu trebuie să conțină nume care apar în lista de cuvinte rezervate.
Imaginați-vă confuzia pe care o declarație cum ar fi următoarea ar provoca-o:
Bibliography
SQL For Dummies®, 6th Edition, Allen G. Taylor, Wiley Publishing, Inc.; Roderick W. Smith; John Wiley & Sons, Inc., Canada
http://context.reverso.net; 2019
https://en.oxforddictionaries.com; 2019
http://www.dictionary.com; 2019
http://www.wikipedia.org; 2019