Сортировка результата выборки
Без ORDER BY SQLite не обещает стабильный
порядок строк. Явная сортировка задаёт колонку и
направление ASC или DESC.
Список имён можно вывести по алфавиту возрастания:
import java.sql.DriverManager
fun main() {
DriverManager.getConnection("jdbc:sqlite:sorted.db")
.use { connection ->
connection.createStatement().use { statement ->
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')"
)
val result = statement.executeQuery(
"SELECT name FROM cities ORDER BY name ASC"
)
while (result.next()) {
println(result.getString("name"))
}
}
}
}
Числовые поля сортируют отдельно. DESC
ставит большие значения первыми:
import java.sql.DriverManager
fun main() {
DriverManager.getConnection("jdbc:sqlite:sorted.db")
.use { connection ->
connection.createStatement().use { statement ->
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)"
)
val result = statement.executeQuery(
"SELECT points FROM scores ORDER BY points DESC"
)
while (result.next()) {
println(result.getInt("points"))
}
}
}
}
Создайте таблицу bins в store.db
с полем label, добавьте три метки и
выведите их по алфавиту.
Добавьте поле weight, запишите три веса
и выведите значения от большего к меньшему.