Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Składnia SQL ALTER TABLE – wymienione przez DBMS

W tym artykule wymieniono tabelę SQL ALTER TABLE składnia, zaimplementowana przez różne systemy zarządzania bazami danych (DBMS). Składnia jest podana dokładnie tak, jak każdy dostawca podał ją na swojej stronie internetowej. Kliknij odpowiedni link, aby wyświetlić więcej szczegółów na temat składni konkretnego dostawcy.

Omówione DBMS to MySQL, SQL Server, PostgreSQL i Oracle Database.

MySQL

Z podręcznika MySQL 5.7 Reference:

ALTER [IGNORE] TABLE tbl_name  [alter_specification  [, alter_specification  ] ...] [partition_options  ]alter_specification  :table_options  | DODAJ [KOLUMNĘ] col_name  column_definition  [PIERWSZY | PO col_name  ] | DODAJ [KOLUMNĘ] (col_name  column_definition  ,...) | DODAJ {INDEKS|KLUCZ} [index_name  ] [index_type  ] (index_col_name  ,...) [index_option  ] ... | DODAJ [OGRANICZENIE [symbol  ]] KLUCZ PODSTAWOWY [index_type  ] (index_col_name  ,...) [index_option  ] ... | DODAJ [OGRANICZENIE [symbol  ]] UNIKALNY [INDEKS|KLUCZ] [index_name  ] [index_type  ] (index_col_name  ,...) [index_option  ] ... | DODAJ PEŁNY TEKST [INDEKS|KLUCZ] [index_name  ] (index_col_name  ,...) [index_option  ] ... | DODAJ PRZESTRZENNY [INDEKS|KLUCZ] [index_name  ] (index_col_name  ,...) [index_option  ] ... | DODAJ [OGRANICZENIE [symbol  ]] KLUCZ OBCY [index_name  ] (index_col_name  ,...) reference_definition  | ALGORYTM [=] {DOMYŚLNIE|WSTAWIĆ|KOPIUJ} | ALTER [COLUMN] col_name  {USTAW DOMYŚLNE literal  | UPUŚĆ DOMYŚLNE} | ZMIEŃ [KOLUMNA] old_col_name  new_col_name  column_definition  [PIERWSZY|PO col_name  ] | LOCK [=] {DOMYŚLNE|BRAK|UDOSTĘPNIONE|WYŁĄCZNE} | MODYFIKUJ [KOLUMNA] col_name  column_definition  [PIERWSZY | PO col_name  ] | DROP [COLUMN] col_name  | UPUŚĆ KLUCZ GŁÓWNY | UPUŚĆ {INDEX|KLUCZ} index_name  | UPUŚĆ KLUCZ OBCY fk_symbol  | WYŁĄCZ KLAWISZE | WŁĄCZ KLAWISZE | RENAME [TO|AS] new_tbl_name  | ZMIEŃ NAZWĘ {INDEX|KLUCZ} old_index_name  DO new_index_name  | ZAMÓW WG col_name  [, col_name  ] ... | KONWERTUJ NA ZESTAW ZNAKÓW charset_name  [COLLATE collation_name  ] | [DOMYŚLNE] ZESTAW ZNAKÓW [=] charset_name  [COLLATE [=] collation_name  ] | ODRZUCAJ MIEJSCE STOŁOWE | IMPORTUJ PRZESTRZEŃ STOŁÓW | SIŁA | {BEZ|Z} WALIDACJI | DODAJ PARTYCJĘ (partition_definition  ) | DROP PARTITION partition_names  | DISCARD PARTITION {partition_names  | WSZYSTKIE} PRZESTRZEŃ STOŁOWA | IMPORTUJ PARTYCJĘ {partition_names  | WSZYSTKIE} PRZESTRZEŃ STOŁOWA | OBRÓĆ PARTYCJĘ {partition_names  | WSZYSTKIE} | PARTYCJA COALESCE number  | REORGANIZUJ PARTYCJĘ partition_names  INTO (partition_definitions  ) | PARTYCJA WYMIANY partition_name  Z TABELĄ tbl_name  [{Z|BEZ} WALIDACJI] | ANALIZA PARTYCJI {partition_names  | WSZYSTKIE} | SPRAWDŹ PARTYCJĘ {partition_names  | WSZYSTKIE} | OPTYMALIZUJ PARTYCJĘ {partition_names  | WSZYSTKIE} | ODBUDUJ PARTYCJĘ {partition_names  | WSZYSTKIE} | NAPRAWA PARTYCJI {partition_names  | WSZYSTKIE} | USUŃ PARTYCJE | UPGRADE PARTITIONINGindex_col_name  :col_name  [(length  )] [ASC | DESC]index_type  :UŻYWAJĄC {BTREE | HASH}index_option  :KEY_BLOCK_SIZE [=] value  | index_type  | Z PARSEREM parser_name  | KOMENTARZ 'string  'table_options  :table_option  [[,] table_option  ] ... table_option  :SILNIK [=] engine_name  | AUTO_INCREMENT [=] value  | AVG_ROW_LENGTH [=] value  | [DOMYŚLNE] ZESTAW ZNAKÓW [=] charset_name  | SUMA KONTROLNA [=] {0 | 1} | [DEFAULT] COLLATE [=] collation_name  | KOMENTARZ [=] 'string  ' | KOMPRESJA [=] {'ZLIB'|'LZ4'|'BRAK'} | CONNECTION [=] 'connect_string  ' | KATALOG DANYCH [=] 'absolute path to directory  ' | DELAY_KEY_WRITE [=] {0 | 1} | SZYFROWANIE [=] {'T' | 'N'} | INDEX DIRECTORY [=] 'absolute path to directory  ' | INSERT_METHOD [=] { NIE | PIERWSZY | OSTATNI } | KEY_BLOCK_SIZE [=] value  | MAX_ROWS [=] value  | MIN_ROWS [=] value  | PACK_KEYS [=] {0 | 1 | DOMYŚLNE} | HASŁO [=] 'string  ' | ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT} | STATS_AUTO_RECALC [=] {DEFAULT|0|1} | STATS_PERSISTENT [=] {DEFAULT|0|1} | STATS_SAMPLE_PAGES [=] value  | TABLESPACE tablespace_name  | UNION [=] (tbl_name  [,tbl_name  ]...)partition_options  :PARTYCJA BY { [LINEAR] HASH(expr  ) | [LINEAR] KLUCZ [ALGORYTM={1|2}] (column_list  ) | RANGE{(expr  ) | KOLUMNY(column_list  )} | LIST{(expr  ) | KOLUMNY(column_list  )} } [PARTYCJE num  ] [SUBPARTITION BY { [LINEAR] HASH(expr  ) | [LINEAR] KLUCZ [ALGORYTM={1|2}] (column_list  ) } [SUBPARTITIONS num  ] ] [(partition_definition  [, partition_definition  ] ...)]partition_definition  :PARTYCJA partition_name  [WARTOŚCI {MNIEJSZE NIŻ {(expr  | value_list  ) | MAXVALUE } | IN (value_list  )}] [[STORAGE] SILNIK [=] engine_name  ] [KOMENTARZ [=] 'comment_text'  ] [KATALOG DANYCH [=] 'data_dir   '] [INDEX DIRECTORY [=] 'index_dir   '] [MAX_ROWS [=] max_number_of_rows  ] [MIN_ROWS [=] min_number_of_rows  ] [TABLESPACE [=] tablespace_name] [(subpartition_definition  [, subpartition_definition  ] ...)]subpartition_definition  :SUBPARTITION logical_name  [[STORAGE] SILNIK [=] engine_name  ] [KOMENTARZ [=] 'comment_text'  ] [KATALOG DANYCH [=] 'data_dir   '] [INDEX DIRECTORY [=] 'index_dir   '] [MAX_ROWS [=] max_number_of_rows  ] [MIN_ROWS [=] min_number_of_rows  ] [TABLESPACE [=] tablespace_name] 

Serwer SQL

Z dokumentacji Transact-SQL:

ALTER TABLE [ nazwa_bazy_danych . [ nazwa_schematu ] . | nazwa_schematu . ] nazwa_tabeli { ALTER COLUMN nazwa_kolumny { [ nazwa_schematu_typu. ] nazwa_typu [ ( { precyzja [ , skala ] | max | xml_schema_collection } ) ] [ COLLATE nazwa_porównania ] [ NULL | NIE NULL ] [ SPARSE ] | {DODAJ | UPUŚĆ }         { ROWGUIDCOL | UTRZYMANE | NIE DO REPLIKACJI | SPARSE } }         | [ Z { SPRAWDŹ | NOCHECK } ]    | DODAJ    {    |    |        |     } [ ,...n ]    | DROP      {         [ CONSTRAINT ]          {               constraint_name               [ WITH               (  [ ,...n ] )               ]              } [ ,...n ]         | COLUMN              {              column_name              } [ ,...n ]         } [ ,...n ]    | [ Z { SPRAWDŹ | NOCHECK } ] { SPRAWDŹ | NOCHECK } OGRANICZENIE    { WSZYSTKIE | nazwa_ograniczenia [ ,...n ] }     | { WŁĄCZ | WYŁĄCZ } WYZWALANIE    { WSZYSTKIE | nazwa_wyzwalacza [ ,...n ] }    | { WŁĄCZ | DISABLE } CHANGE_TRACKING    [ WITH ( TRACK_COLUMNS_UPDATED ={ ON | OFF } ) ]    | PRZEŁĄCZ [ PARTYCJA numer_wyrażenia_źródłowego_partycji ]   DO tabela_docelowa [ PARTYCJA wyrażenie_numer_partycji_docelowej ] | SET ( FILESTREAM_ON ={ nazwa_schematu_partycji | grupa plików | "domyślna" | "NULL" } )    | REBUILD          [ [PARTITION =ALL]        [ WITH (  [ ,...n ] ) ]       | [ PARTITION =numer_partycji            [ WITH (  [ ,...n ] ) ]        ]      ]    |  | }[; ]

Opcje

::=    nazwa_zestawu_kolumny ZESTAW_KOLUMN_KOLUMN_XML DLA WSZYSTKICH_SPARSE_COLUMNS ::={ MAXDOP =max_degree_of_parallelism  | ONLINE ={ON | WYŁ } | PRZENIEŚ DO { nazwa_schematu_partycji ( nazwa_kolumny) | grupa plików | "default" } } ::={ USTAW (BLOKADA_ESCAL ={ AUTO | TABELA | WYŁĄCZ } ) } ::={ [ { WŁĄCZ | DISABLE } FILETABLE_NAMESPACE ] [ SET ( FILETABLE_DIRECTORY =nazwa_katalogu ) ] } ::={      SORT_IN_TEMPDB ={ ON | WYŁĄCZ }    | MAXDOP = maksymalny_stopień_równoległości    | KOMPRESJA_DANYCH ={ BRAK | WIERSZ | STRONA} }}

PostgreSQL

Z podręcznika PostgreSQL 9.5:

ALTER TABLE [ JEŚLI ISTNIEJE ] [ TYLKO ] nazwa [ * ] działanie [, ... ]ALTER TABLE [ JEŚLI ISTNIEJE ] [ TYLKO ] nazwa [ * ] ZMIEŃ NAZWĘ [ KOLUMNA ] nazwa_kolumny ABY nowa_nazwa_kolumny ALTER TABLE [ JEŚLI ISTNIEJE ] [ TYLKO ] nazwa [ * ] ZMIEŃ NAZWĘ OGRANICZENIA nazwa_ograniczenia ABY new_constraint_name ALTER TABLE [ IF EXISTS ] nazwa ZMIEŃ NAZWĘ NA nowa_nazwa ALTER TABLE [ IF EXISTS ] nazwa USTAW SCHEMAT nowy_schemat ALTER TABLE ALL IN TABLESPACE nazwa [ WŁAŚCICIEL role_name [, ... ] ] SET TABLESPACE new_tablespace [ NOWAIT ]gdzie akcja jest jednym z:ADD [ COLUMN ] nazwa_kolumny rodzaj_danych [ UKŁADANIE porównywanie ] [ kolumna_ograniczenie [ ... ] ] DROP [ COLUMN ] [ IF EXISTS ] nazwa_kolumny [ OGRANICZ | KASKADA ] ALTER [ KOLUMNA ] nazwa_kolumny [ USTAW DANE ] TYP data_type [ UKŁADANIE porównywanie ] [ UŻYWAJĄC wyrażenia ] ALTER [ KOLUMNA ] nazwa_kolumny SET DEFAULT wyrażenie ALTER [ KOLUMNA ] nazwa_kolumny DROP DEFAULT ALTER [ COLUMN ] nazwa_kolumny { USTAW | DROP } NOT NULL ALTER [ COLUMN ] nazwa_kolumny USTAW STATYSTYKI liczba całkowita ALTER [ KOLUMNA ] nazwa_kolumny SET ( attribute_option =wartość [, ... ] ) ALTER [ KOLUMNA ] nazwa_kolumny RESETUJ ( attribute_option [, ... ] ) ALTER [ KOLUMNA ] nazwa_kolumny USTAW PRZECHOWYWANIE { ZWYKŁY | ZEWNĘTRZNY | ROZSZERZONY | MAIN } DODAJ table_constraint [ NIE WAŻNE ] DODAJ table_constraint_using_index ALTER CONSTRAINT nazwa_ograniczenia [ ODROCZONY | NIE ODROCZONY ] [ PIERWOTNIE ODROCZONY | POCZĄTKOWO NATYCHMIAST ] WERYFIKACJA OGRANICZENIA nazwa_ograniczenia DROP CONSTRAINT [ JEŚLI ISTNIEJE ] constraint_name [ OGRANICZ | KASKADA ] WYŁĄCZ WYZWALANIE [ nazwa_wyzwalacza | WSZYSTKIE | UŻYTKOWNIK ] ENABLE TRIGGER [ trigger_name | WSZYSTKIE | UŻYTKOWNIK ] WŁĄCZ WYZWALANIE REPLIKI nazwa_wyzwalacza WŁĄCZ ZAWSZE WYZWALANIE nazwa_wyzwalacza WYŁĄCZ REGUŁĘ rewrite_rule_name WŁĄCZ REGUŁĘ rewrite_rule_name WŁĄCZ REPLICA REPLICA rewrite_rule_name WŁĄCZ ZAWSZE REGUŁĘ rewrite_rule_name WYŁĄCZ POZIOM WIERSZ ZABEZPIECZENIE WŁĄCZ POZIOM WIERSZU ZABEZPIECZENIE POZIOM WIERSZ ZABEZPIECZENIE POZIOM WIERSZ NIE WYMAGAJ ZABEZPIECZENIA POZIOM WIERSZEGO KLASTRA BEZPIECZEŃSTWA ON index_name ZESTAW BEZ KLASTRA ZESTAW Z OIDS ZESTAW BEZ OIDS ZESTAW TABLESPACE new_tablespace ZESTAW { ZALOGOWANE | UNLOGGED } SET ( parametr_magazynu =wartość [, ... ] ) RESET ( parametr_magazynu [, ... ] ) DZIEDZICZ tabela_rodzica NO INHERIT tabela_rodzica OF nazwa_typu NIE JEST WŁAŚCICIELEM { nowy_właściciel | CURRENT_USER | SESSION_USER } TOŻSAMOŚĆ REPLIKI { DOMYŚLNE | UŻYWANIE INDEKSU index_name | PEŁNE | NIC }i table_constraint_using_index to:[ OGRANICZENIE nazwa_ograniczenia ] { WYJĄTKOWE | KLUCZ PODSTAWOWY } PRZY UŻYCIU INDEKSU index_name [ ODROCZONY | NIE ODROCZONY ] [ PIERWOTNIE ODROCZONY | POCZĄTKOWO NATYCHMIAST ]

Baza danych Oracle

Z dokumentacji online bazy danych Oracle 12c Wydanie 1 (12.1):

ZMIANA TABELI [ schemat. ] table [ alter_table_properties | kolumny_klauzule | klauzule_ograniczeń | alter_table_partitioning | alter_external_table | move_table_clause | mod_opaque_type ] [ enable_disable_clause | { WŁĄCZ | WYŁĄCZ } { BLOKADA TABELI | WSZYSTKIE AKTYWATORY } ] ...;

Poniżej przedstawiono szczegóły różnych opcji.

alter_table_properties::=

{ { { Physical_attributes_clause | logging_clause | table_compression | inmemory_alter_table_clause | klauzula_ilm | Supplemental_table_logging | allocate_extent_clause | deallocate_unused_clause | { Pamięć podręczna | NOCACHE } | RESULT_CACHE ( TRYB {DOMYŚLNE | SIŁA } ) | upgrade_table_clause | records_per_block_clause | klauzula_równoległa | row_movement_clause | flashback_archive_clause }... | ZMIEŃ NAZWĘ nowa_nazwa_tabeli } [ alter_iot_clauses ] [ alter_XMLSchema_clause ]| { skurcz_klauzula | TYLKO DO ODCZYTU | CZYTAJ NAPISZ | REKEY Specyfikacja_szyfrowania | [NIE ] ARCHIWALNE WIERSZÓW | DODAJ attribute_clustering_clause | MODYFIKUJ KLASTROWANIE [ klastrowanie_kiedy ] [ strefamap_klauzula ] | ZRZUĆ KLASTER }}

column_clauses::=

{ { add_column_clause | modyfikować_kolumny_klauzule | drop_column_clause | add_period_clause | drop_period_clause }...| zmień nazwę_kolumny_klauzula| { modyfikacja_kolekcji_pobieranie }...| { modyfikacja_LOB_storage_clause }...| { alter_varray_col_properties }...}

constraint_clauses::=

{ DODAJ { { out_of_line_constraint }... | out_of_line_REF_constraint }| MODYFIKUJ { OGRANICZENIE nazwa_ograniczenia | PODSTAWOWA KLUCZ | UNIKALNE (kolumna [, kolumna ]...) } stan_ograniczenia [ KASKADA ]| ZMIEŃ NAZWĘ OGRANICZENIE stara_nazwa DO nowa_nazwa| { drop_constraint_clause }...}

alter_table_partitioning ::=

{ modyfikacja_tabeli_default_attrs| alter_interval_partitioning| set_subpartition_template| modyfikacja_tabeli_partycji| modyfikacja_tabeli_subpartycja| move_table_partition| move_table_subpartition| add_table_partition| coalesce_table_partition| drop_table_partition| drop_table_subpartition| zmień nazwę_partycji_subpart| truncate_partition_subpart| split_table_partition| split_table_subpartition| merge_table_partitions| merge_table_subpartitions| exchange_partition_subpart}

alter_external_table ::=

{ add_column_clause| modyfikacja_kolumn_klauzule| drop_column_clause| klauzula_równoległa| external_data_properties| LIMIT ODRZUCENIA { liczba całkowita | BEZ OGRANICZEŃ }| KOLUMNA PROJEKT { WSZYSTKIE | ODNIESIENIA }} [ add_column_clause | modyfikować_kolumny_klauzule | drop_column_clause | klauzula_równoległa | external_data_properties | LIMIT ODRZUCENIA { liczba całkowita | BEZ OGRANICZEŃ } | KOLUMNA PROJEKT { WSZYSTKIE | ODNIESIENIA } ]...

move_table_clause ::=

PRZENIEŚ [ ONLINE ] [ segment_attributes_clause ] [ table_compression ] [ index_org_table_clause ] [ { LOB_storage_clause | varray_col_properties }... ] [ parallel_clause ] [ allow_disallow_clustering ]

modify_opaque_type::=

MODYFIKUJ TYP KRYJĄCY anydata_columnSKLEP ( nazwa_typu [, nazwa_typu ]... ) ROZPAKOWANE 

enable_disable_clause::=

{ WŁĄCZ | WYŁĄCZ }[ WERYFIKACJA | NOWALIZACJA ]{ UNIKALNE (kolumna [, kolumna ]...)| KLUCZ PODSTAWOWY | OGRANICZENIE ograniczenie_nazwa}[ using_index_clause ][ wyjątki_clause ][ KASKADA ][ { ZACHOWAJ | UPUŚĆ } INDEKS ]

Aby uzyskać szczegółowe informacje na temat różnych podrozdziałów dotyczących komponentów, zapoznaj się z oficjalną dokumentacją Oracle.

Korzystanie z GUI

Zmieniania tabel można również dokonać za pomocą graficznego interfejsu użytkownika w każdym z systemów zarządzania bazami danych lub za pomocą dowolnego narzędzia graficznego dostępnego do użytku z tym produktem.

Na przykład MySQL Workbench może być używany z MySQL.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zamów według COUNT za wartość

  2. Jak wywołać procedurę składowaną MySQL z poziomu kodu PHP?

  3. Przykłady LOCALTIME – MySQL

  4. Podziel ciąg i przeprowadź pętlę przez wartości w procedurze MySql

  5. Jak odwrócić kolejność znaków w ciągu znaków w MySQL