Hàm UPPER() và LOWER()
SQLite cung cấp UPPER() chuyển chữ thường → HOA, LOWER() chuyển HOA → thường. Hữu ích cho tìm kiếm không phân biệt chữ hoa/thường.
DatabaseHelper.java
@Override
public void onCreate(SQLiteDatabase db) {
// Cột salary đổi thành FLOAT để minh họa
db.execSQL("CREATE TABLE " + TABLE_NAME +
"(id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"name TEXT, " +
"salary REAL, " +
"created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP)");
}
public ArrayList<String> getAllContacts() {
ArrayList<String> list = new ArrayList<>();
SQLiteDatabase db = getReadableDatabase();
// Chỉ lấy name viết HOA
Cursor cursor = db.rawQuery(
"SELECT UPPER(name) as upper_name FROM " + TABLE_NAME, null);
if (cursor.moveToFirst()) {
do {
list.add(cursor.getString(0));
} while (cursor.moveToNext());
}
cursor.close();
return list;
}
Tìm kiếm không phân biệt hoa/thường (Case-insensitive)
-- Cách 1: Dùng UPPER/LOWER
SELECT * FROM table WHERE UPPER(name) = UPPER('search_term');
-- Cách 2: COLLATE NOCASE (khuyên dùng, nhanh hơn)
SELECT * FROM table WHERE name = 'search_term' COLLATE NOCASE;
-- Cách 3: Tạo index NOCASE
CREATE INDEX idx_name_nocase ON table(name COLLATE NOCASE);
Kết quả

Nhập "sairam" → hiển thị "SAIRAM" nhờ UPPER().
Các hàm chuỗi hữu ích khác
| Hàm | Ví dụ | Kết quả |
|---|---|---|
| UPPER() | UPPER('abc') | ABC |
| LOWER() | LOWER('ABC') | abc |
| TRIM() | TRIM(' abc ') | abc |
| LTRIM() | LTRIM(' abc') | abc |
| RTRIM() | RTRIM('abc ') | abc |
| SUBSTR() | SUBSTR('abcdef', 2, 3) | bcd |
| LENGTH() | LENGTH('abc') | 3 |
| REPLACE() | REPLACE('abc', 'a', 'x') | xbc |