Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Instructiuni pentru definirea datelor

sql


Instructiuni pentru definirea datelor

Interogarile DDL (Data Definition Language) pentru definirea datelor reprezinta unul dintre modurile în care puteti defini structura tabelelor în Access. Celelalte doua moduri sunt: folosirea ferestrelor Table Design si Table Datasheet (despre care am vorbit în capitolul II) si prin intermediul obiectelor DAO (Data Access Objects), la care vom reveni în capitolul X.



Desi interogarile DDL nu va ofera prea multe facilitati, cum ar fi definirea regulilor de validare, a valorilor implicite etc., ele au avantajul de a avea la baza un limbaj standard foarte larg folosit - SQL.

Nu puteti crea interogari DDL cu ajutorul ferestrei QBE, ci doar în fereastra SQL View.

Cele patru instructiuni DDl oferite de Access SQL sunt: CREATE TABLE, ALTER TABLE, CREATE INDEX si DROP si despr 353h76d e ele vom vorbi pe larg în sectiunile urmatoare.

III.8.1. Instructiunea CREATE TABLE

Creeaza scheletul unei noi tabele si are urmatoarea sintaxa:

CREATE TABLE tabela (coloana1 tip1 [(dimensiunea1)]   

[CONSTRAINT restrictie_coloana1] [,coloana2 tip2

[(dimensiunea2)] [CONSTRAINT restrictie_coloana2]] [,.]   

[CONSTRAINT restrictie1_tabela [, restrictie2_tabela [,.]]]);   

Tipul de date corespunzator unei coloane poate fi unul dintre cele incluse în tabelul IV.6 de mai jos.

Tip de date Jet Engine SQL

Corespondentul în modul Table Design

BIT, BOOLEAN, LOGICAL, LOGICAL1, YESNO, BYTE, INTEGER1

Yes/No sau Number cu FielSize=Byte

COUNTER, AUTOINCREMENT

Autonumber cu Fieldsize=Long Integer

CURRENCY, MONEY

Currency

DATETIME, DATE, TIME

Date/Time

SHORT, INTEGER2, SMALLINT

Number, cu FieldSize=Integer

LONG, INT, INTEGER, INTEGER4

Number, cu FieldSize=Long

SINGLE, FLOAT4, IEEESINGLE, REAL

Number, cu FieldSize=Single

DOUBLE, FLOAT, FLOAT8, IEEEDOUBLE, NUMBER, NUMERIC

Number, cu FieldSize=Double

TEXT, ALPHANUMERIC, CHAR, CHARACTER, STRING, VARCHAR

Text

LONGTEXT, LONGCHAR, MEMO, NOTE

Memo

LONGBINARY, GENERAL, OLEOBJECT

LOE Object

GUID

Autonumber, cu FieldSize=Replication ID

Tabelul III.6

Nota: Tipurile aflate pe aceeasi linie în partea stânga a tabelului de mai sus sunt sinonime.

Puteti folosi parametrul optional dimensiunea pentru a specifica numarul maxim de caractere al unei coloane de tip text. Dimensiunea implicita este de 255 de caractere. Restul tipurilor de date nu folosesc aceasta optiune.

Urmatoarea interogare va crea tabela Titlu1, care are coloanele IdTitlu, Titlu si Salariu:

CREATE TABLE Titlu1 (IdTitlu COUNTER, Titlu TEXT (50),

Salariu LONG);

Clauza CONSTRAINT

Simplificând, putem afirma faptul ca aceasta clauza este folosita pentru a crea indecsi. Ea poate aparea atât în instructiunea CREATE TABLE, cât si în instructiunea ALTER TABLE. Ati observat ca în sintaxa instructiunii CREATE TABLE, clauza CONSTRAINT poate aparea ori la declararea fiecarei coloane, ori la sfârsit. Primul caz corespunde crearii unui index pe coloana respectiva, iar cel de al doilea, crearii indecsilor pe mai multe coloane ale tabelei.

Sintaxa pentru crearea unui index pe o singura coloana este:

CONSTRAINT nume_index

Pentru a crea un index pe mai multe coloane ale unei tabele, folositi sintaxa:

CONSTRAINT nume_index

Urmatoarea instructiune creeaza tabela Titlu1 si un index pe cheia primara IdTitlu. Numele indexului este chiar PrimaryKey. (Când lucrati în modul Table Design, cheia primara este indexata automat.)

CREATE TABLE Titlu1 (IdTitlu COUNTER CONSTRAINT PrimaryKey

PRIMARY KEY , Titlu TEXT(50), Salariu LONG);

Pentru a crea tabela Profesor1, folositi interogarea:

CREATE TABLE Profesor1 (IdProf COUNTER CONSTRAINT PrimaryKey

PRIMARY KEY , Nume TEXT(50), Catedra TEXT(50), IdTitlu LONG

CONSTRAINT TitluCS REFERENCES Titlu1, [Data Angajarii] DATETIME);

În instructiunea de mai sus am folosit doua clauze CONSTRAINT, prima pentru a crea indexul PrimaryKey pe cheia primara a tabelei Profesor1, IdProf, iar a doua pentru a atribui coloanei IdTitlu statutul de cheie straina si a stabili astfel legatura în tabelele Profesor1 si Titlu1.

Clauza CONSTRAINT nu va permite crearea indecsilor ne-unici. În acest scop, puteti folosi instructiunea CREATE INDEX.

III.8.2. Instructiunea CREATE INDEX

Puteti folosi aceasta instructiune pentru a crea indecsi pe tabelele existente. Sintaxa este:

CREATE [UNIQUE] INDEX nume_index

ON tabela (coloana1 [, coloana2 [,.] ] )

[WITH ];

Daca folositi cuvântul cheie UNIQUE, nu vor fi admise duplicate pe coloanele indexate. Pentru a crea un index pe cheia primara, folositi optiunea PRIMARY din clauza WITH. Indecsii pe cheia primara sunt în mod implicit unici, deci, în acest caz, nu mai trebuie sa folositi cuvântul cheie UNIQUE.

Prin optiunea IGNORE NULL, la crearea indexului vor fi ignorate valorile null ale coloanelor ce urmeaza a fi indexate. Astfel, daca o coloana indexata contine multe valori null, cautarile dupa acea coloana pentru valorile nenul vor fi mult mai rapide. Echivalentul în fereastra Table Design este propreitatea Ignore Nulls.

Folositi optiunea DISSALOW NULL pentru a împiedeca utilizatorul sa introduca valoarea null în coloana ce urmeaza a fi indexata. Similar, în modul Table Design dati proprietatii Required a coloanei respective valoarea Yes.

Puteti crea un index pe coloana Catedra a tabelei Profesor1 ce nu va permite introducerea valorii null în aceasta coloana, cu ajutorul instructiunii:

CREATE INDEX Catedra ON Profesor1 WITH DISSALOW NULL;

III.8.3. Instructiunea ALTER TABLE

Aceasta instructiune este folosita pentru a modifica structura unei tabele existente. Mai exact, puteti adauga sau sterge o coloana sau un index. Pentru fiecare dintre aceste actiuni, instructiunea ALTER TABLE are o sintaxa.

Pentru a adauga o coloana la o tabela, sintaxa este:

ALTER TABLE tabela ADD [COLUMN] coloana tipul [(dimensiunea)]

[CONSTRAINT index_pe_aceasta_coloana];

Pentru a adauga coloana avans la tabela Titlu1, scrieti:

ALTER TABLE Titlu1 ADD Avans Long;

Pentru a adauga un index, folositi sintaxa:

ALTER TABLE tabela ADD CONSTRAINT index;   

Pentru a crea un index unic pe coloana Avans, scrieti:

ALTER TABLE Titlu1 ADD CONSTRAINT Avans UNIQUE (Avans) ;

Cea de-a treia sintaxa a instructiunii ALTER TABLE este cea pentru stergerea unei coloane:

ALTER TABLE tabela DROP [COLUMN] coloana ;   

Astfel, pentru a sterge coloana Avans din tabela Titlu1, scrieti:

ALTER TABLE Titlu1 DROP Avans;   

Nota: Nu puteti sterge o coloana indexata dintr-o tabela fara a sterge, în prealabil, indexul respectiv.

Pentru a sterge un index, sintaxa instructiunii ALTER TABLE este urmatoarea:

ALTER TABLE tabela DROP CONSTRAINT index ;

De exemplu, pentru a sterge indexul creat anterior pe coloana Avans, scrieti:

ALTER TABLE Titlu1 DROP CONSTRAINT Avans;

Nota: Nu puteti sterge un index ce participa la mai multe relatii fara a sterge, în prealabil, relatiile respective.

III.8.4. Instructiunea DROP

O puteti folosi pentru a sterge cu totul o tabela sau un index. În primul caz, sintaxa este:

DROP TABLE tabela ;

De exemplu, pentru a sterge tabela Titlu1, folositi instructiunea:

DROP TABLE Titlu1;

Pentru a sterge un index, puteti folosi fie instructiunea ALTER TABLE, fie instructiunea DROP, a carei sintaxa, în acest caz, este:

DROP INDEX index ON tabela ;

Astfel, pentru a sterge indexul Avans creat la sectiunea anterioara, scrieti:

DROP INDEX Avans ON Titlu1;


Document Info


Accesari: 3002
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )