Database
 sql >> Datenbank >  >> RDS >> Database

Wie füge ich eine Spalte in einer Tabelle in SQL hinzu?

So fügen Sie eine Spalte in einer Tabelle in SQL hinzu

Einführung

  • Um eine Spalte in einer bereits erstellten Tabelle hinzuzufügen, muss man den ALTER-Befehl zusammen mit der ADD-Klausel verwenden
  • Wenn in der Abfrage nicht angegeben ist, wo die neue Spalte hinzugefügt werden soll, wird sie standardmäßig als letzte Spalte hinzugefügt.
  • Man kann auch eine neue Spalte am Anfang oder sogar nach einer bestimmten Spalte einer bereits erstellten Tabelle hinzufügen.
  • Sie können mit einer einzigen SQL-Abfrage eine oder mehrere Spalten gleichzeitig hinzufügen.

(A). Hinzufügen einer neuen Spalte am Ende einer bestehenden Tabelle

Syntax:

ALTER TABLE tablename ADD (ColumnName datatype);

wo ,

  1. Tabellenname ist der Name einer bereits bestehenden Tabelle, der Sie eine neue Spalte hinzufügen müssen.
  2. Column_name ist der Name der Spalte, die zu einer bereits bestehenden Tabelle hinzugefügt werden soll.

Beispiel:

Zuerst erstellen wir eine Datenbank mit dem Namen „studentdb “. Dann erstellen wir in dieser Datenbank eine Tabelle „Student“ und fügen Datensätze in die Tabelle ein. Wir werden dieselbe Datenbank und auch dieselbe Tabelle für nachfolgende Beispiele betrachten.

Jetzt fügen wir einer bestehenden Tabelle eine neue Spalte „Stadt“ hinzu.

 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) 

Einer bestehenden Studententabelle wird die neue Spalte „Stadt“ hinzugefügt. Da wir in der Abfrage nicht angegeben haben, wo es hinzugefügt werden soll, wird es standardmäßig als letzte Spalte hinzugefügt.

(B)Hinzufügen von mehr als einer Spalte zu einer bestehenden Tabelle

Syntax:

ALTER TABLE tablename ADD (ColumnName1 datatype, ColumnName2 datatype);

Beispiel:

Jetzt fügen wir zwei neue Spalten „Stadt“ und „Markierungen“ zu einer vorhandenen Tabelle hinzu, indem wir eine einzige Abfrage verwenden.

mysql> USE studentdb;

Ausgabe:

 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; 

Ausgabe:

 +---------+-----------+-----------+-------------+------+-------+
 | 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) 

Einer bestehenden Schülertabelle werden die neuen Spalten „Stadt“ und „Noten“ hinzugefügt. Da wir in der Abfrage nicht angegeben haben, wo sie hinzugefügt werden soll, werden beide Spalten standardmäßig als letztes mit einer einzigen Abfrage hinzugefügt.

(C) Hinzufügen einer Spalte an der ersten Position einer bestehenden Tabelle

Syntax :

ALTER TABLE tablename ADD ColumnName datatype FIRST;

Beispiel: Nun fügen wir einer bestehenden Tabelle als erste Spalte eine neue Spalte „Sr_No“ hinzu.

mysql> USE studentdb;

Ausgabe:

 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; 

Ausgabe:

 Query OK, 4 rows affected (0.24 sec)
 Records: 4  Duplicates: 0  Warnings: 0
 mysql> SELECT *FROM student; 

Ausgabe:

 +-------+---------+-----------+-----------+-------------+
 | 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) 

Einer bestehenden Schülertabelle wird die neue Spalte „Sr_No“ hinzugefügt. Da wir in der Abfrage das Schlüsselwort „FIRST“ angegeben haben, wird „Sr_No“ als erste Spalte hinzugefügt.

(D) Hinzufügen einer neuen Spalte nach einer bestimmten Spalte einer bestehenden Tabelle

Syntax:

ALTER TABLE tablename ADD ColumnName datatype AFTER column_name;

Beispiel:

Nun fügen wir einer bestehenden Tabelle nach dem „Course_Name“ eine neue Spalte „Marken“ hinzu.

mysql> USE studentdb;

Ausgabe:

 Database changed
 mysql> SELECT *FROM student; 

Ausgabe:

 +---------+-----------+-----------+-------------+------+
 | 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; 

Ausgabe :

 Query OK, 4 rows affected (0.28 sec)
 Records: 4  Duplicates: 0  Warnings: 0 
mysql> SELECT *FROM student;

Ausgabe:

 +---------+-----------+-----------+-------------+-------+------+
 | 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) 

Einer bestehenden Schülertabelle wird die neue Spalte „Noten“ hinzugefügt. Da wir in der Abfrage das Schlüsselwort „AFTER“ mit dem Spaltennamen angegeben haben, nach dem die neue Spalte hinzugefügt werden soll. Daher wird nach „Course_Name“ „Marks“ hinzugefügt.