Apache Derby - clausola Where
La clausola WHERE viene utilizzata nelle istruzioni SELECT, DELETE o UPDATE per specificare le righe su cui è necessario eseguire l'operazione. Di solito, questa clausola è seguita da una condizione o espressione che restituisce un valore booleano, le operazioni di selezione, eliminazione o aggiornamento vengono eseguite solo sulle righe che soddisfano la condizione data.
ij> SELECT * from table_name WHERE condition;
or,
ij> DELETE from table_name WHERE condition;
or,
ij> UPDATE table_name SET column_name = value WHERE condition;
La clausola WHERE può utilizzare gli operatori di confronto come =,! =, <,>, <= E> =, così come gli operatori BETWEEN e LIKE.
Esempio
Supponiamo di avere una tabella denominata Dipendenti nel database con 7 record come mostrato di seguito -
ID |NAME |SALARY |LOCATION
-----------------------------------------------------------------------------
1 |Amit |30000 |Hyderabad
2 |Kalyan |40000 |Vishakhapatnam
3 |Renuka |50000 |Delhi
4 |Archana |15000 |Mumbai
5 |Trupthi |45000 |Kochin
6 |Suchatra |33000 |Pune
7 |Rahul |39000 |Lucknow
La seguente istruzione SQL DELETE recupera i record dei dipendenti il cui stipendio è superiore a 35000 -
ij> SELECT * FROM Employees WHERE Salary>35000;
Questo produrrà il seguente output:
ID |NAME |SALARY |LOCATION
---------------------------------------------------
2 |Kalyan |40000 |Vishakhapatnam
3 |Renuka |50000 |Delhi
5 |Trupthi |45000 |Kochin
7 |Rahul |39000 |Lucknow
4 rows selected
Allo stesso modo, puoi anche eliminare e aggiornare i record utilizzando questa clausola.
L'esempio seguente aggiorna la posizione di coloro il cui stipendio è inferiore a 30000.
ij> UPDATE Employees SET Location = 'Vijayawada' WHERE Salary<35000;
3 rows inserted/updated/deleted
Se verifichi il contenuto della tabella, puoi vedere la tabella aggiornata come mostrato di seguito -
ij> SELECT * FROM Employees;
ID |NAME |SALARY |LOCATION
------------------------------------------------------------------------------
1 |Amit |30000 |Vijayawada
2 |Kalyan |40000 |Vishakhapatnam
3 |Renuka |50000 |Delhi
4 |Archana |15000 |Vijayawada
5 |Trupthi |45000 |Kochin
6 |Suchatra |33000 |Vijayawada
7 |Rahul |39000 |Lucknow
7 rows selected
Esempio di clausola Where JDBC
Questa sezione insegna come utilizzare la clausola WHERE ed eseguire operazioni CURD su una tabella nel database Apache Derby utilizzando l'applicazione JDBC.
Se desideri richiedere il server di rete Derby utilizzando il client di rete, assicurati che il server sia attivo e funzionante. Il nome della classe per il driver del client di rete è org.apache.derby.jdbc.ClientDriver e l'URL è jdbc: derby: // localhost: 1527 /DATABASE_NAME; creare = true; utente =USER_NAME;passw ord =PASSWORD".
Seguire i passaggi indicati di seguito per utilizzare la clausola WHERE ed eseguire operazioni CURD su una tabella in Apache Derby
Passaggio 1: registra il driver
Per comunicare con il database, prima di tutto, è necessario registrare il conducente. IlforName() metodo della classe Classaccetta un valore String che rappresenta il nome di una classe lo carica nella memoria, che lo registra automaticamente. Registra il driver utilizzando questo metodo
Passaggio 2: ottieni la connessione
In generale, il primo passo che facciamo per comunicare con il database è connetterci con esso. IlConnectionclass rappresenta la connessione fisica con un server di database. È possibile creare un oggetto connessione richiamando il filegetConnection() metodo del DriverManagerclasse. Crea una connessione usando questo metodo.
Passaggio 3: creare un oggetto istruzione
Devi creare un file Statement o PreparedStatement o, CallableStatementoggetti per inviare istruzioni SQL al database. Puoi crearli usando i metodicreateStatement(), prepareStatement() and, prepareCall()rispettivamente. Crea uno di questi oggetti utilizzando il metodo appropriato.
Passaggio 4: eseguire la query
Dopo aver creato un'istruzione, è necessario eseguirla. IlStatement class fornisce vari metodi per eseguire una query come il execute()metodo per eseguire un'istruzione che restituisce più di un set di risultati. IlexecuteUpdate()metodo esegue query come INSERT, UPDATE, DELETE. IlexecuteQuery()risultati del metodo che restituisce dati. Utilizzare uno di questi metodi ed eseguire l'istruzione creata in precedenza.
Esempio
L'esempio JDBC seguente mostra come utilizzare la clausola WHERE ed eseguire operazioni CURD su una tabella in Apache Derby utilizzando il programma JDBC. Qui, ci stiamo connettendo a un database denominato sampleDB (creerà se non esiste) utilizzando il driver incorporato.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
public class WhereClauseExample {
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 it
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))";
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')";
//Executing the query
String query = "SELECT * FROM Employees WHERE Salary>35000";
ResultSet rs = stmt.executeQuery(query);
while(rs.next()) {
System.out.println("Id: "+rs.getString("Id"));
System.out.println("Name: "+rs.getString("Name"));
System.out.println("Salary: "+rs.getString("Salary"));
System.out.println("Location: "+rs.getString("Location"));
System.out.println(" ");
}
}
}
Produzione
Eseguendo il programma sopra, otterrai il seguente output:
Id: 2
Name: Kalyan
Salary: 43000
Location: Chennai
Id: 3
Name: Renuka
Salary: 50000
Location: Delhi
Id: 5
Name: Trupthi
Salary: 45000
Location: Kochin
Id: 7
Name: Rahul
Salary: 39000
Location: Lucknow