Apache Derby - Insérer des données

La requête d'insertion insère des données: new records, dans la table.

Syntaxe

Voici la syntaxe de base de l'instruction INSERT -

ij>INSERT INTO table_name VALUES (column_name1, column_name2, ...);

où colonne1, colonne2 sont les valeurs de colonne dans la ligne à insérer.

Exemple

L'instruction SQL INSERT suivante insère une nouvelle ligne dans la table Student, où elle insère des valeurs dans les colonnes id, age, first name et, last name.

SQL> INSERT INTO Student VALUES (101, 20, 'Zara', 'Ali');

Syntaxe 2

Ou, vous pouvez insérer deux colonnes spécifiques en mentionnant les noms de colonne, comme indiqué ci-dessous -

ij>INSERT INTO table_name VALUES (column_name1, column_name2, ...) VALUES
(value1, value2, ...);

Note- Apache Derby calcule automatiquement les valeurs des colonnes générées. Par exemple, il n'est pas nécessaire de transmettre des valeurs pour la colonne id dans la table Student créée précédemment dans ce didacticiel. Si votre table a généré des colonnes, utilisezsyntax2.

Exemple

ij> INSERT INTO Student(Age, First_Name, Last_Name) VALUES (21, 'Sucharitha' , 'Tyagi');
1 row inserted/updated/deleted

Et, vous pouvez également insérer deux lignes en utilisant une instruction comme suit -

ij>INSERT INTO Student(Age, First_Name, Last_Name) VALUES (20, 'Amit',
'Bhattacharya'), (22, 'Rahul', 'Desai');
2 rows inserted/updated/deleted

Vous pouvez vérifier le contenu de la table à l'aide de la commande SELECT (nous aborderons cette commande plus loin dans ce tutoriel).

Syntaxe 3

Vous pouvez utiliser une autre requête dans l'instruction d'insertion comme -

INSERT INTO table_Name Query

Exemple

Supposons que nous ayons une table nommée First_Year dans la base de données comme indiqué ci-dessous avec des colonnes similaires à celles du tableau Student -

ID |AGE |FIRST_NAME |LAST_NAME
-----------------------------------------------------------------
1 |20 |Raju |Pendyala
2 |21 |Bhargav |Prayaga
3 |22 |Deepthi |Yerramilli

Vous pouvez insérer des valeurs de ce tableau dans la table Student en utilisant la syntaxe ci-dessus comme -

ij> INSERT INTO Student (Age, First_Name, Last_Name)
 SELECT Age, First_Name, Last_Name FROM First_Year;
> 3 rows inserted/updated/deleted

Après avoir exécuté toutes les instructions d'insertion ci-dessus, la table Student sera la suivante -

ID |AGE |FIRST_NAME |LAST_NAME
-------------------------------------------------------------
1 |21 |Sucharitha |Tyagi
2 |20 |Amit |Bhattacharya
3 |22 |Rahul |Desai
4 |20 |Raju |Pendyala
5 |21 |Bhargav |Prayaga
6 |22 |Deepthi |Yerramilli

Insérer des données à l'aide du programme JDBC

Cette section vous apprend à insérer des données dans une table de la base de données Apache Derby à l'aide de l'application JDBC.

Si vous souhaitez demander le serveur réseau Derby à l'aide du client réseau, assurez-vous que le serveur est opérationnel. Le nom de classe du pilote client réseau est org.apache.derby.jdbc.ClientDriver et l'URL est jdbc: derby: // localhost: 1527 /DATABASE_NAME;create = true; utilisateur =USER_NAME;passw ord =PASSWORD"

Suivez les étapes ci-dessous pour insérer des données dans une table dans Apache Derby -

Étape 1: enregistrer le pilote

Pour communiquer avec la base de données, vous devez tout d'abord enregistrer le pilote. leforName() méthode de la classe, Classaccepte une valeur String représentant un nom de classe la charge dans la mémoire, qui l'enregistre automatiquement. Enregistrez le pilote en utilisant cette méthode.

Étape 2: Obtenez la connexion

En général, la première étape que nous faisons pour communiquer avec la base de données est de nous y connecter. leConnectionclass représente la connexion physique avec un serveur de base de données. Vous pouvez créer un objet de connexion en appelant legetConnection() méthode de la DriverManagerclasse. Créez une connexion à l'aide de cette méthode.

Étape 3: créer un objet instruction

Vous devez créer un Statement ou PreparedStatement or, CallableStatementobjets pour envoyer des instructions SQL à la base de données. Vous pouvez les créer en utilisant les méthodescreateStatement(), prepareStatement() et, prepareCall()respectivement. Créez l'un de ces objets en utilisant la méthode appropriée.

Étape 4: exécutez la requête

Après avoir créé une instruction, vous devez l'exécuter. leStatement classe fournit diverses méthodes pour exécuter une requête comme execute() pour exécuter une instruction qui renvoie plusieurs ensembles de résultats.

le executeUpdate()La méthode exécute des requêtes comme INSERT, UPDATE, DELETE. leexecuteQuery() méthode aux résultats qui renvoie des données, etc. Utilisez l'une de ces méthodes et exécutez l'instruction créée précédemment.

Exemple

L'exemple JDBC suivant montre comment insérer des données dans une table dans Apache Derby à l'aide du programme JDBC. Ici, nous nous connectons à une base de données nommée sampleDB (créera si elle n'existe pas) en utilisant le pilote intégré.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class InsertData {
   public static void main(String args[]) throws Exception {
      //Registering the driver
      Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
      //Getting the Connection object
      String URL = "jdbc:derby:SampleDB;create=true";
      Connection conn = DriverManager.getConnection(URL);

      //Creating the Statement object
      Statement stmt = conn.createStatement();

      //Creating a table and populating
      String query = "CREATE TABLE Employees("
         + "Id INT NOT NULL GENERATED ALWAYS AS IDENTITY, "
         + "Name VARCHAR(255), Salary INT NOT NULL, "
         + "Location VARCHAR(255), "
         + "PRIMARY KEY (Id))";
      //Executing the query
      String query = "INSERT INTO Employees("
         + "Name, Salary, Location) VALUES "
         + "('Amit', 30000, 'Hyderabad'), "
         + "('Kalyan', 40000, 'Vishakhapatnam'), "
         + "('Renuka', 50000, 'Delhi'), "
         + "('Archana', 15000, 'Mumbai'), "
         + "('Trupthi', 45000, 'Kochin'), "
         + "('Suchatra', 33000, 'Pune'), "
         + "('Rahul', 39000, 'Lucknow'), "
         + "('Trupti', 45000, 'Kochin')";
      stmt.execute(query);
      System.out.println("Values inserted");
   }
}

Production

Lors de l'exécution du programme ci-dessus, vous obtiendrez la sortie suivante -

Values inserted