Transact-SQL - crearea unei baze de date. Adăugarea unui nou utilizator. Folosind SQL Server Enterprise Manager

Exemplu de creație baza locala Date Microsoft SQL Server VDOMNIȘOARĂ Studio vizual

Acest subiect prezintă o soluție la problema creării unei baze de date tip SQL Server folosind MS Visual Studio. Sunt luate în considerare următoarele întrebări:

  • lucrul cu fereastra Server Explorer din MS Visual Studio;
  • crearea unei baze de date locale de tip SQL Server Database;
  • crearea de tabele în baza de date;
  • editarea structurilor tabelelor;
  • conectarea tabelelor bazei de date între ele;
  • introducerea datelor în tabele folosind MS Visual Studio.

Sarcina

Folosind instrumentele MS Visual Studio, creați o bază de date de tip MS SQL Server numită Education. Baza de date conține două tabele Student și Session. Tabelele sunt legate între ele printr-un anumit câmp.

Structura primului tabel „Student”.

Structura celui de-al doilea tabel „Sesiunea”.

Performanţă

1. Descărcați MS Visual Studio.

2. ActivațifereastrăServer Explorer.

Pentru a lucra cu baze de date, Microsoft oferă un server de baze de date ușor Microsoft SQL Server. Sunt diferite versiuni Microsoft SQL Server, de exemplu: Microsoft SQL Server 2005, Microsoft SQL Server 2008, Microsoft SQL Server 2014 și alte versiuni.

Aceste versiuni pot fi descărcate de pe site-ul Microsoft www.msdn.com.

Acest server este excelent pentru a lucra cu baze de date. Este gratuit și are GUI pentru a crea și administra baze de date cu folosind SQL Instrument de management al serverului.

În primul rând, înainte de a crea o bază de date, trebuie să activați utilitarul Server Explorer. Pentru a face acest lucru, în MS Visual Studio trebuie să apelați (Fig. 1)

Vizualizare -> Server Explorer

Orez. 1. Apelați Server Explorer

După apelare, fereastra Server Explorer va avea un aspect aproximativ, așa cum se arată în Figura 2.

Orez. 2. Fereastra Server Explorer

3. Crearea bazei de date „Educație”.

Pentru a crea o nouă bază de date bazată pe furnizorul de date Microsoft SQL Server, trebuie să faceți clic pe nodul Conexiuni de date și apoi să selectați „ Creați o nouă bază de date SQL Server...” (Fig. 3).

Orez. 3. Apelarea comenzii de creare a bazei de date date SQL Server

Ca urmare, fereastra „ Creați o nouă bază de date SQL Server„(Fig. 4).

În fereastra (în câmpul „Nume server”), indicați numele server local instalat pe computerul dvs. În cazul nostru, acest nume este „SQLEXPRESS”.

În câmpul „Nume nou bază de date:”, indicați numele bază creată date. În cazul nostru, acest nume este Educație.

Opțiunea Utilizați autentificare Windows trebuie lăsată neschimbată și faceți clic pe OK.

Orez. 4. Creația noua baza Date SQL Server 2008 Express folosind MS Visual Studio 2010

După parcurgerea pașilor, fereastra Server Explorer va lua forma prezentată în Figura 5. După cum se poate vedea din Figura 5, baza de date Education cu numele

sasha-pc\sqlexpress.Education.dbo

Orez. 5. Fereastra Server Explorer după adăugarea bazei de date Education

4. Obiecte baze de date educaționale.

Dacă extindeți baza de date Education (semnul „+”), puteți vedea o listă cu următoarele obiecte principale:

  • Diagrame baze de date – diagrame baze de date. Diagramele arată relațiile dintre tabelele bazei de date, relațiile dintre câmpuri mese diferiteși așa mai departe.;
  • Tabele – tabele în care sunt plasate datele bazei de date;
  • Vederi – reprezentări. Diferența dintre vederi și tabele este că tabelele bazei de date conțin date, în timp ce vizualizările de date nu, iar conținutul este selectat din alte tabele sau vederi;
  • Proceduri stocate – proceduri stocate. Sunt un grup de instrucțiuni SQL asociate care oferă flexibilitate suplimentară atunci când lucrați cu o bază de date.

5. Crearea tabelului Student.

Pe acest moment Baza de date Education este complet goală și nu conține niciun obiect (tabele, proceduri stocate, vizualizări etc.).

Pentru a crea un tabel, trebuie să apelați meniul contextual (faceți clic Click dreapta mouse) și selectați comanda „Add New Table” (Figura 6).

Orez. 6. Adăugați o nouă comandă de tabel

Există o altă opțiune pentru adăugarea unui tabel de bază de date folosind comenzile din meniul Date:

Date -> Adăugați nou -> Tabel

Orez. 7. Opțiune alternativă adăugarea unui nou tabel

Ca rezultat, se va deschide fereastra de adăugare a tabelului, care conține trei coloane (Figura 8). În prima coloană „Numele coloanei” trebuie să introduceți numele câmpului corespunzător din tabelul bazei de date. În a doua coloană „Tipul de date” trebuie să introduceți tipul de date al acestui câmp. A treia coloană „Allow Nulls” indică opțiunea posibilității de a lipsi date în câmp.

Orez. 8. O nouă fereastră de creare a unui tabel

Folosind editorul de tabel, trebuie să creați tabelul Student așa cum se arată în Figura 9. Numele tabelului trebuie specificat când îl închideți.

În editorul de tabel, puteți seta proprietățile câmpului în fereastra Proprietăți coloane. Pentru a seta lungimea șirului (nvchar) în caractere, există o proprietate Length în fereastra Column Properties. Valoarea implicită pentru această proprietate este 10.

Orez. 9. Masa studentului

Următorul pas este să setați câmpul cheie. Acest lucru se face prin apelarea comenzii „Set Primary Key” din meniul contextual al câmpului Num_book. Folosind câmpul cheie se vor stabili relații între tabele. În cazul nostru, câmpul cheie este numărul caietului de note.

Orez. 10. Setarea unui câmp cheie

După setarea cheii primare, fereastra tabelului va arăta ca în figura 11.

Orez. 11. Masa elevilor după formarea finală

Acum poți închide masa. În fereastra pentru salvarea tabelului, trebuie să îi setați numele - Student (Fig. 12).

Orez. 12. Introducerea numelui tabelului Student

6. Crearea tabelului Session.

Urmând exemplul creării tabelului Student, este creat tabelul Session.

Figura 13 prezintă tabelul de sesiuni după formarea finală. Cheia principala(Cheia primară) este setată în câmpul Num_book. Numele tabelului este dat de Sesiune.

Orez. 13. Tabelul sesiunii

După parcurgerea pașilor, Fereastra serverului Explorer va afișa două tabele Student și Session.

Astfel, orice număr de tabele poate fi adăugat la baza de date.

7. Editarea structurii tabelului.

Există momente când trebuie să modificați structura unui tabel de bază de date.

Pentru a face modificări la tabelele bazei de date în MS Visual Studio, mai întâi trebuie să debifați opțiunea „Preveniți salvarea modificărilor” care necesită recrearea mesei” așa cum se arată în Figura 14. În caz contrar, MS Visual Studio va bloca modificările aduse tabelului creat anterior. Fereastra Opțiuni prezentată în Figura 14 este apelată din meniul Instrumente în următoarea secvență:

Tools -> Options -> Database Tools -> Table and Database Designers

Orez. 14. Opțiunea „ Preveniți salvarea modificărilor care necesită recrearea tabelului

Odată configurat, puteți modifica structura tabelului. Pentru a face acest lucru, utilizați comanda „Open Table Definition” (Figura 15) din meniul contextual, care este apelat pentru tabelul selectat (clic dreapta).

Orez. 15. Apelarea comenzii „Open Table Definition”.

Această comandă se află și în meniul Date:

Date -> Definiție tabel deschis

Tabelul trebuie mai întâi selectat.

8. Stabilirea legăturilor între tabele.

În conformitate cu condițiile problemei, tabelele sunt legate între ele prin câmpul Num_book.

Pentru a crea o relație între tabele, trebuie mai întâi (Figura 16):

  • selectați obiectul Diagrama bazei de date;
  • selectați comanda Add New Diagram din meniul contextual (sau din meniul Date).

Orez. 16. Apelarea comenzii pentru a adăuga o nouă diagramă

Ca rezultat, se va deschide o fereastră pentru adăugarea unei noi diagrame Add Table (Figura 17). În această fereastră, trebuie să selectați două tabele Sesiune și Student în secvență și faceți clic pe butonul Adăugare.

Orez. 17. Fereastra pentru adăugarea de tabele la o diagramă

Orez. 18. Tabelele pentru elev și sesiune după adăugarea lor la diagramă

Pentru a începe să stabiliți o relație între tabele, trebuie să faceți clic pe câmpul Num_book din tabelul Student și apoi (fără a elibera butonul mouse-ului) să îl trageți în câmpul Num_book din tabelul Session.

Ca rezultat, două ferestre se vor deschide secvenţial: Tables and Columns (Fig. 19) şi Foreign Key Relationship (Fig. 20), în care trebuie să lăsaţi totul ca atare şi să confirmaţi alegerea cu OK.

În fereastra Tabele și coloane, specificați numele relației (FK_Session_Student) și numele tabelelor părinte (Student) și copil.

Orez. 19. Fereastra Tabele și Coloane

Orez. 20. Fereastra pentru setarea proprietatilor relatiei

După acțiunile finalizate, se va stabili relația dintre tabele (Figura 21).

Orez. 21. Relația dintre tabelele Student și Session

Salvarea unei diagrame se face în același mod ca și salvarea unui tabel. Numele diagramei trebuie ales la discreția dvs. (de exemplu, Diagrama 1).

După specificarea numelui diagramei, se va deschide fereastra Salvare, în care trebuie să confirmați alegerea (Figura 22).

Orez. 22. Confirmarea salvării modificărilor în tabele

9. Introducerea datelor în tabele.

Sistem Microsoft Visual Studio vă permite să introduceți direct date în tabelele bazei de date.

În cazul nostru, când se stabilește o conexiune (Fig. 19), tabelul Student este selectat ca Tabel cheie primară. Prin urmare, mai întâi trebuie să introduceți date în celulele acestui tabel special. Dacă încercați să introduceți mai întâi date în tabelul de sesiune, sistemul va bloca o astfel de intrare și va afișa un mesaj corespunzător.

Pentru a apela modul de introducere a datelor în tabelul Student, trebuie să apelați comanda Show Table Data din meniul contextual (clic dreapta) sau din meniul Date (Fig. 23).

Orez. 23. Comanda Show Table Data

Se va deschide o fereastră în care trebuie să introduceți datele de intrare (Fig. 24).

Orez. 24. Introducerea datelor în tabelul Student

După introducerea datelor în tabelul Student, trebuie să introduceți datele în tabelul Session.

Când introduceți date în câmpul Num_book din tabelul Session, trebuie să introduceți exact aceleași valori care au fost introduse în câmpul Num_book din tabelul Student (deoarece aceste câmpuri sunt legate între ele).

De exemplu, dacă valorile sunt introduse în câmpul Num_book din tabelul Student “101”, “102”, “103” (vezi Fig. 24), atunci aceste valori ar trebui introduse în câmpul Num_book din tabelul Session. Dacă încercați să introduceți o valoare diferită, sistemul va afișa aproximativ următoarea fereastră (Fig. 25).

Orez. 25. Mesaj de eroare despre introducerea datelor pentru tabelele Student și Session legate

Tabelul de sesiuni cu datele introduse este prezentat în Figura 26.

Microsoft SQL Server 005 - Un exemplu de creare a unui fișier „*.mdf” pentru o bază de date locală Microsoft SQL Server în Microsoft Visual Studio

După instalare, trebuie să adăugați un utilizator pentru a lucra cu baza de date și, în consecință, să creați o nouă bază de date. Mai jos vă vom spune cum să faceți acest lucru.

1. Adăugarea unui nou utilizator

Lansa programul " miercuri SQL Server Management Studio» (« start» — « Microsoft SQL Server 2008 R2» — « Mediul SQL Server Management Studio») .

În fereastra care se deschide, selectați:

  • Tip server: " Componenta motorului bazei de date» .
  • Numele serverului în formatul " <Имя компьютера>\<Идентификатор экземпляра> " , Unde
    <Имя компьютера>- Nume calculator fizic pe care este instalat SQL Server (în exemplul meu " S4»).
    <Идентификатор экземпляра>— setați numai dacă vă conectați la o instanță numită a SQL Server.
  • Autentificare:" Autentificare SQL Server" sau " Autentificare Windows»
  • Autentificare: nume de utilizator SQL Server.
  • Parola: În cazul autentificării SQL Server, parola pentru utilizatorul selectat.

Apoi apasa " Conectați» .

Dacă totul este introdus corect, în fereastra „ Browser de obiecte„Vom vedea o filă cu numele serverului nostru SQL. În ea, deschideți fila „ Siguranță» — « Conectări" si in meniul contextual Selectați " Creați autentificare» .

Fereastra " Crearea unui login". Pe " Sunt comune" completați:

  • Autentificare: nume de utilizator SQL.
  • Selectați autentificarea: SQL Server.
  • Venim cu o parolă pentru utilizator.

(Dacă este necesar, puteți defini alte setări de securitate). Apoi mergeți la „ Roluri de server» .

Pe această pagină trebuie să indicați pentru utilizator dat. De exemplu, dacă trebuie să creați un utilizator cu drepturi administrative, trebuie să setați rolul pentru el

  • administrator de sistem

Dacă un utilizator este creat pentru a conecta programe sau, atunci este suficientă specificarea rolurilor

  • dbcreator
  • procesadmin
  • public

atribuite tuturor utilizatorilor.

După ce ați specificat toate rolurile necesare pentru utilizatorul care este creat, faceți clic pe „ Bine» .

Aceasta completează procedura de creare a utilizatorului.

2. Creați o nouă bază de date

Pentru a adăuga o nouă bază de date, în " Mediul Microsoft SQL Server Management Studio„Clic dreapta pe „fila” Bază de date" și selectați " Creați o bază de date» .

În fereastra care se deschide " Crearea bazei de date" pe fila " Sunt comune" completați:

  • Setați numele bazei de date. Numele bazei de date nu trebuie să înceapă cu un număr sau să aibă spații în nume, altfel vom primi o eroare:
    « Sintaxă incorectă lângă constructul %numele bazei de date%".
  • Selectați utilizatorul creat în pasul anterior ca proprietar.

Apoi mergeți la „ Opțiuni» .

Aici trebuie să selectați „ Model de recuperare» baze de date și « Nivel de compatibilitate". Acești parametri depind de aplicația care va fi utilizată cu baza de date creată pe serverul SQL. De exemplu, trebuie să setați

  • Nivel de compatibilitate: " SQL Server 2000 (80)» .

Ar trebui să acordați o atenție deosebită parametrului „ Model de recuperare» baza de date în curs de creare. Detalii despre modelele de recuperare a bazelor de date și ce acest parametru influențe, am scris. Dacă aveți îndoieli, alegeți model simplu recuperare.

După ce ați decis asupra parametrilor, faceți clic pe „ Bine» .

După care ar trebui să vedem baza de date nou creată în listă.

Te-a ajutat acest articol?

Adnotare: Procesul de creare a unei baze de date este definit. Sunt descriși operatori pentru crearea și modificarea unei baze de date. Se are în vedere posibilitatea de a specifica numele unui fișier sau mai multor fișiere pentru stocarea datelor, dimensiunea și locația fișierelor. Sunt analizați operatorii pentru crearea, modificarea și ștergerea tabelelor de utilizatori. Este furnizată o descriere a parametrilor pentru declararea coloanelor din tabel. Sunt prezentate conceptul și caracteristicile indicilor. Sunt luați în considerare operatorii pentru crearea și modificarea indicilor. Se determină rolul indicilor în îmbunătățirea eficienței executării instrucțiunilor SQL.

Bază de date

Crearea bazei de date

În diferite SGBD, procedura de creare a bazelor de date este de obicei atribuită doar administratorului bazei de date. În sistemele cu un singur utilizator, baza de date implicită poate fi creată direct în timpul instalării și configurării DBMS-ului propriu-zis. Standardul SQL nu definește cum ar trebui create bazele de date, deci în fiecare dintre dialecte Limbajul SQL De obicei, se folosește o abordare diferită. Conform standardului SQL, tabele și alte obiecte de bază de date există în anumite medii. Printre altele, fiecare mediu constă dintr-unul sau mai multe directoare, iar fiecare director este format dintr-un set de scheme. O schemă este o colecție numită de obiecte de bază de date, într-un fel prieten înrudit cu un prieten (toate obiectele din baza de date trebuie descrise într-una sau alta schemă). Obiectele de schemă pot fi tabele, vederi, domenii, instrucțiuni, mapări, interpretări și seturi de caractere. Toți au același proprietar și mulți valori generale, acceptat implicit.

Standardul SQL lasă dezvoltatorilor DBMS dreptul de a alege un mecanism specific pentru crearea și distrugerea directoarelor, dar mecanismul de creare și ștergere a schemelor este reglementat prin instrucțiunile CREATE SCHEMA și DROP SCHEMA. Standardul specifică, de asemenea, că în cadrul instrucțiunii de creare a schemei trebuie să fie posibilă definirea unei game de privilegii, disponibile utilizatorilor circuit creat. in orice caz moduri specifice Definițiile unor astfel de privilegii variază între SGBD.

În prezent, instrucțiunile CREATE SCHEMA și DROP SCHEMA sunt implementate în foarte puține SGBD. În alte implementări, de exemplu, în MS SQL Server DBMS, este utilizat operatorul CREATE DATABASE.

Crearea unei baze de date în mediul MS SQL Server

Procesul de creare a unei baze de date într-un sistem de server SQL constă din două etape: mai întâi, baza de date în sine este organizată și apoi baza de date care îi aparține. Jurnal de tranzacții. Informațiile sunt plasate în fișiere corespunzătoare cu extensiile *.mdf (pentru baza de date) și *.ldf. (Pentru Jurnal de tranzacții). Fișierul bazei de date înregistrează informații despre obiectele principale (tabele, indexuri, vizualizări etc.) și despre fișier Jurnal de tranzacții– despre procesul de lucru cu tranzacțiile (monitorizarea integrității datelor, starea bazei de date înainte și după executarea tranzacțiilor).

Crearea unei baze de date în sistemul SQL server se realizează cu comanda CREATE DATABASE. Trebuie remarcat faptul că procedura de creare a unei baze de date într-un server SQL necesită drepturi de administrator de server.

<определение_базы_данных>::= CREATE DATABASE database_name [<определение_файла>[,...n] ] [,<определение_группы>[,...n] ] ] [ LOG ON (<определение_файла>[,...n] ) ] [ PENTRU ÎNCĂRCARE | PENTRU ATASARE ]

Să luăm în considerare principalii parametri ai operatorului prezentat.

Atunci când alegeți un nume de bază de date, ar trebui să urmați regulile generale pentru denumirea obiectelor. Dacă numele bazei de date conține spații sau orice alte caractere ilegale, acesta este cuprins între delimitatori (ghilimele duble sau paranteze pătrate). Numele bazei de date trebuie să fie unic în cadrul serverului și nu poate depăși 128 de caractere.

Când creați sau editați o bază de date, puteți specifica numele fișierului care va fi creat pentru aceasta, puteți modifica numele, calea și Dimensiunea originală acest fișier. Dacă, în timp ce utilizați baza de date, intenționați să o plasați pe mai multe discuri, puteți crea așa-numitele fișiere de bază de date secundare cu extensia *.ndf. În acest caz, informațiile principale despre baza de date se află în fișierul primar (PRIMARY), iar dacă nu există suficient spațiu liber pentru acesta, informațiile adăugate vor fi plasate în fișierul secundar. Abordarea utilizată în SQL Server permite ca conținutul bazei de date să fie distribuit pe mai multe volume de disc.

Parametrul ON specifică o listă de fișiere de pe disc pentru stocarea informațiilor stocate în baza de date.

Parametrul PRIMARY specifică primarul . Dacă este omis, primul fișier din listă este principal.

Parametrul LOG ON specifică lista fișierelor de pe disc care urmează să fie plasate Jurnal de tranzacții. Nume fișier pentru Jurnal de tranzacții este generat pe baza numelui bazei de date și este atașat cu caractere _log la sfârșit.

Când creați o bază de date, puteți defini un set de fișiere din care va consta. Fișierul este definit folosind următorul construct:

<определение_файла>::= ([ NAME=nume_fișier_logic,] FILENAME="nume_fișier_fizic" [,SIZE=dimensiune_fișier ] [,MAXSIZE=(dimensiune_max_fișier |NELIMITATĂ ) ] [, FILEGROWTH=mărime_creștere ])[,...n]

Aici nume de fișier logic– acesta este numele fișierului sub care va fi recunoscut la executarea diferitelor comenzi SQL.

Numele fizic al fișierului menită să indice calea plinăși numele corespondenților dosar fizic, care va fi creat pe hard disk. Acest nume va rămâne cu fișierul la nivel de sistem de operare.

Parametrul SIZE determină dimensiunea inițială a fișierului; Dimensiunea minimă a parametrului este de 512 KB, dacă nu este specificat, valoarea implicită este de 1 MB.

Parametrul MAXSIZE determină dimensiune maximă fișier de bază de date. Când este setat parametrul UNLIMITED, dimensiunea maximă a bazei de date este limitată spatiu liber pe disc.

Când creați o bază de date, puteți activa sau dezactiva creșterea automată a dimensiunii acesteia (aceasta este determinată de parametrul FILEGROWTH) și să specificați creșterea folosind o valoare absolută în MB sau un procent. Valoarea poate fi specificată în kilobytes, megabytes, gigabytes, terabytes sau procent (%). Dacă este specificat un număr fără sufixul MB, KB sau %, valoarea implicită este MB. Dacă dimensiunea pasului de creștere este specificată ca procent (%), dimensiunea este mărită cu procentul specificat din dimensiunea fișierului. Dimensiunea specificată rotunjit la cel mai apropiat 64 KB.

Fișierele suplimentare pot fi incluse în grup:

<определение_группы>::=FILEGROUP nume_grup_fișier<определение_файла>[,...n]

Exemplul 3.1. Creați o bază de date și, pentru date, definiți trei fișiere pe unitatea C, pentru Jurnal de tranzacții– două fișiere pe unitatea C.

CREAȚI ARCHIVĂ BAZĂ DE DATE ÎN PRIMAR (NAME=Arch1, FILENAME='c:\user\data\archdat1.mdf', SIZE=100MB, MAXSIZE=200, FILEGROWTH=20), (NAME=Arch2, FILENAME='c:\user \data\archdat2.mdf', SIZE=100MB, MAXSIZE=200, FILEGROWTH=20), (NAME=Arch3, FILENAME='c:\user\data\archdat3.mdf', SIZE=100MB, MAXSIZE=200, FILEGROWTH =20) LOG ON (NUME=Archlog1, FILENAME='c:\user\data\archlog1.ldf', SIZE=100MB, MAXSIZE=200, FILEGROWTH=20), (NAME=Archlog2, FILENAME='c:\user \data\archlog2.ldf', SIZE=100MB, MAXSIZE=200, FILEGROWTH=20) Exemplul 3.1. Crearea bazei de date.

Tipul de limbaj folosit într-un anumit SGBD este numit dialectSQL. De exemplu, se numește dialectul Oracle DBMS P.L./ SQL; MSSQLServer și DB2 folosesc dialect Tranzac- SQL; în Interbase și Firebird– isql. Fiecare dialect SQL este compatibil într-o anumită măsură cu standardul SQL, dar poate avea diferențe și extensii de limbaj specifice, așa că pentru a afla sintaxa unei anumite instrucțiuni SQL, ar trebui să vă uitați mai întâi. Ajutor SGBD specific.

Pentru operațiunile pe baze de date și tabele, standardul sql oferă următorii operatori:

Următoarea este sintaxa SQL92 pentru aceste instrucțiuni. Deoarece sintaxa lor în SGBD poate diferi de standard, se recomandă consultarea sistemului de ajutor SGBD atunci când efectuați lucrări de laborator.

Numele obiectelor bazei de date (tabele, coloane etc.) pot consta din caractere alfanumerice și caracterul de subliniere. Caracterele speciale (@$# etc.) indică de obicei un tip special de tabel (sistem, temporar etc.). Nu este recomandat să folosiți caractere naționale (rusești), spații și cuvinte rezervate în nume, dar dacă acestea sunt încă folosite, atunci astfel de nume trebuie scrise între ghilimele „..” sau în paranteza patrata [..].

Mai departe, la descrierea construcțiilor de instrucțiuni SQL, se va folosi următoarea notație: părțile opționale ale construcției sunt scrise între paranteze drepte; desenele alternative sunt separate printr-o bară verticală | ; acolade () evidențiază blocurile logice ale structurii; elipse indică faptul că partea anterioară a structurii poate fi repetată de mai multe ori. Structurile „extensibile” sunt scrise între paranteze unghiulare< >.

Crearea bazei de date

CREAȚI BAZĂ DE DATE Numele bazei de date

Eliminarea uneia sau mai multor baze de date

DROP BAZA DE DATE Numele bazei de date[,Numele bazei de date…]

Declararea bazei de date curente

UTILIZARE Numele bazei de date --în SQL Server și MySQL

SETARE BAZĂ DE DATE Nume_ bazele_ date – în Firebird

Crearea unui tabel

CREAȚI TABEL TableName (

<описание_столбца> [, <descriere_coloană> |

<constrângere de integritate_tabel>…]

< descriere_coloană>

ColumnName TIP

(NO ACTION|CASCADE|SET DEFAULT|SET NULL)]

TIP Coloana poate fi fie un tip de date standard (a se vedea tabelul 1) fie un nume de domeniu (a se vedea secțiunea 6.2).

Unele SGBD vă permit să creați coloane calculate (computerizat coloane). Acestea sunt coloane virtuale, a căror valoare nu este stocată în memoria fizică, dar este calculată de serverul DBMS ori de câte ori această coloană este accesată folosind formula specificată la declararea acestei coloane. Formula poate include valori din alte coloane din acel rând, constante, funcții încorporate și variabile globale.

Descrierea unei coloane calculate în SQL Server este:

<описание_столбца> ColumnName LA FEL DE expresie

Descrierea coloanei calculate în Pasăre de foc are forma:

<описание_столбца> ColumnName CALCULAT DE<expresie>

SGBD-ul MySQL 3.23 nu acceptă coloane calculate.

< >

CONSTRÂNGERE Nume_constrângere_integritate

(CHEIE UNICĂ|PRIMARĂ)( list_of_columns_forming_key)

|CHEIE STRĂINĂ ( listă_ coloane_FK)

REFERINȚE TableName(list_columns_PK)

(NO ACTION|CASCADE|SET DEFAULT|SET NULL)]

(NO ACTION|CASCADE|SET DEFAULT|SET NULL)]

|VERIFICARE ( stare_test)

Unele SGBD-uri permit declararea tabelelor temporare (care există doar în timpul unei sesiuni). În SQL Server, numele tabelelor temporare trebuie să înceapă cu # (tabelele temporare locale vizibile numai pentru utilizatorul care le-a creat) sau ## (tabelele globale vizibile pentru toți utilizatorii); MySQL folosește cuvântul cheie TEMPORARY pentru a crea tabele temporare, de exemplu:

CREATEMPORARMASA... (pentru mai multe sintaxe, vezi CREATE TABLE).

Modificarea structurii tabelului

Folosit pentru a modifica tipul de coloană al tabelelor existente, pentru a adăuga și elimina coloane și constrângeri de integritate.

ALTER TABLE TableName

Modificarea unui tip de coloană (în SQLServer și Firebird)

ALTER COLONA ColumnName tip nou

Modificarea tipului de coloană, a numelui și a constrângerilor (în MySQL)

SCHIMBA COLONA ColumnName <descriere_coloană>

Adăugați o coloană obișnuită sau calculată

|ADĂUGAȚI<descriere_coloană>

Adăugarea unei constrângeri de integritate

| ADĂUGA

<constrângere de integritate_tabelă>

Ștergeți o coloană

|COLOANĂ PIDURI ColumnName

Eliminarea unei constrângeri de integritate

| CONSTRINGERE DE CĂDARE Nume_constrângere_integritate

Activați sau dezactivați verificarea constrângerii de integritate

BMSSQLServer

|(VERIFICARE|NU VERIFICARE) CONSTRINGERE

{List_of_integrity_constraint_names|TOATE)

Ștergeți un tabel

DROP TABLE TableName



În continuare, să vedem cum să declarăm constrângeri de integritate declarativă atunci când se creează tabele noi cu comanda CREATETABLE sau se schimbă structura tabelelor existente cu comanda ALTERTABLE (acestea sunt descrise mai detaliat în secțiunea 4.2).

1. Disponibilitatea obligatorie a datelor (valori NULL)

Declarat prin cuvântul NULL (coloana poate avea celule goale) sau NOT NULL (coloană obligatorie). Valoarea implicită este NULL.

Exemplu de creare a tabelului 7:

CREAMASA Clienti(

Numele clientului NVARCHAR(60) NU NUL,

Data nașterii DATA NUL,

Telefon CHAR(12));

-- implicit este, de asemenea, NULL 2. Valoare implicită

(MOD IMPLICIT)

Se poate seta o valoare implicită pentru fiecare coloană a tabelului. Dacă o celulă este modificată și noua ei valoare nu este specificată, serverul introduce o valoare implicită. Valoarea implicită poate fi NULL, o constantă, o expresie evaluată sau o funcție de sistem. Să ne uităm la un exemplu de creare a unui tabel Comenzi (Comenzi). Coloană Data comandă implicit la data curentă și coloana Cantitate

CREAȚI TABEL(cantitate) este implicit 0.

Comenzi( OrderNum INT NUL NU

, -- Număr de ordine Data comandă INT NUL DATETIME

-- Data comandă MOD IMPLICIT

GetDate()

Funcția GetDate() returnează data curentă 8 Cantitate INT NUL SMALLINT -- Data comandă 0);

-- cantitatea de mărfuri, 3. Declarația cheilor primare

(CHEIA PRINCIPALA)

CREAMASA O cheie primară simplă este declarată cu cuvintele PRIMARYKEY la crearea unui tabel. De exemplu, Personal(

-- tabelul „Angajați” OrderNumTabNumPRIMAR, CHEIE

-- cheia principala NVARCHAR(40) INTNUL WNume

... -- , -- NUMELE COMPLET);

descrierea altor coloane

-- O cheie primară compusă este declarată diferit:PKmetoda 1 (ad

CREAȚI TABEL Clienti(

la crearea unui tabel) PasSeria(4,0)INT NUL,-- NUMERIC serie

pasapoarte PasSeria(6,0)INT NUL,-- PasNumber serie

număr NVARCHAR(40)INT NUL,

Nume CHAR(12),

-- Telefon

CONSTRÂNGERE declararea unei chei primare compuse

TabNum PRIMAR Clienti_PK

-- (PasSeria,PasNumber));PKmetoda 2(

declarat după crearea tabelului)PK

CREA MASA Clienti(

la crearea unui tabel) PasSeria(4,0)INT NUL,--NUMERIC serie

pasapoarte PasSeria(6,0)INT NUL,--PasNumber serie

-- mai întâi creați un tabel fără NVARCHAR(40)INT NUL,

Nume CHAR(12));

-- Numele clientului modificareMese adăuga

RK MASA MODIFICA

Clienții CONSTRÂNGERE declararea unei chei primare compuse

TabNum PRIMAR ADĂUGA

(PasSeria,PasNumber); 4. Unicitatea coloanelor

(UNIC) Ca Primar Cheie PK indică faptul că o coloană sau un grup de coloane nu poate conține valori duplicate, dar nu este

CREAȚI TABEL. Toate coloanele declarate UNIQUE trebuie să fie NOTNULL. Un exemplu de declarație simplă de coloană unică:

Elevi( OrderNum TabNum PRIMAR SCCod

, -- surogat RK NVARCHAR(40) INT NUL WNume

FIO CHAR(6) INT NUL Cartea Recordurilor UNIC

); -- Numar record

CREA MASA Exemplu de declarație de câmp unic compus: Personal(-- " masa"

-- tabelul „Angajați” Muncitorii, -- INT CHEIE PRIMARĂ PasNumber

-- cheia principala NVARCHAR(40) NU NUL, -- foaia de pontaj

la crearea unui tabel) PasSeria(4,0) NU NUL, -- NUMERIC serie

pasapoarte PasSeria(6,0) NU NUL, -- PasNumber serie

-- Numele complet anunţ compozit unic

CONSTRÂNGERE câmpuri Cartea Recordurilor Staff_UNQ

5. (PasSeria,PasNumber)); Restricții pe valorile coloană

(VERIFICA)

Această constrângere vă permite să specificați un interval, o listă sau o „mască” de valori valide logic pentru o coloană. Exemplu de creare a unui tabelMuncitorii:

CREAMASA(Muncitorii)

Muncitorii(

-- tabelul „Angajați” Muncitorii

-- Numere de personal din 4 cifre VERIFICA (TabNum 1000 ÎNTRE 9999),

număr ȘI(60) NU NUL, -- foaia de pontaj VARCHAR

-- angajatpodea " scrisoare" m " sau"

și CHAR(1) NU NUL

-- Numere de personal din 4 cifre Gentry (GentryÎN

("m","f")),

Vârsta minim 14 ani Cantitate INT NUL -- Numere de personal din 4 cifre Vârstă

(Vârsta>=14),

--Numar certificat de asigurare de pensie (cu masca) CHAR(14)

-- Numere de personal din 4 cifre PensionCert (PensionSert ""));

CA Acest exemplu prezintă diferite tipuri de verificări. Intervalul valorilor acceptabile este indicat de constructul BETWEEN...AND; condiții normale (ca și pentru coloana) utilizați semne de comparație =,<>, >, >=, <, <=, связанные при необходимости логическими операциямиAND,OR,NOT(например,Acest exemplu prezintă diferite tipuri de verificări. Intervalul valorilor acceptabile este indicat de constructul BETWEEN...AND; condiții normale (ca și pentru coloana>=14ȘI Acest exemplu prezintă diferite tipuri de verificări. Intervalul valorilor acceptabile este indicat de constructul BETWEEN...AND; condiții normale (ca și pentru coloana<=70); для указания списка допустимых значений используется предикатINи его отрицаниеNOTIN; конструкция

CA mask_allowed_values CU EXCEPTIA exception_list

folosit pentru a seta o mască de valori valide pentru coloanele șiruri. Masca folosește două caractere speciale: „%” – un subșir arbitrar și „_” – orice caracter unic. Clauza EXCEPT este opțională.

Condiția de selecție CHECK poate compara valorile a două coloane ale aceluiași tabel și coloane din tabele diferite.

Introducere

Acest articol deschide o serie scurtă dedicată elementelor de bază ale interacțiunii cu baze de date (DB) în Java Și introducere în SQL . Multe programe sunt ocupate cu procesarea și modificarea informațiilor și păstrarea acestora la zi. Deoarece datele sunt o parte foarte importantă a logicii programului, stocarea separată este adesea alocată pentru acestea. Informațiile din acesta sunt structurate și supuse unor reguli speciale pentru a asigura prelucrarea și stocarea corectă. Datele sunt accesate și modificate folosind un limbaj de interogare special - SQL (Structured Query Language). Sistemul de gestionare a bazelor de date- acesta este un software care asigură interacțiunea diverselor programe externe cu date și servicii suplimentare (logging, recovery, backup etc.), inclusiv prin SQL. Adică, un strat software între date și programele externe care lucrează cu acesta. În această parte, vom răspunde la întrebările despre ce este SQL, ce este un server SQL și vom crea primul program care să interacționeze cu SGBD.

Tipuri de SGBD

Există mai multe tipuri de SGBD în funcție de modul în care organizează stocarea datelor:
  • Ierarhic. Datele sunt organizate într-o structură arborescentă. Un exemplu este un sistem de fișiere care începe de la rădăcina discului și apoi crește cu ramuri de fișiere de diferite tipuri și foldere cu diferite grade de imbricare.
  • Reţea. O modificare a ierarhiei, fiecare nod poate avea mai mult de un părinte.
  • Orientat pe obiecte. Datele sunt organizate sub formă de clase/obiecte cu atributele și principiile lor de interacțiune conform OOP.
  • Relațional. Datele acestui tip de SGBD sunt organizate în tabele. Tabelele pot fi legate între ele, informațiile din ele sunt structurate.
În această serie de articole, ne vom uita la SGBD-urile relaționale (ca cele mai comune) folosind H2 ca exemplu și vom crea o aplicație de la zero care emulează ceva similar cu modul în care funcționează un schimb. Întrebare: De ce nu PostgreSQL, MySQL, MSSQL sau Oracle? Răspuns: Pentru a nu fi distras de problemele instalării unui set separat de programe. Configurare ulterioară, crearea unei baze de date, complexitatea lucrului în diferite sisteme de operare, versiuni. Pentru a lucra cu H2, trebuie să efectuați un minim de acțiuni. Dar nimic nu vă împiedică să schimbați actualul H2 JDBC într-un DBMS relațional de la alt producător (se schimbă doar linia de adresă a serverului și numele clasei de driver).

SQL

Programele externe generează interogări către SGBD în limbajul de gestionare a datelor Structured Query Language. Ce este SQL și prin ce diferă de limbajele de programare convenționale? Una dintre caracteristicile SQL este declarativitatea. Acesta este, SQL este un limbaj declarativ. Aceasta înseamnă că atunci când introducem comenzi, adică creăm interogări către serverul SQL, descriem exact ce vrem să obținem și nu în ce fel. Prin trimiterea unei cereri SELECT * FROM CUSTOMER către server (traducere aproximativă din SQL în rusă: „faceți o selecție din tabelul CLIENT, selecția constă din toate rândurile tabelului”), vom primi date pentru toți utilizatorii. Nu contează deloc cum și de unde serverul descarcă și generează datele care ne interesează. Principalul lucru este să formulați cererea corect.
  • Ce este SQL Server și cum funcționează? Interacțiunea cu SGBD are loc pe un principiu client-server. Un program extern trimite o cerere sub formă de operatori și comenzi în limbaj SQL, SGBD o procesează și trimite un răspuns. Pentru simplitate, să presupunem că SQL Server = DBMS.
Dacă poți conduce o singură marcă de mașini, cel mai probabil vei putea conduce altele fără probleme. Elementele de bază ale condusului sunt aceleași peste tot, cu excepția micilor detalii. Același lucru este valabil și pentru serverele SQL de la diferiți producători - fiecare dintre ele are propria sa versiune de SQL, dar respectă standardele specificate (SQL92, SQL2003...). Vom folosi operatori și comenzi în cadrul SQL92. Instrucțiunile SQL de bază sunt împărțite în următoarele grupuri:
  • Limbajul de definire a datelor ( DDL) – definițiile datelor. Crearea structurii bazei de date și a obiectelor acesteia;
  • Limbajul de manipulare a datelor ( DML) – interacțiunea efectivă cu datele: inserare, ștergere, modificare și citire;
  • Limbajul de control al tranzacțiilor ( TCL) – managementul tranzacțiilor;
  • Limbajul de control al datelor ( DCL) – gestionarea drepturilor de acces la structurile de date și baze de date.
Într-o serie de articole ne vom uita la primele trei grupuri, acordând o atenție deosebită DML.

JDBC

În anii 80 ai secolului trecut, computerele personale de tip PC XT/AT au cucerit piața. Acest lucru s-a datorat în mare parte modularității designului lor. Aceasta înseamnă că utilizatorul ar putea schimba destul de ușor una sau alta componentă a computerului său (procesor, placă video, discuri etc.). Această proprietate minunată s-a păstrat până în zilele noastre: schimbăm placa video și actualizăm driverul (uneori chiar se actualizează singur, automat). Cel mai adesea, nimic rău nu se întâmplă cu astfel de manipulări, iar programele existente vor continua să funcționeze cu sistemul actualizat fără reinstalare. Același lucru este valabil și pentru lucrul în Java cu un SGBD. Pentru a standardiza munca cu serverele SQL, interacțiunea cu acesta poate fi realizată printr-un singur punct - JDBC (Conectivitate la baza de date Java). Este o implementare a pachetului java.sql pentru lucrul cu DBMS. Producătorii tuturor serverelor SQL populare lansează drivere JDBC pentru ei. Luați în considerare diagrama de mai jos. Aplicația folosește instanțe de clase din java.sql. Transmitem apoi comenzile necesare pentru a prelua/modifica datele. Mai departe java.sql prin driver jdbc interacționează cu SGBD și ne returnează rezultatul final. Pentru a trece la un DBMS de la alt producător, este adesea suficient să schimbați JDBC și să efectuați setările de bază. Părțile rămase ale programului nu se modifică.

Primul program

Să trecem la partea practică. Să creăm un proiect Java folosind IDE JetBrains IntelliJ IDEA. Rețineți că Ultimate Edition conține un instrument minunat pentru lucrul cu SQL și baze de date - Data Grip. Cu toate acestea, este plătit pentru majoritatea utilizatorilor. Deci, în scopuri educaționale, putem folosi numai cele disponibile public IntelliJ IDEA Community Edition. Deci: Acum știm cum să ne conectăm și să ne deconectam de la DBMS. Fiecare pas este reflectat în consolă. Când vă conectați la SGBD pentru prima dată, este creat un fișier de bază de date bursa de valori.mv.db .

Analiza codului

Codul real: pachet sql. demonstrație; import java. sql. *; clasa publică StockExchangeDB ( // Bloc de declarare constant public static final String DB_URL = „jdbc:h2:/c:/JavaPrj/SQLDemo/db/stockExchange”; public static final String DB_Driver = "org.h2.Driver" ; public static void main (String args) ( încercați ( Class. forName (DB_Driver) ); //Verificați prezența unui driver JDBC pentru lucrul cu baza de date Conexiune de conectare = DriverManager. getConnection(DB_URL) ; //conexiune la baza de date System. afară. println( „Conexiunea la DBMS este finalizată”.); conexiune. închide(); // se deconectează de la baza de date Sistem. afară. println( „Deconectarea de la DBMS a fost finalizată”.); ) catch (ClassNotFoundException e) ( e. printStackTrace () ; // manipularea erorilor Class.forName Sistem. afară. println( „Driverul JDBC pentru DBMS nu a fost găsit!”); ) catch (SQLException e) ( e. printStackTrace () ; // gestionarea erorilor DriverManager.getConnection Sistem. afară. println("Eroare SQL!"); ) ) )

Bloc constant:

  1. DB_Driver: Aici am definit Nume driver, care poate fi găsit, de exemplu, făcând clic pe biblioteca conectată și extinzându-i structura în directorul lib al proiectului curent.
  2. DB_URL: Adresa bazei noastre de date. Constă din date separate prin două puncte:
  3. Protocol=jdbc
  4. Furnizor (producător/nume) DBMS=h2
  5. Locația SGBD-ului, în cazul nostru calea către fișier (c:/JavaPrj/SQLDemo/db/stockExchange). Pentru SGBD-urile de rețea, numele sau adresele IP ale serverelor la distanță, numerele de porturi TCP/UDP și așa mai departe sunt indicate în plus aici.

Eroare la procesare:

Metodele de apelare din codul nostru pot returna erori la care ar trebui să acordați atenție. În această etapă pur și simplu le raportăm în consolă. Rețineți că erorile atunci când lucrați cu un SGBD sunt cele mai des SQLException.

Logica de functionare:

  1. Class.forName(DB_Driver) – ne asigurăm că driverul JDBC corespunzător este disponibil (pe care l-am descărcat și instalat anterior).
  2. DriverManager.getConnection(DB_URL) – stabiliți o conexiune DBMS. Folosind adresa transmisă, JDBC însuși va determina tipul și locația DBMS-ului nostru și va returna o conexiune, pe care o putem folosi pentru a comunica cu baza de date.
  3. connection.close()– închideți conexiunea la DBMS și terminați lucrul cu programul.
În următoarea parte a seriei, ne vom familiariza cu operatorii DDL și tipurile de date SQL și, de asemenea, vom crea structura inițială a bazei de date și o vom completa cu tabele.
  • Serghei Savenkov

    un fel de recenzie „scurtă”... de parcă ne-am grăbi pe undeva