Hoe een kolom in een tabel in SQL toe te voegen
Inleiding
- Om een kolom toe te voegen aan een reeds gemaakte tabel, moet men het ALTER-commando gebruiken samen met de ADD-clausule.
- Als in de zoekopdracht niet is opgegeven waar de nieuwe kolom moet worden toegevoegd, wordt deze standaard als laatste kolom toegevoegd.
- Je kunt ook een nieuwe kolom toevoegen aan de eerste of zelfs na een specifieke kolom van een reeds gemaakte tabel.
- U kunt één kolom of meer kolommen tegelijk toevoegen met een enkele SQL-query.
Syntaxis:
ALTER TABLE tablename ADD (ColumnName datatype);
waar ,
- Tabelnaam is de naam van een reeds bestaande tabel waaraan u een nieuwe kolom moet toevoegen.
- Kolomnaam is de naam van de kolom die moet worden toegevoegd aan een reeds bestaande tabel.
Voorbeeld:
Eerst zullen we een database maken met de naam "studentdb ”. Vervolgens zullen we in die database een tabel "student" maken en records in de tabel invoegen. We zullen dezelfde database en ook dezelfde tabel beschouwen voor volgende voorbeelden.
Nu voegen we een nieuwe kolom 'Stad' toe aan een bestaande tabel.
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)
Nieuwe kolom ‘Stad’ wordt toegevoegd aan een bestaande studententabel. Omdat we in de query niet hebben gespecificeerd waar deze moet worden toegevoegd, wordt deze standaard toegevoegd als de laatste kolom.
(B)Meer dan één kolom toevoegen aan een bestaande tabel
Syntaxis:
ALTER TABLE tablename ADD (ColumnName1 datatype, ColumnName2 datatype);
Voorbeeld:
Nu zullen we twee nieuwe kolommen 'Plaats' en 'Markeringen' aan een bestaande tabel toevoegen met een enkele zoekopdracht.
mysql> GEBRUIK studentdb;
Uitvoer:
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;
Uitvoer:
+---------+-----------+-----------+-------------+------+-------+ | 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)
Nieuwe kolommen ‘Stad’ en ‘Cijfers’ worden toegevoegd aan een bestaande studententabel. Omdat we in de query niet hebben gespecificeerd waar deze moet worden toegevoegd, worden standaard beide kolommen als laatste toegevoegd met een enkele query.
(C) Een kolom toevoegen op de eerste positie van een bestaande tabel
Syntaxis :
ALTER TABLE tablename ADD ColumnName datatype FIRST;
Voorbeeld: Nu zullen we een nieuwe kolom 'Sr_No' aan een bestaande tabel toevoegen als een eerste kolom.
mysql> USE studentdb;
Uitvoer:
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;
Uitvoer:
Query OK, 4 rows affected (0.24 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> SELECT *FROM student;
Uitvoer:
+-------+---------+-----------+-----------+-------------+ | 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)
Nieuwe kolom 'Sr_No' wordt toegevoegd aan een bestaande studententabel. Sindsdien hebben we in de zoekopdracht het trefwoord 'FIRST' gespecificeerd, dus 'Sr_No' wordt toegevoegd als een eerste kolom.
(D) Een nieuwe kolom toevoegen na een specifieke kolom van een bestaande tabel
Syntaxis:
ALTER TABLE tablename ADD ColumnName datatype AFTER column_name;
Voorbeeld:
Nu voegen we een nieuwe kolom 'Markeringen' toe aan een bestaande tabel na 'Course_Name'.
mysql> USE studentdb;
Uitvoer:
Database changed mysql> SELECT *FROM student;
Uitvoer:
+---------+-----------+-----------+-------------+------+ | 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;
Uitvoer :
Query OK, 4 rows affected (0.28 sec) Records: 4 Duplicates: 0 Warnings: 0
mysql> SELECT *FROM student;
Uitvoer:
+---------+-----------+-----------+-------------+-------+------+ | 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)
Nieuwe kolom 'Cijfers' is toegevoegd aan een bestaande studententabel. Sindsdien hebben we in de zoekopdracht het trefwoord ‘AFTER’ gespecificeerd met de kolomnaam waarna de nieuwe kolom moet worden toegevoegd. Daarom wordt 'Marks' toegevoegd na 'Course_Name'.