0% au considerat acest document util (0 voturi)
5 vizualizări10 pagini

Creați Tabela Comandă: Creează Tabel

Documentul discută despre diferite comenzi SQL pentru crearea, manipularea și interogarea tabelelor de baze de date. Oferă exemple de utilizare a comenzii CREATE TABLE pentru a defini schemele tabelelor, INSERT pentru a adăuga date, SELECT pentru a recupera date, clauzele WHERE și BETWEEN pentru a filtra rezultatele, GROUP BY pentru a agrega datele și JOIN-uri pentru a combina date din mai multe tabele. De asemenea, acoperă ALTER TABLE, DROP TABLE, UPDATE, DELETE și alte comenzi SQL de definire și manipulare a datelor.

Tradus de

ScribdTranslations
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
5 vizualizări10 pagini

Creați Tabela Comandă: Creează Tabel

Documentul discută despre diferite comenzi SQL pentru crearea, manipularea și interogarea tabelelor de baze de date. Oferă exemple de utilizare a comenzii CREATE TABLE pentru a defini schemele tabelelor, INSERT pentru a adăuga date, SELECT pentru a recupera date, clauzele WHERE și BETWEEN pentru a filtra rezultatele, GROUP BY pentru a agrega datele și JOIN-uri pentru a combina date din mai multe tabele. De asemenea, acoperă ALTER TABLE, DROP TABLE, UPDATE, DELETE și alte comenzi SQL de definire și manipulare a datelor.

Tradus de

ScribdTranslations
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd

CREAȚI TABELA COMANDĂ

Creează tabel

Mecanica de creare a unui tabel este relativ simplă. A fi capabil să proiectezi un bine
o bază de date bine gândită care se va scalda pentru a satisface nevoile unei întreprinderi de mari dimensiuni este foarte
întreprindere provocatoare. În aceste exemple, vom lucra prin dezvoltarea unui destul de
o bază de date simplă cu trei tabele. Procedând astfel, vom reuș i să acoperim o bună parte a dezvoltării
baze pentru crearea de tabele ș i indexuri.

Crearea tabelei persoană


CREAȚ I TABELA persoană
(
num INT NOT NULL ,
prenume VARCHAR(20) NULL,
nume_de_familie VARCHAR(30) NULL ,
cod_gen VARCHAR(1) NULL ,
DATETIME NULL
DATA_INACTIVĂ
CONSTRÂNGERE PK_Person CHEIE PRIEMIALĂ CLUSTERIZATĂ (num ASC)
PE [PRIMAR]
)

Crearea mesei de telefon


CREAȚ I TABELA telefon
(
person_num INT NOT NULL ,
tip_cod CHAR(3) NOT NULL,
CHAR(3) NULL
schimb CHAR(3) NULL ,
extensie CHAR(4) NULL ,
CONSTRÂNGERE PK_phone CHEIE PRIMARĂ CLUSTERIZATĂ
(person_num ASC, type_code ASC) PE [PRIMARY]
)

Crearea tabelului de adrese


CREAȚ I TABELA adresă
(
număr_persoane INT NU NULL,
CHAR(4) NU PERMIS
strada1
strada2
oraș
stat CHAR(2) NULL ,
cod_postal CHAR(10) NULL ,
CONSTRÂNGERE PK_address CHEIE PRIMARĂ CLUSTERIZATĂ
(person_num ASC, type_code ASC) PE [PRIMAR]
)
Această declaraț ie SQLCREATE TABLE defineș te un tabel nou pentru a stoca datele produselor:

CREAȚ I TABELUL PRODUSE


(MFR_ID CHAR(3),
PRODUCT_ID CHAR(5)
DESCRIERE VARCHAR(20)
PREMIUL MONETAR,
QTY_ON_HAND INTEGER

SQL Server - Noț iuni de bază SQLTable - Tipuri de date

SQL Server Precizia datelor


BIT Întreg: 0 sau 1
TINYINT Număr întreg pozitiv 0 -> 255
SMALLINT Număr întreg semnat -32,768 -> 32,767
INT Număr întreg semnat -2^31 -> 2^31-1
BIGINT Intreg semnat -2^63 -> 2^63-1
REAL Precizie în virgulă mobilă -1.79E + 308 -> 1.79E + 308
FLOAT Precizie flotantă -3.40E + 38 -> 3.40E + 38
BANI 4 zecimale, -2^63/10000 -> 2^63-1/10000
BANI MICI 4 zecimale, -214.748,3648 -> 214.748,3647
ZECIMAL Precizie fixă -10^38 + 1 -> 10^38 - 1
NUMERIC Precizie fixă -10^38 + 1 -> 10^38 - 1
DATA Ș I ORA Data+Timp 1753-01-01 -> 9999-12-31, precizie de 3,33 ms
SMALLDATETIMEData+Timp 1900-01-01 -> 2079-06-06, precizie de un minut
CHARn Ș ir de caractere non-Unicode de lungime fixă de 8.000 de caractere

NCHARn String Unicode de lungime fixă de 4.000 de caractere


VARCHARn Ș ir de caractere non-Unicode de lungime variabilă de până la 8.000 de caractere

NVARCHARn Ș ir Unicode de lungime variabilă de până la 4.000 de caractere

TEXT Ș ir fără lungime fixă non-Unicode de până la [Link] caractere


NTEXT Ș ir Unicode de lungime variabilă de până la [Link] de caractere
Binar Date binare de lungime fixă de până la 8.000 de caractere
VARBINARY Date binare de lungime variabilă de până la 8.000 de caractere

IMAGINE Date binare de lungime variabilă de până la [Link] caractere

COMANDA INSERT PENTRU A INSERA DATE ÎN TABEL


Odată ce tabela a fost creată, poți să o umpli cu date folosind comanda INSERT

INSEREAZĂ ÎN PRODUSE VALORI ('ACI', '41007', 'Widget Mărimea 7', 225.00, 250);
Ș TERGE TABELA
Ș TERGEȚ I TABELUL PRODUSE;

UPDATE TABELA
UPDATE PRODUSE SET DESCRIERE='ASDFGFG' WHERE PRODUS_ID='41007';

Ș TERGE REGISTRUL DIN TABEL


STERGE DIN PRODUSE UNDE PRODUCT_ID='41007';

ALTERAȚI COLUMNA UNEI TABELA


ALTER TABEL student
MODIFICARE COLONĂ rotiț ă NU NULL;

Comanda ALTER PENTRU ADĂUGAREA CONSTRÂNGERII


MODIFICA TABEL STUDENT
ADĂUGA CONSTRÂNGERE pk_roll
primar cheie(rol)

Comanda ALTER PENTRU Ș TERGEREA CONSTRÂNGERII

modifica tabelul studentdrop constraint pk_roll;

CHEIE STRAINĂ
O coloană dintr-un tabel al cărei valoare se potrivește cu cheia primară dintr-un alt tabel se numește
o cheie străină.

creează tabel mărci(rollint,tmarksint,STRĂIN cheie(minge) referinț e


student(rol);

Aici studentul este tabelul părinte ș i roll este cheia primară a tabelului părinte.
este referit de tabela copil marks.

MODIFICARE PENTRU ADĂUGAREA CONDIȚIEI CHEII STRĂINE

ALTER TABEL marks2


ADAUGĂ CONSTRÂNGERE fk_r
STRĂIN CHEIE(rol)
REFERINTE student1(rol);

CHEIE PRIMARĂ COMPUSĂ


CREAȚ I Tabel CategoriiComp (
CategorieID NU NULL
CodCategoriechar(5) NU NULL
NumeleCategoriei varchar(50) NU NULL
CONSTRÂNGERE PK_Categorii
PRIMAR CHEIE(IdentificatorCategorie, CodCategorie));

INSEREAZĂ ÎN CategoriileCompVALORI(1, AAA Pisica 1


INSERARE INTO CategoriiCompVALUES(2, AAA Pisica 4
INSERARE INTO CategoriesCompVALUES(2, AAA Pisica 3');//eș ec
INSERARE ÎNTO CategoriesCompVALUES(1, BBB Pisica 2

CONSTRÂNGERE DEFAULT
creează tabel student2(rollint,numechar(15),tmarksint default(0));

insera în student2(rol,nume) valori(1,'Ram');

selectaț i * de la student2;

CONSTRÂNGERE DE VERIFICARE
crea tabel student3(rollint,numechar(15),tmarksint verifică(tmarks<500));
insera în student3values(1,'Ram',367);
inserează în student3values(1,'Ram',602);//eș uează

DECLARAȚIE SELECT

Declarația SQL care preia date din baza de date se numește


SELECT. Această declaraț ie SQL preia datele dorite:

PENTRU A ALEGERE TOATE COLUMNS DIN TABELUL "OFFICE"

SELECT *
DIN BIROURI;

PENTRU SELECTAREA COLUMNELOR SPECIFICE ALE TABELULUI "OFFICE"


ORAȘ
DIN BIROURI;

INCLUZIE AFERENTĂ CU CONDIȚIE


SELECT NAME, SALES, QUOTA
DIN BIROURI
UNDE VÂNZĂRILE < COTĂ

ORAȘ
DIN BIROURI
UNDE REGIUNE = 'Est'
Ș I VÂNZĂRILE > OBIECTIV

SELECT NAME, SALES


DE LA REPREZENTANȚ II DE VÂNZĂ
UND MANAGER = 104

SELECTAȚ I ORAȘ UL, MGR


DE LA OFICII
UNDE MGR <> 108

CUVÂNT CHEIE DISTINCT


Puteți elimina rândurile duplicate ale rezultatelor interogării prin inserarea cuvântului cheie DISTINCT în
declaraț ia SELECT tocmai înaintea listei de selectare.

SELECT DISTINCT MGR


DIN BIROURI;

CLAUZA ORDER BY PENTRU SORTARE ÎN FUNCȚIE DE COLUMNA DATĂ


Puteți solicita SQL să sorteze rezultatele unei interogări inclusiv clauza ORDER BY în SELECT
declarație.

ORDINE ASCENDENTĂ

SELECTAȚ I ORAȘ UL, REGIUNEA, VÂNZĂRI


DIN BIROURI
ORDONARE DUPĂ REGIUNE, ORAȘ

ORAȘ REGIUNE VÂNZĂRI


----------- -------- -----------
Atlanta Estic 367.911,00 $
Chicago Estic 735.042,00 $
New York Est 692.637,00 $
Denver Vestic 186.042,00 $
Los Angeles Vest 835,915.00 $
ORDINE DESCRESCĂTOARE

ORAȘ
DIN BIROURI
ORDONEAZĂ DUPĂ VÂNZĂRI DESCRESCĂTOARE

ORAȘ REGIUNE VÂNZĂRI


----------- -------- -----------
Los Angeles Western 835.915,00 $
Chicago Estic $735,042.00
New York Est 692.637,00$
Atlanta Est $367,911.00
Denver Vestic 186.042,00 lei

CLAUZA ÎNTRE

SQL oferă o formă diferită de condiție de căutare cu testul de interval folosind BETWEEN

SELECTAȚ I ORAȘ , NUME, COTĂ


DIN BIROURI
UNDE VÂNZĂRILE ÎNTRE 4095 Ș I 12000

SELECT NUMĂR_ORDINE, SUMĂ


DIN COMENZI
UNDE SUMA ÎNTRE 20000.00 Ș I 29999.99

Versiunea negată a testului de interval (NU ÎNTRE) verifică valorile care se află în afara
intervalul, ca în acest exemplu:

SELECT NUMĂR_COMANDĂ, SUMĂ


DIN COMENZI
UNDE SUMA NU ESTE ÎNTRE 20000.00 Ș I 29999.99

ÎN CLAUZĂ
O altă condiție de căutare comună este testul de apartenență la un set folosind IN

SELECT * FROM BIROURI


UNDE ORAȘ ÎN (‘DELHI’,’MUMBAI’,’CHENNAI’);

SELECT
DE LA REPREZENTANȚ II DE VÂNZĂ
UNDE OFICIUL_DE_REPRESENTARE ÎN (11, 13, 22)

CAUTARE
Un test simplu de comparare poate fi folosit pentru a recupera rânduri în care conținutul unui text
coloană se potrivește cu un text anume.

Caracterul wildcard procent (%) se potriveș te cu orice secvenț ă de zero sau mai multe
personaje.

SELECTAȚ I COMPANIA, LIMITA DE CREDIT


DE LA CLIENȚ I
UNDE COMPANIA CA 'Smith%' ;

Caracterul wildcard underscore (_) se potriveș te cu orice caracter unic.

SELECT COMPANIE, LIMITĂ_CREDIT


DE LA CLIENȚ I
UNDE COMPANIA ÎNCEPE CU 'S_ith';

FUNCȚIA AVG PENTRU A OBTINE MEDIA UNEI COLUMNE DATA


SELECT MEDIA(VÂNZĂRI)
DIN OFICII
UNDE REGIUNEA = 'Est'

FUNCȚIA SUM PENTRU A OBTINE SUMA UNEI COLUMNE DATE


SELECT SUM(VÂNZĂRI)
DIN BIROURI;

GĂSIREA VALORILOR EXTREME (MIN Ș I MAX)


SELECT MIN(VENITURI), MAX(VENITURI)
DIN OFICII;

Funcț ia de coloană COUNT ( ) numără numărul de date


valori într-o coloană.
SELECT COUNT (CUST_NUM)
DIN PARTEA CLIENȚ ILOR;

SQL suportă o funcț ie specială de coloană COUNT(*), care


numără rânduri mai degrabă decât valori de date.

SELECT COUNT(*)
DIN COMENZI;

Join-uri (Echivalente)
Procesul de formare a perechilor de rânduri prin potrivirea conț inutului celor corespunzătoare
coloanele se numesc îmbinarea tabelelor. Tabelul rezultat (care conț ine date
din ambele tabele originale) se numeș te o asociere între cele două tabele. (O
unirea pe baza unei corespondenț e exacte între două coloane se numeș te mai precis o
equi-join

SELECT NUMĂR_COMANDĂ, SUMĂ, COMPANIE, LIMITĂ_CREDIT


DIN COMENZI, CLIENȚ I
UNDE CUST = CUST_NUM

Alăturări cu criterii de selecție a rândurilor

SELECTAȚ I ORAȘ UL, NUMELE, TITLUL


DIN BIROURI, REPREZENTANȚ I DE VÂNZĂRI
UNDE MGR = EMPL_NUM
Ș I Ț INTA > 6000

Joinuri non-echivalente
Termenul 'join' se aplică oricărei interogări care combină date din două tabele prin compararea
valorile dintr-o pereche de coloane din tabele. Deși îmbinările bazate pe egalitate între
coloni care se potrivesc (equi-joins) sunt cu mult cele mai comune join-uri, SQL permite de asemenea să
alătură tabelele bazându-se pe altele operatori de comparație. Iată un exemplu în care o valoare este mai mare
testul de comparație decât (>) este folosit ca bază pentru un join:

NUME
DIN REPREZENTANȚ II DE VÂNZĂ, OFICII
UNDE COTA > OBIECTIV

Clauza GROUP BY
Clauza SQL GROUP BY este folosită împreună cu funcț iile de grup pentru a recupera datele grupate.
conform unuia sau mai multor coloane.

De exemplu: Dacă doriț i să ș tiț i suma totală a salariului cheltuit pe fiecare departament, atunci
interogare ar fi:

SELECT dept, SUM (salariu)


DE LA angajat
GRUPARE DUPĂ dept;

Rezultatul ar fi ca:

departament
salariu
Electrice 25000
Electronice 55000
Aeronavigaț ie 35000
InfoTech 30000

Coloane de grupare multiple

SELECT locatie, departament, SUMA (salariu)


DIN angajat
GRUPAȚI DUPĂ locaț ie, departament;
Ieşirea ar fi astfel:

loca ț ie
Electrice Bangalore 25000
Electrocasnice Bangalore 55000
Mysore Aeronauț i 35000
Mangalore InfoTech 30000

Condiț ii de căutare a grupului (clauza HAVING)


La fel cum clauza WHERE poate fi folosită pentru a selecta ș i a respinge rândurile individuale.
care participă la o interogare, clauza HAVING poate fi utilizată pentru a selecta ș i
respinge grupurile de rânduri.

SELECT REP, AVG(AMOUNT) DIN ORDERS

GRUPAT DUPĂ REP

AVÂND SUMA(ÎNDEDEN) > 30000

Subinterogări
O subinterogare este o interogare în cadrul unei interogă[Link]
sau interogare internă sau interogare înnodată este o
interogare într-o interogare. O subinterogare este de obicei adăugată în clauza WHERE a
instrucț iune sql.

SELECTAȚ I ORAȘ UL
DIN BIROURI
UNDE SCOPUL > (SELECT SUMA(COTĂ))
DE LA REPREZENTANȚ II DE VÂNZĂ
UNDE REP_OFFICE = OFFICE

SELECTAȚ I NUMELE
DE LA REPREZENTANȚ II DE VÂNZĂ
UNDE COTA >= (SELECTAȚ I Ț INTA
DIN BIROURI
UNDE ORAȘ = 'Atlanta')

PROCURI STOCATE
O procedură stocată este una sau mai multe comenzi SQL stocate într-o bază de date ca un obiect executabil.
Procedurile stocate pot fi apelate interactiv, din codul aplicaț iei client, din interiorul
alte proceduri stocate ș i din interiorul declanș atorilor. Parametrii pot fi transmiș i ș i returnaț i din
proceduri stocate pentru a spori utilitatea ș i flexibilitatea acestora. O procedură stocată poate returna
o serie de seturi de rezultate ș i un cod de stare.
O procedură stocată care returnează titlurile cărț ilor ș i numele autorilor care le-au scris

CREATE [SAU REPLACE] PROCEDURE nume_proc [lista de parametri]


ESTE
Secț iunea de declaraț ie
ÎNCEPE
Secț iunea de execuț ie
EXCEPȚ IE
Secț iunea de excepț ii
ÎNCHIS;

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