Сортировка результата выборки
Без ORDER BY SQLite не обещает стабильный
порядок строк. Явная сортировка задаёт колонку и
направление ASC или DESC.
Список имён можно вывести по алфавиту возрастания:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Main {
public static void main(String[] args) throws Exception {
try (Connection connection = DriverManager.getConnection("jdbc:sqlite:sorted.db")) {
try (Statement statement = connection.createStatement()) {
statement.execute("""
CREATE TABLE IF NOT EXISTS cities (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL
)
""");
statement.executeUpdate(
"INSERT INTO cities (name) VALUES ('rome')"
);
statement.executeUpdate(
"INSERT INTO cities (name) VALUES ('oslo')"
);
statement.executeUpdate(
"INSERT INTO cities (name) VALUES ('lima')"
);
ResultSet result = statement.executeQuery("SELECT name FROM cities ORDER BY name ASC");
while (result.next()) {
System.out.println(result.getString("name"));
}
}
}
}
}
}
Числовые поля сортируют отдельно. DESC
ставит большие значения первыми:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Main {
public static void main(String[] args) throws Exception {
try (Connection connection = DriverManager.getConnection("jdbc:sqlite:sorted.db")) {
try (Statement statement = connection.createStatement()) {
statement.execute("""
CREATE TABLE IF NOT EXISTS scores (
id INTEGER PRIMARY KEY,
points INTEGER NOT NULL
)
""");
statement.executeUpdate(
"INSERT INTO scores (points) VALUES (10)"
);
statement.executeUpdate(
"INSERT INTO scores (points) VALUES (30)"
);
statement.executeUpdate(
"INSERT INTO scores (points) VALUES (20)"
);
ResultSet result = statement.executeQuery("SELECT points FROM scores ORDER BY points DESC");
while (result.next()) {
System.out.println(result.getInt("points"));
}
}
}
}
}
}
Создайте таблицу bins в store.db
с полем label, добавьте три метки и
выведите их по алфавиту.
Добавьте поле weight, запишите три веса
и выведите значения от большего к меньшему.