sql >> Database teknologi >  >> RDS >> Database

Hvordan tilføjes kolonne i tabel i SQL?

Sådan tilføjes kolonne i tabel i SQL

Introduktion

  • For at tilføje en kolonne i allerede oprettet tabel, skal man bruge ALTER-kommandoen sammen med ADD-sætningen.
  • Hvis det i forespørgslen ikke er angivet, hvor den nye kolonne skal tilføjes, vil den som standard blive tilføjet som en sidste kolonne.
  • Man kan også tilføje en ny kolonne ved den første eller endda efter en specifik kolonne i en allerede oprettet tabel.
  • Du kan tilføje én kolonne eller mere end én kolonne ad gangen ved hjælp af en enkelt SQL-forespørgsel.

(A). Tilføjelse af en ny kolonne til sidst i en eksisterende tabel

Syntaks:

ALTER TABLE tablename ADD (ColumnName datatype);

hvor ,

  1. Tabelnavn er navnet på en allerede eksisterende tabel, som du skal tilføje en ny kolonne til.
  2. Kolonne_navn er navnet på den kolonne, der skal tilføjes til en allerede eksisterende tabel.

Eksempel:

Først vil vi oprette en database med navnet "studentdb ”. Så i den database vil vi oprette en tabel "elev" og indsætte poster i tabellen. Vi vil overveje den samme database og også den samme tabel for efterfølgende eksempler.

Nu vil vi tilføje en ny kolonne 'By' til en eksisterende 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) 

Ny kolonne 'By' tilføjes til en eksisterende elevtabel. Da vi i forespørgslen ikke har angivet, hvor det skal tilføjes, så som standard tilføjes det som den sidste kolonne.

(B)Tilføjelse af mere end én kolonne til en eksisterende tabel

Syntaks:

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

Eksempel:

Nu vil vi tilføje to nye kolonner "By" og "Mærker" til en eksisterende tabel ved hjælp af en enkelt forespørgsel.

mysql> BRUG studentdb;

Output:

 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; 

Output:

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

Nye kolonner 'By' og 'Mærker' tilføjes til en eksisterende elevtabel. Da vi i forespørgslen ikke har angivet, hvor den skal tilføjes, så som standard tilføjes begge kolonner sidst ved hjælp af en enkelt forespørgsel.

(C) Tilføjelse af en kolonne ved den første position i en eksisterende tabel

Syntaks :

ALTER TABLE tablename ADD ColumnName datatype FIRST;

Eksempel: Nu vil vi tilføje en ny kolonne 'Sr_No' til en eksisterende tabel som en første kolonne.

mysql> USE studentdb;

Output:

 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; 

Output:

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

Output:

 +-------+---------+-----------+-----------+-------------+
 | 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 kolonne 'Sr_No' tilføjes til en eksisterende elevtabel. Da vi i forespørgslen har angivet 'FIRST' søgeord, så 'Sr_No' tilføjes som en første kolonne.

(D) Tilføjelse af en ny kolonne efter en specifik kolonne i en eksisterende tabel

Syntaks:

ALTER TABLE tablename ADD ColumnName datatype AFTER column_name;

Eksempel:

Nu vil vi tilføje en ny kolonne 'Mærker' til en eksisterende tabel efter 'Course_Name' .

mysql> USE studentdb;

Output:

 Database changed
 mysql> SELECT *FROM student; 

Output:

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

Output :

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

Output:

 +---------+-----------+-----------+-------------+-------+------+
 | 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 kolonne 'Mærker' tilføjes til en eksisterende elevtabel. Siden har vi i forespørgslen angivet 'AFTER' søgeord med kolonnenavnet, hvorefter den nye kolonne skal tilføjes. Derfor tilføjes 'Mærker' efter 'Course_Name'.


  1. Flet to tabeller i én SQL-forespørgsel og gør datoværdierne unikke

  2. PostgreSQL, kompleks forespørgsel til beregning af ingredienser efter opskrift

  3. Sådan konverteres epoke til mySQL tidsstempel i JAVA

  4. Problemsæt 1 – Identifikation af enheder