Jak přidat sloupec do tabulky v SQL
Úvod
- Chcete-li přidat sloupec do již vytvořené tabulky, musíte použít příkaz ALTER spolu s klauzulí ADD.
- Pokud v dotazu není uvedeno, kam se má nový sloupec přidat, bude ve výchozím nastavení přidán jako poslední sloupec.
- Je také možné přidat nový sloupec na první nebo dokonce za konkrétní sloupec již vytvořené tabulky.
- Můžete přidat jeden sloupec nebo více sloupců najednou pomocí jediného SQL dotazu.
(A). Přidání nového sloupce na konec existující tabulky
Syntaxe:
ALTER TABLE tablename ADD (ColumnName datatype);
kde ,
- Název tabulky je název již existující tabulky, do které musíte přidat nový sloupec.
- Column_name je název sloupce, který má být přidán do již existující tabulky.
Příklad:
Nejprve vytvoříme databázi s názvem „studentdb “. Poté v této databázi vytvoříme tabulku „student“ a vložíme do ní záznamy. Pro následující příklady budeme uvažovat stejnou databázi a také stejnou tabulku.
Nyní do existující tabulky přidáme nový sloupec ‚City‘.
mysql> USE studentdb; Database changed mysql> SELECT *FROM student; +---------+-----------+-----------+-------------+ | Stud_ID | Stud_Name | Course_ID | Course_Name | +---------+-----------+-----------+-------------+ | 1 | Prajakta | 101 | DBMS | | 2 | Shweta | 102 | CN | | 3 | Nikita | 103 | OS | | 4 | Ankita | 104 | C | +---------+-----------+-----------+-------------+ 4 rows in set (0.00 sec) mysql> ALTER TABLE student ADD (City VARCHAR(20)); Query OK, 4 rows affected (0.29 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> SELECT *FROM student; +---------+-----------+-----------+-------------+------+ | Stud_ID | Stud_Name | Course_ID | Course_Name | City | +---------+-----------+-----------+-------------+------+ | 1 | Prajakta | 101 | DBMS | NULL | | 2 | Shweta | 102 | CN | NULL | | 3 | Nikita | 103 | OS | NULL | | 4 | Ankita | 104 | C | NULL | +---------+-----------+-----------+-------------+------+ 4 rows in set (0.00 sec)
Do stávající tabulky studentů je přidán nový sloupec „Město“. Protože jsme v dotazu neurčili, kam se má přidat, tak se ve výchozím nastavení přidává jako poslední sloupec.
(B)Přidání více než jednoho sloupce do existující tabulky
Syntaxe:
ALTER TABLE tablename ADD (ColumnName1 datatype, ColumnName2 datatype);
Příklad:
Nyní přidáme dva nové sloupce „Město“ a „Značky“ do existující tabulky pomocí jediného dotazu.
mysql> USE studentdb;
Výstup:
Database changed mysql> SELECT *FROM student; +---------+-----------+-----------+-------------+ | Stud_ID | Stud_Name | Course_ID | Course_Name | +---------+-----------+-----------+-------------+ | 1 | Prajakta | 101 | DBMS | | 2 | Shweta | 102 | CN | | 3 | Nikita | 103 | OS | | 4 | Ankita | 104 | C | +---------+-----------+-----------+-------------+ 4 rows in set (0.00 sec) mysql> ALTER TABLE student ADD (City VARCHAR(20),Marks INT); Query OK, 4 rows affected (0.40 sec) mysql> SELECT *FROM student;
Výstup:
+---------+-----------+-----------+-------------+------+-------+ | Stud_ID | Stud_Name | Course_ID | Course_Name | City | Marks | +---------+-----------+-----------+-------------+------+-------+ | 1 | Prajakta | 101 | DBMS | NULL | NULL | | 2 | Shweta | 102 | CN | NULL | NULL | | 3 | Nikita | 103 | OS | NULL | NULL | | 4 | Ankita | 104 | C | NULL | NULL | +---------+-----------+-----------+-------------+------+-------+ 4 rows in set (0.00 sec)
Do stávající tabulky studentů jsou přidány nové sloupce „Město“ a „Značky“. Vzhledem k tomu, že jsme v dotazu neurčili, kam se má přidat, tak jsou oba sloupce standardně přidány jako poslední pomocí jediného dotazu.
(C) Přidání sloupce na první pozici existující tabulky
Syntaxe :
ALTER TABLE tablename ADD ColumnName datatype FIRST;
Příklad: Nyní přidáme nový sloupec ‚Sr_No‘ do existující tabulky jako první sloupec.
mysql> USE studentdb;
Výstup:
Database changed mysql> SELECT *FROM student; +---------+-----------+-----------+-------------+ | Stud_ID | Stud_Name | Course_ID | Course_Name | +---------+-----------+-----------+-------------+ | 1 | Prajakta | 101 | DBMS | | 2 | Shweta | 102 | CN | | 3 | Nikita | 103 | OS | | 4 | Ankita | 104 | C | +---------+-----------+-----------+-------------+ 4 rows in set (0.00 sec) mysql> ALTER TABLE student ADD Sr_No INT FIRST;
Výstup:
Query OK, 4 rows affected (0.24 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> SELECT *FROM student;
Výstup:
+-------+---------+-----------+-----------+-------------+ | Sr_No | Stud_ID | Stud_Name | Course_ID | Course_Name | +-------+---------+-----------+-----------+-------------+ | NULL | 1 | Prajakta | 101 | DBMS | | NULL | 2 | Shweta | 102 | CN | | NULL | 3 | Nikita | 103 | OS | | NULL | 4 | Ankita | 104 | C | +-------+---------+-----------+-----------+-------------+ 4 rows in set (0.00 sec)
Do stávající tabulky studentů je přidán nový sloupec ‚Sr_No‘. Protože jsme v dotazu zadali klíčové slovo „FIRST“, je jako první sloupec přidáno „Sr_No“.
(D) Přidání nového sloupce za určitý sloupec existující tabulky
Syntaxe:
ALTER TABLE tablename ADD ColumnName datatype AFTER column_name;
Příklad:
Nyní přidáme nový sloupec ‚Marks‘ do existující tabulky za ‚Course_Name‘.
mysql> USE studentdb;
Výstup:
Database changed mysql> SELECT *FROM student;
Výstup:
+---------+-----------+-----------+-------------+------+ | Stud_ID | Stud_Name | Course_ID | Course_Name | City | +---------+-----------+-----------+-------------+------+ | 1 | Prajakta | 101 | DBMS | NULL | | 2 | Shweta | 102 | CN | NULL | | 3 | Nikita | 103 | OS | NULL | | 4 | Ankita | 104 | C | NULL | +---------+-----------+-----------+-------------+------+ 4 rows in set (0.00 sec) mysql> ALTER TABLE student ADD Marks INT AFTER Course_Name;
Výstup :
Query OK, 4 rows affected (0.28 sec) Records: 4 Duplicates: 0 Warnings: 0
mysql> SELECT *FROM student;
Výstup:
+---------+-----------+-----------+-------------+-------+------+ | Stud_ID | Stud_Name | Course_ID | Course_Name | Marks | City | +---------+-----------+-----------+-------------+-------+------+ | 1 | Prajakta | 101 | DBMS | NULL | NULL | | 2 | Shweta | 102 | CN | NULL | NULL | | 3 | Nikita | 103 | OS | NULL | NULL | | 4 | Ankita | 104 | C | NULL | NULL | +---------+-----------+-----------+-------------+-------+------+ 4 rows in set (0.00 sec)
Do stávající tabulky studentů je přidán nový sloupec „Značky“. Protože jsme v dotazu zadali klíčové slovo „AFTER“ s názvem sloupce, za který má být nový sloupec přidán. Za „Název_kurzu“ je tedy přidáno „Značky“.