Dodaj ograniczenie języka SQL

Ten język, używany do wyodrębniania i zarządzania systemem DBMS w RDMS, jest miejscem przechowywania danych relacyjnych z kilkoma wierszami i kolumnami. SQL umożliwia odbieranie i przetwarzanie tabel w RDMS. W SQL można tworzyć programy proceduralne z iteracjami i warunkami. Dostęp do bazy danych można uzyskać, umieszczając polecenia w taki sam sposób, jak w PHP lub za pomocą oprogramowania wizualnego, takiego jak phpMyAdmin działającego na serwerze lub komputerze przy użyciu XAMPP, a także wielu innych lokalnych programów serwera. Niemal wszystkie nowoczesne systemy zarządzania bazą danych oparte są na tym języku.

Historyczne warunki SQL

Skrót SQL oznacza "Structured Search Language", który rozumie praktycznie każdy DBMS. Został opracowany przez IBM w latach siedemdziesiątych z oryginalną nazwą SEQUEL, a jego prawdziwa nazwa pochodzi z lat osiemdziesiątych. SQL został certyfikowany przez Międzynarodową Organizację ISO. Oto główne kroki w tym procesie:


  • norma ANSI w 1986 r .;
  • ISO (SQL1) w 1987 r., Zmieniony w 1989 r .;
  • ISO (SQL2) w 1992 r .;
  • SQL3 został stworzony w 1999 roku przez ANSI i ISO.
  • Standard ISO SQL 2006 służy do zarządzania plikami XML, takimi jak import danych XML do bazy danych lub eksportowanie treści XML i SQL z ograniczeniami. Pomimo standaryzacji ISO, rzeczywiste użycie różnych edytorów DBMS różni się w odniesieniu do:
  • szczegółów składni;
  • pisanie rozkazów;
  • dokładna praca organów zarządzających;
  • wprowadzenie nowych rodzajów danych (obrazów, animacji, wideo, linków hipertekstowych)i tak dalej).
  • Niezależnie od używanego oprogramowania MySQL (lub MariaDB), PostgreSQL, Oracle, NoSQL, a także Cassandra - ta sama składnia z niewielkimi różnicami. W skrócie, istnieje tylko jeden język SQL, ale każdy edytor DBMS implementuje swój własny dialekt. "Słownik", który pozwala przełączać się z jednego dialektu na drugi nazywa się ODBC (Open Data Base Connectivity). Został stworzony w Microsoft 1993 dla ograniczenia SQL.


    Cechy języka programowania

    SQL jest najpopularniejszym językiem komputerowym związanym z systemami zarządzania bazami danych. Najbardziej obiecujące kierunki oznaczają zapytania strukturalne. Temat kilku międzynarodowych standaryzacji, z których pierwszy dotyczy 1986 r. I wciąż się rozwija. Realizacja odpowiada algebrze relacyjnej, ale często odbiega od tradycyjnych obliczeń. W implementacjach różnice między dużymi i małymi literami, z wyjątkiem wierszy, są zwykle ignorowane. Ograniczenie Ms SQL umożliwia:
  • wykonywanie operacji algebry relacyjnej;
  • edytuj kopie;
  • edytuj relację w bazie danych.
  • Wyrażanie ograniczeń integralności

    Jest to propozycja, która ogranicza zmiany tabelaryczne wykonywane przez żądania klientów, tak aby dane wejściowe były zgodne z oczekiwanymi wynikami. Są one narzucane podczas tworzenia:
  • SQL ograniczeń.
  • DEFAULT.
  • NOT NULL.
  • POJEDYNCZY.
  • SPRAWDŹ.
  • SQL definiuje wartość domyślną, gdy pole podstawowe nie jest przekazywane za pomocą klauzuli DEFAULT. Upraszcza tworzenie tabel i zapewnia, że ​​pole nie jest puste. W zdaniu DEFAULT wartość musi być przypisana.
    Może to być jeden z następujących typów:
  • stała cyfrowa;
  • stała alfanumeryczna (linia);
  • słowo kluczowe USER (nazwa użytkownika);
  • słowo kluczowe NULL;
  • słowo kluczowe CURRENT_DATE (data wprowadzenia);
  • słowo kluczowe CURRENT_TIME (czas wejścia);
  • słowo kluczowe CURRENT_TIMESTAMP (data i godzina wpisu).
  • Typy danych w bazach danych

    W składni, na przykład type_field1 field_type2 itd., Należy określić typ danych, które będą zawierały odpowiednie pole. Zasadniczo ta reguła jest używana do przeniesienia ich do systemu, aby przydzielił odpowiednią przestrzeń pamięci, w zależności od rozmiaru danych. System nie przydzieli tej samej przestrzeni dla linii, jak dla liczby całkowitej. W phpMyAdmin podczas tworzenia tabeli możesz zobaczyć listę zaakceptowanych typów z listy rozwijanej.

    Typ danych



    typ



    opis



    NUMER (n, [d])



    Liczba n cyfr [d (opcjonalnie) za kropką dziesiętną]



    SMALLINT



    16-bitowa liczba całkowita ze znakiem



    INTEGER



    32-bitowa liczba całkowita ze znakiem

    (76 )
    PŁYWANIE



    Numer zmiennoprzecinkowy



    DATA



    Format daty dd /mm /rr



    CZAS



    godzina



    TIMESTAMP



    Data i godzina



    CHAR





    Linia symboli o stałej długości l (n
    Oto przykład: CREATE TABLE table_name (kolumna1 Type_champ1, column2) Type_champ2, colonne3 Type_champ3).

    Atrybuty więzów SQL

    Aby móc tworzyćzwiązek, musisz znać ograniczenia integralności. Do atrybutu mają zastosowanie następujące ograniczenia:
  • domyślna wartość jest wartością domyślną dla tego atrybutu;
  • nie puste - puste lub nieznane (zero) jest zabronione dla tego parametru;
  • null - dla tego atrybutu zezwalamy na pusty lub nieznany (zero (domyślnie);
  • unikalny - wszystkie wartości tego atrybutu muszą być unikalne;
  • sprawdzanie (te) - test ten musi być prawdziwy dla tego parametru;
  • klucz pimary - ten atrybut jest kluczem podstawowym (to wyjątkowe ograniczenie SQL może pojawić się tylko raz) i nie zawiera wartości zerowej,
  • odwołuje się ta [(at)] - ten parametr ma istniejący atrybut at, który jest obowiązkowy, unikalny, tablica ta, jeśli nie jest określony, to klucz podstawowy, ta;
  • odwołuje się do ta [(at)] na kasie kasowania - podobny do poprzedniego ograniczenie, ponadto, jeśli ta zostanie usunięta, instancja, o której mowa w tej tabeli, jest również automatycznie usuwana.
  • Poniższe ograniczenia ograniczeń dodawania dla SQL dotyczą jednego lub więcej atrybutów lub do tabeli:
  • unikalny (at1, atN) - wszystkie wartości w tym zestawie atrybutów muszą być unikalne;
  • check (te) - test musi być prawdziwy dla tego zestawu parametrów.
  • Tworzenie relacji

    Relacja SQL jest również nazywana tabelą. Tworzenie relacji jest wyrażone w SQL za pomocą tabeli tworzenia pomocy.
    Wygenerowana tabela jest pusta: zawiera atrybuty (kolumny) zdefiniowane podczas jej tworzenia, ale nie występuje (ciąg). Możliwe i właściwe jest określenie ograniczenia integralności dla atrybutów.
    Można również nazwać ograniczenia, aby łatwiej je zidentyfikować. W przeciwnym razie otrzyma nazwę, automatycznie dostarczoną przez bazę danych.

    Tworzenie tabeli

    NOT NULL słów kluczowych pozwala określić, które należy wprowadzić w tej dziedzinie, że baza danych odmówi wstawić linie, które nie są zdefiniowane pole, które zawiera propozycję NOT NULL. Możesz sprawdzić pole za pomocą CHECK (), ma logiczny warunek dla wartości między nawiasami. Jeśli ta wartość jest różna od NULL, DBMS wykona kontrolę przy użyciu warunku logicznego za pomocą instrukcji SELECT.

    Propozycja UNIQUE pozwala sprawdzić pola i gwarantuje, że wartości kolumn są różne. Słowo kluczowe CONSTRAINT przypisuje nazwę ograniczenia, tak aby działało, gdy określone zdanie nie zostało zweryfikowane. Jeśli klauzula CONSTRAINT nie zostanie określona, ​​nazwa zostanie dostarczona arbitralnie przez DBMS. Jest jednak mało prawdopodobne, aby było zrozumiałe i jest mało prawdopodobne, aby można było je w ogóle zrozumieć, gdy istnieje błąd integralności.

    Przykład języka SQL zmieniać tabeli wiązanie

    Aby zilustrować następującym porządku zwraca uwagę na "produkt" stół

    wartości identyfikatora (ID)



    Nazwisko (nazwa )



    kat? gorie (kategoria)



    (akcji)



    Prix (Cena )



    1



    , komputer



    do przetwarzania danych



    5



    950



    2



    klawiatury
    , (192 )

    do przetwarzania danych



    32



    35



    3 (207 )


    myszy



    przetwarzanie jest podane ich



    16



    30


    ,
    4



    ołówka



    dostarczania


    (238 ) 147



    2

    Operator ograniczenia dodawania SQL może łączyć kilka warunków w zapytaniu. Utrzymanie tej samej tabeli, jak poprzednio, aby filtrować tylko produkty komputerowe są prawie nieobecne w magazynie (mniej niż 20 tytułów), należy uruchomić następujące zapytanie:
    SELECT * FROM produitWHERE kota Gorie = „Informatique” i magazynów (246?



    ) Zdjęcie (akcji)



    prix (cena)



    1



    (komputer 271)


    do przetwarzania danych



    5



    950


    (286 ) 3



    , myszy



    do przetwarzania danych



    16
    ,


    30

    do filtrowania danych i mają tylko informacja o produkcie "komputer" lub "klawiatura" powinna zrobić kolejny wyszukiwania: SELECT * FROM produitWHERE nom = 'ordinateur' OR nom = ' clavier „Ten prosty wniosek zwraca następujące wyniki:

    wartość id (identyfikator)



    nom (nazwa)



    kot ? gorie (kategoria)



    (akcji)



    Prix (cena)



    1



    , komputer



    do przetwarzania danych



    5

    (341 )
    950



    2



    klawisze



    przetwarzania danych



    32



    35

    , należy jednak pamiętać, że operatorzy mogą dotyczyć Połączono, aby przeprowadzić zaawansowane wyszukiwanie. Możesz filtrować "komputer" produktów o zapasie mniejszym niż 20, a produkty "zaopatrywać" w zapasy o wartości mniejszej niż 200następnie wyszukiwania SQL alter table dodać ograniczenia: select * from produitWHERE (CAT gorie = 'informatique' i magazynów
    wartość id (identyfikator)



    nom (nazwa) (370? )


    kot? gorie (kategoria)



    (akcji)



    prix (cena) (382 )


    1



    , komputer



    do przetwarzania danych



    5



    950



    2



    , myszy

    (412 )
    do przetwarzania danych



    16



    30


    ,
    4
    , (427 )

    ołówka



    doprowadzający



    147



    2

    Definicje klawiszy

    Za pomocą obcego klucza obramowania SQL można definiować klucze, czyli określać kolumny, których wiedza pozwala na przypisanie dokładnie jednej z nich i jednej linii. Zestaw kolumn, które są częścią bieżącej tabeli, nazywany jest kluczem podstawowym i jest określony przez klauzulę PRIMARY KEY, a następnie listę kolumn oddzielonych przecinkami w nawiasach. Nie akceptują już wartości NULL powinny być takie, że dwa wiersze nie mogą jednocześnie mieć tej samej kombinacji wartości dla tych kolumn. KLUCZ GŁÓWNY (colonne1 colonne2). Gdy lista kolumn wykonano w celu określenia klucza podstawowego stołu, wykorzystuje oferta SQL dodać wiązania klucz obcy, a następnie na liście bieżącego kolumnie tabeli, oddzielonych przecinkami, w nawiasach. Następnie w nawiasach powinny oferować referencje, a następnie nazwy tabel zewnętrznych oraz listę kolumn, oddzielonych przecinkami. FOREIGN KEY (colonne1 colonne2) odniesienia Nom_de_la_table_etrangere (colonne1colonne2)

    kluczem podstawowym

    Zainteresowania poza przechowywania bazy danych - jest organizowanie ten sklep i pozwalająustalić pewne zasady w tym zakresie. W związku z tym dla każdej z tabel klucz podstawowy jest zwykle określany. Będzie jednoznacznie identyfikować wyszukiwanie po linii podczas prezentacji. Dlatego deklarując kolumnę jako klucz DBMS automatycznie tworzy indeks restrykcyjny. Może się spełnić:
    Nazwa ograniczenia jest zarządzana przez DBMS, kiedy konieczne jest nazwanie tego klucza podstawowego. Komputer można również utworzyć po raz drugi w kolejności wprowadzania zmian w tabeli. Ten klucz podstawowy będzie bezwzględnym identyfikatorem do użycia. DBMS może obejść się bez niego dzięki rowid, więc potrzeba klucza podstawowego nie istnieje technicznie, ale nie ma większego sensu w aplikacji. Ten klucz podstawowy również w wielu przypadkach określa ograniczenie integralności, to jest zarządzanie niektórymi danymi w pojedynczej tabeli w porównaniu z innymi wskaźnikami należącymi do innych tabel.
    Na przykład w bazie danych zarządzania klientami obecność faktury bez jednego zamówienia jest zabroniona. Utwórz klucz zewnętrzny w tabeli kont, który będzie ograniczony obecnością klucza.

    Ograniczenia klucza zewnętrznego

    W przypadku komputera PC, ograniczenie klucza zewnętrznego (FK) jest określane przez utworzenie tabeli, dzięki mechanizmowi konfigurowania kluczy i skojarzonych indeksów, które zostaną utworzone dla FK, więc zapytania dotyczące połączeń są łatwiejsze do połączenia. Oprócz ograniczeń klucza głównego lub zewnętrznego istnieją inne ograniczenia:
    Na przykład ograniczenie unikalności, inne niż to, które odpowiada kluczowi pierwszemu. Musisz utworzyć unikalny indeks: utwórz unikalny indeksnum_s? cu na personne. Inną opcją ograniczenia jest limit weryfikacji, który zwykle pozwala określić zakres lub wartość formatu. Dodatnia wartość do spożycia jest miarą wyboru grzecznościowego (odpowiednik ENUM dla niektórych innych DBMS) i jest przechowywana wielkimi literami:
    W ten sposób DBMS pozwala na tworzenie ograniczeń na integralności wszystkich rodzajów, ale po ich zastosowaniu nie można kontrolować koncepcji aktywnie /nieaktywnie. Ograniczenie nieaktywne nie ma wpływu na działanie bazy danych (wstaw, usuń,). Jednak czas potrzebny do reaktywacji napięcia może być długi, w zależności od procedur, które należy wykonać, aby sprawdzić to ograniczenie zmiany SQL. Ale zwykle interesujące jest wyłączanie ograniczeń. Ograniczenie jest wyłączone w następujący sposób: ALTER TABLE ma_table WYŁĄCZ CONSTRAINT ma_constraint; I aktywowane: ALTER TABLE ma_table ENABLE CONSTRAINT ma_constraint; Oczywiście należy zauważyć, że każde (aktywowane) ograniczenie, zastosowane do bazy danych, wymaga dodatkowego przetwarzania wstawień, modyfikacji lub usunięć. Procesy te spowalniają korzystanie z bazy danych, dlatego powinny być wykorzystywane ekonomicznie. Polecenie ALTER TBLE zmienia strukturę tabeli. Jeśli jest używane przez bieżące zapytanie, polecenie ALTER oczekuje na zakończenie. Użyj polecenia: Edytuj wartość kolumny. Wartości domyślne dotyczą następujących poleceń INSERT, a nie wierszy. Zmieniając kolumny lub tabele bez zmiany typu, w tym poleceniu można zignorować kolumnę słów kluczowych. Język nie pozwala na zmianę ograniczeń. Zamiast tego sąpowinien usunąć ograniczenia lub utworzyć je. Zmień długość kolumny varchar. Jeśli tabela odwołuje się do procedury przechowywanej, możesz dodać lub usunąć kolumnę. Możesz usunąć zapisaną procedurę przed wykonaniem polecenia ALTER TABLE, a następnie odtwarzać po edycji tabeli.

    Trigger: gwarancja integralności referencyjnej

    Klucze zewnętrzne służą do określania kolumn tabeli, która gwarantuje niezawodność innej tabeli. Zatem elementy nazywane są wyzwalacze, aby te ograniczenia są wyznaczone przez pojęcie integralności referencyjnej (-ych) i mieć pewność, że łańcuch jest używany z innej tabeli faktycznie istnieje. Te klapki są w stanie „Usuń” i „Update”:
  • Delete - towarzyszy argumentów w szelki, które pozwalają określić działania wykonywane przez usunięcie linii.
  • CASCADE - oznacza kaskadę usunąć wierszy, w których klucze są zgodne z podstawowym zajęcia się nimi.
  • RESTRICT - wskazuje na błąd przy usuwaniu wartości odpowiedniego klucza.
  • SET NULL - umieszcza NULL w ciągu znaków, jeśli wartość została usunięta.
  • , domyślny zestaw - umieszcza się wartość domyślną (który powinien być w tym parametrze) w rzędzie, czy wartość ta jest usunięta.
  • W „Update” iść argumenty w szelki, które pozwalają określić działania wykonywane przez zmianę wiersz, część klucza:
  • CASCADE - wskazuje kaskada modyfikacja linie stolik na zewnątrz, którego klawisze odpowiadają klucze zmienionych wierszy.
  • RESTRICT - wskazuje błąd odpowiedniego klucza.
  • USTAW NULL -umieszcza NULL z rzędu, jeśli wartość odpowiedniego klucza zmienia się.
  • USTAW. DOMYŚLNE - umieszcza wartość domyślną, po której następuje ten parametr w linii, jeśli wartość odpowiedniego klawisza ulegnie zmianie.
  • Zatwierdzenia są wyrażeniami, które należy wykonać podczas edycji danych, aby można je było wykonać, a więc gwarantują integralność danych.
  • Ich składnia jest następująca: CREATE ASSERTION Nom_de_la_contrainte CHECK (expression_conditionnelle) Warunek, który musi zostać wykonany, może zostać wykonany (i zwykle) za pomocą instrukcji SELECT.

    Powiązane publikacje