Apache Derby - Where Clause

Klauzula WHERE jest używana w instrukcjach SELECT, DELETE lub UPDATE do określenia wierszy, na których ma zostać wykonana operacja. Zwykle po tej klauzuli następuje warunek lub wyrażenie, które zwraca wartość logiczną. Operacje Select, delete lub update są wykonywane tylko na wierszach spełniających dany warunek.

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;

W klauzuli WHERE można używać operatorów porównania, takich jak =,! =, <,>, <= I> =, a także operatorów BETWEEN i LIKE.

Przykład

Załóżmy, że w bazie danych mamy tabelę o nazwie Pracownicy z 7 rekordami, jak pokazano poniżej -

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

Następujące polecenie SQL DELETE pobiera rekordy pracowników, których wynagrodzenie przekracza 35000 -

ij> SELECT * FROM Employees WHERE Salary>35000;

Spowoduje to wygenerowanie następującego wyniku -

ID |NAME |SALARY |LOCATION 
---------------------------------------------------
2 |Kalyan |40000 |Vishakhapatnam
3 |Renuka |50000 |Delhi
5 |Trupthi |45000 |Kochin
7 |Rahul |39000 |Lucknow
4 rows selected

Podobnie możesz również usuwać i aktualizować rekordy za pomocą tej klauzuli.

Poniższy przykład aktualizuje lokalizację tych, których pensja jest mniejsza niż 30000.

ij> UPDATE Employees SET Location = 'Vijayawada' WHERE Salary<35000;
3 rows inserted/updated/deleted

Jeśli zweryfikujesz zawartość tabeli, możesz zobaczyć zaktualizowaną tabelę, jak pokazano poniżej -

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

Przykład klauzuli Where JDBC

W tej sekcji przedstawiono sposób korzystania z klauzuli WHERE i wykonywania operacji CURD na tabeli w bazie danych Apache Derby za pomocą aplikacji JDBC.

Jeśli chcesz zażądać serwera sieciowego Derby za pomocą klienta sieciowego, upewnij się, że serwer jest uruchomiony i działa. Nazwa klasy sterownika klienta sieci to org.apache.derby.jdbc.ClientDriver, a adres URL to jdbc: derby: // localhost: 1527 /DATABASE_NAME; create = true; user =USER_NAME;passw ord =PASSWORD”.

Wykonaj poniższe czynności, aby użyć klauzuli WHERE i wykonać operacje CURD na tabeli w Apache Derby

Krok 1: Zarejestruj sterownik

Aby komunikować się z bazą danych, należy przede wszystkim zarejestrować sterownik. PlikforName() metoda zajęć Classakceptuje wartość String reprezentującą nazwę klasy, ładuje ją do pamięci, która automatycznie ją rejestruje. Zarejestruj sterownik za pomocą tej metody

Krok 2: Uzyskaj połączenie

Ogólnie rzecz biorąc, pierwszym krokiem, jaki robimy, aby komunikować się z bazą danych, jest połączenie się z nią. PlikConnectionklasa reprezentuje fizyczne połączenie z serwerem bazy danych. Możesz utworzyć obiekt połączenia, wywołującgetConnection() metoda DriverManagerklasa. Utwórz połączenie za pomocą tej metody.

Krok 3: Utwórz obiekt instrukcji

Musisz utworzyć plik Statement lub PreparedStatement lub, CallableStatementobiekty do wysyłania instrukcji SQL do bazy danych. Możesz je utworzyć za pomocą metodcreateStatement(), prepareStatement() and, prepareCall()odpowiednio. Utwórz jeden z tych obiektów przy użyciu odpowiedniej metody.

Krok 4: Wykonaj zapytanie

Po utworzeniu instrukcji musisz ją wykonać. PlikStatement zapewnia różne metody wykonywania zapytania, takie jak execute()do wykonania instrukcji, która zwraca więcej niż jeden zestaw wyników. PlikexecuteUpdate()metoda wykonuje zapytania, takie jak INSERT, UPDATE, DELETE. PlikexecuteQuery()wyniki metody, która zwraca dane. Użyj jednej z tych metod i wykonaj instrukcję utworzoną wcześniej.

Przykład

Poniższy przykład JDBC pokazuje, jak używać klauzuli WHERE i wykonywać operacje CURD na tabeli w Apache Derby za pomocą programu JDBC. Tutaj łączymy się z bazą danych o nazwie sampleDB (utworzymy, jeśli nie istnieje) za pomocą wbudowanego sterownika.

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(" ");
      }
   }
}

Wynik

Wykonując powyższy program, otrzymasz następujące dane wyjściowe -

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