Apache Derby - Maddeye Göre Gruplama
GROUP BY yan tümcesi, SELECT deyimleriyle kullanılır. Aynı veriler olması durumunda alt kümeler oluşturmak için kullanılır. Genellikle, bu cümlenin ardından ORDER BY cümleciği gelir ve WHERE cümlesinden sonra yerleştirilir.
Sözdizimi
GROUP BY cümlesinin sözdizimi aşağıdadır -
ij>SELECT column1, column2, . . . table_name GROUP BY column1, column2, . . .;
Misal
Veritabanında aşağıdaki kayıtlara sahip Çalışanlar adlı bir tablomuz olduğunu varsayalım -
ID |NAME |SALARY |LOCATION
------------------------------------------------------------------
1 |Amit |30000 |Hyderabad
2 |Rahul |39000 |Lucknow
3 |Renuka |50000 |Hyderabad
4 |Archana |15000 |Vishakhapatnam
5 |Kalyan |40000 |Hyderabad
6 |Trupthi |45000 |Vishakhapatnam
7 |Raghav |12000 |Lucknow
8 |Suchatra |33000 |Vishakhapatnam
9 |Rizwan |20000 |Lucknow
Aşağıdaki GROUP BY yan tümcesine sahip SELECT deyimi, tabloyu konuma göre gruplandırır. Bir lokasyonda çalışanlara verilen toplam maaş miktarını gösterir.
ij> SELECT Location, SUM(Salary) from Employees GROUP BY Location;
Bu, aşağıdaki çıktıyı üretecektir -
LOCATION |2
-------------------------------------------------------
Hyderabad |120000
Lucknow |71000
Vishakhapatnam |93000
3 rows selected
Aynı şekilde aşağıdaki sorgu, bir lokasyonda çalışanlara maaş olarak harcanan ortalama tutarı bulur.
ij> SELECT Location, AVG(Salary) from Employees GROUP BY Location;
Bu, aşağıdaki çıktıyı üretecektir -
LOCATION |2
-----------------------------------------------------
Hyderabad |40000
Lucknow |23666
Vishakhapatnam |31000
3 rows selected
Group By yan tümcesi JDBC örneği
Bu bölüm, JDBC uygulamasını kullanarak Apache Derby veritabanındaki bir tabloda Group By yan tümcesini nasıl kullanacağınızı ve CURD işlemlerini nasıl gerçekleştireceğinizi öğretir.
Ağ istemcisini kullanarak Derby ağ sunucusunu talep etmek istiyorsanız, sunucunun çalışır durumda olduğundan emin olun. Ağ istemci sürücüsünün sınıf adı org.apache.derby.jdbc.ClientDriver ve URL jdbc: derby: // localhost: 1527 / şeklindedir.DATABASE_NAME;create = true; user =USER_NAME;passw ord =PASSWORD"
Group By yan tümcesini kullanmak ve Apache Derby'de bir tablo üzerinde CURD işlemleri gerçekleştirmek için aşağıdaki adımları izleyin.
Adım 1: Sürücüyü kaydedin
Veritabanıyla iletişim kurmak için öncelikle sürücüyü kaydetmeniz gerekir. forName() sınıfın yöntemi Classbir sınıf adını temsil eden bir String değerini kabul eder, onu otomatik olarak kaydeden belleğe yükler. Bu yöntemi kullanarak sürücüyü kaydedin.
2. Adım: Bağlantıyı alın
Genel olarak, veri tabanıyla iletişim kurmak için yaptığımız ilk adım, onunla bağlantı kurmaktır. Connectionclass, bir veritabanı sunucusuyla fiziksel bağlantıyı temsil eder. Çağırarak bir bağlantı nesnesi oluşturabilirsiniz.getConnection() yöntemi DriverManagersınıf. Bu yöntemi kullanarak bir bağlantı oluşturun.
Adım 3: Bir ifade nesnesi oluşturun
Bir yaratmanız gerekiyor Statement veya PreparedStatement veya, CallableStatementveritabanına SQL ifadeleri göndermek için nesneler. Yöntemleri kullanarak bunları oluşturabilirsinizcreateStatement(), prepareStatement() and, prepareCall()sırasıyla. Uygun yöntemi kullanarak bu nesnelerden birini oluşturun.
4. Adım: Sorguyu yürütün
Bir ifade oluşturduktan sonra, onu yürütmeniz gerekir. Statement sınıfı, bir sorguyu yürütmek için çeşitli yöntemler sağlar. execute()Birden fazla sonuç kümesi döndüren bir ifadeyi yürütme yöntemi. executeUpdate()yöntemi INSERT, UPDATE, DELETE gibi sorguları yürütmek için kullanılır. executeQuery()yöntem veri döndürür. Bu yöntemlerden birini kullanın ve önceden oluşturulan ifadeyi çalıştırın.
Misal
Aşağıdaki JDBC örneği nasıl kullanılacağını gösterir Group ByJDBC programını kullanarak Apache Derby'de bir tablo üzerinde CURD işlemlerini cümle tümcesi ve gerçekleştirir. Burada, gömülü sürücüyü kullanarak sampleDB (yoksa yaratacaktır) adlı bir veritabanına bağlanıyoruz.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
public class GroupByClauseExample {
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
stmt.execute("CREATE TABLE EmployeesData( "
+ "Id INT NOT NULL GENERATED ALWAYS AS IDENTITY, "
+ "Name VARCHAR(255), "
+ "Salary INT NOT NULL, "
+ "Location VARCHAR(255), "
+ "PRIMARY KEY (Id))");
stmt.execute("INSERT INTO EmployeesData(Name, Salary, Location) "
+ "VALUES ('Amit', 30000, 'Hyderabad'), "
+ "('Rahul', 39000, 'Lucknow'), "
+ "('Renuka', 50000, 'Hyderabad'), "
+ "('Archana', 15000, 'Vishakhapatnam'), "
+ "('Kalyan', 40000, 'Hyderabad'), "
+ "('Trupthi', 45000, 'Vishakhapatnam'), "
+ "('Raghav', 12000, 'Lucknow'), "
+ "('Suchatra', 33000, 'Vishakhapatnam'), "
+ "('Rizwan', 20000, 'Lucknow')");
//Executing the query
String query = "SELECT Location, SUM(Salary) from EmployeesData GROUP BY Location";
ResultSet rs = stmt.executeQuery(query);
while(rs.next()) {
System.out.println("Location: "+rs.getString(1));
System.out.println("Sum of salary: "+rs.getString(2));
System.out.println(" ");
}
}
}
Çıktı
Yukarıdaki programı çalıştırırken aşağıdaki çıktıyı alacaksınız -
Location: Hyderabad
Sum of salary: 120000
Location: Lucknow
Sum of salary: 71000
Location: Vishakhapatnam
Sum of salary: 93000