Hur man lägger till kolumn i tabell i SQL
Introduktion
- För att lägga till en kolumn i redan skapad tabell måste man använda kommandot ALTER tillsammans med ADD-satsen.
- Om det i frågan inte anges var den nya kolumnen ska läggas till kommer den som standard att läggas till som en sista kolumn.
- Man kan också lägga till en ny kolumn vid den första eller till och med efter en specifik kolumn i en redan skapad tabell.
- Du kan lägga till en kolumn eller fler än en kolumn åt gången med en enda SQL-fråga.
(A). Lägga till en ny kolumn sist i en befintlig tabell
Syntax:
ALTER TABLE tablename ADD (ColumnName datatype);
var ,
- Tabellnamn är namnet på en redan befintlig tabell som du måste lägga till en ny kolumn i.
- Kolumnnamn är namnet på kolumnen som ska läggas till i en redan befintlig tabell.
Exempel:
Först skapar vi en databas med namnet "studentdb ”. Sedan kommer vi i den databasen att skapa en tabell "student" och infoga poster i tabellen. Vi kommer att överväga samma databas och även samma tabell för efterföljande exempel.
Nu kommer vi att lägga till en ny kolumn "Stad" i en befintlig tabell.
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)
Ny kolumn "Stad" läggs till i en befintlig elevtabell. Eftersom vi i frågan inte har angett var den ska läggas till så läggs den som standard till som den sista kolumnen.
(B)Lägga till mer än en kolumn i en befintlig tabell
Syntax:
ALTER TABLE tablename ADD (ColumnName1 datatype, ColumnName2 datatype);
Exempel:
Nu kommer vi att lägga till två nya kolumner "Stad" och "Marks" till en befintlig tabell med en enda fråga.
mysql> ANVÄND studentdb;
Utdata:
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;
Utdata:
+---------+-----------+-----------+-------------+------+-------+ | 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)
Nya kolumner "Stad" och "Marks" läggs till i en befintlig elevtabell. Eftersom vi i frågan inte har specificerat var den ska läggas till, så som standard läggs båda kolumnerna till sist med en enda fråga.
(C) Lägga till en kolumn vid den första positionen i en befintlig tabell
Syntax :
ALTER TABLE tablename ADD ColumnName datatype FIRST;
Exempel: Nu kommer vi att lägga till en ny kolumn 'Sr_No' till en befintlig tabell som en första kolumn.
mysql> USE studentdb;
Utdata:
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;
Utdata:
Query OK, 4 rows affected (0.24 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> SELECT *FROM student;
Utdata:
+-------+---------+-----------+-----------+-------------+ | 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)
Ny kolumn 'Sr_No' läggs till i en befintlig elevtabell. Eftersom vi i frågan har angett "FIRST" nyckelord så "Sr_No" läggs till som en första kolumn.
(D) Lägga till en ny kolumn efter en specifik kolumn i en befintlig tabell
Syntax:
ALTER TABLE tablename ADD ColumnName datatype AFTER column_name;
Exempel:
Nu kommer vi att lägga till en ny kolumn "Marks" i en befintlig tabell efter "Course_Name" .
mysql> USE studentdb;
Utdata:
Database changed mysql> SELECT *FROM student;
Utdata:
+---------+-----------+-----------+-------------+------+ | 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;
Utdata :
Query OK, 4 rows affected (0.28 sec) Records: 4 Duplicates: 0 Warnings: 0
mysql> SELECT *FROM student;
Utdata:
+---------+-----------+-----------+-------------+-------+------+ | 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)
Ny kolumn "Betyg" läggs till i en befintlig elevtabell. Sedan har vi i frågan angett nyckelordet "AFTER" med kolumnnamnet efter vilket den nya kolumnen ska läggas till. Därför läggs 'Marks' till efter 'Course_Name'.