sql >> Databáze >  >> RDS >> Database

Jak přidat sloupec do tabulky v SQL?

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 ,

  1. Název tabulky je název již existující tabulky, do které musíte přidat nový sloupec.
  2. 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“.


  1. Odebrat SCHEMABINDING z funkce definované uživatelem na serveru SQL Server

  2. Jak ovládat selhání replikace pro MySQL a MariaDB

  3. Způsob, jak extrahovat data hodnoty DateTime bez sekund

  4. Parametry připojovacího řetězce pro zdroje dat aplikace Excel