sql >> Databasteknik >  >> RDS >> Database

Hur lägger man till kolumn i tabell i SQL?

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 ,

  1. Tabellnamn är namnet på en redan befintlig tabell som du måste lägga till en ny kolumn i.
  2. 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'.


  1. startar postgresql och pgadmin i Windows utan installation

  2. Är en vy snabbare än en enkel fråga?

  3. Något sätt att SQLBulkCopy infoga eller uppdatera om det finns?

  4. Mysql:Ställ in formatet DATETIME till 'DD-MM-YYYY HH:MM:SS' när du skapar en tabell