SQLite數據庫相關的操作
Android中的數據庫存儲中包含SQLite。 SQLite是一個輕量級的數據庫,支持基本SQL語法,是常被採用的一種數據存儲方式。
Android爲此數據庫提供了一個名爲SQLiteDatabase的類,封裝了一些操作數據庫的API。
在Android應用中創建數據庫後數據庫文件是存儲在/data/ data/應用包名/databases/下。該文件可以連接android設備後用命令進入查看。
在電腦運行中它存儲在: .android/avd/avd.avd/userdata.img文件裏, 並在運行時移到內存。
關注如下三個類:
1.SQLiteOpenHelper:這是一個抽象類,需要重寫實例類。
2.SQLiteDatabase
3.Cursor
二.
package com.example.test_sqlite;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
/**
* 首先必須繼承自:SQLiteOpenHelper,實現其onCreate,onUpgrade方法
*
* @author wen
*/
public class DbHelper extends SQLiteOpenHelper {
/**
* 創建相關的數據庫
*
* @param context
* :上下文菜單
* @param name
* :要創建的數據庫的名字
* @param factory
* :一般爲:null
* @param version
* :數據庫的版本號(>0)
*/
public DbHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
/**
* 在 onCreate的方法裏面進行建表操作,使用db.execSQL()方法; 此處創建一個表名爲Info的表,字段爲id與name
*/
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("create table Info( _id integer primary key autoincrement,id integer(5),name
varcha(10))");
}
/**
* 數據庫的升級操作;當newVersion大於oldVersion時進行數據庫的升級操作
*
* if(newVersion>oldVersion){
*
* String sql="drop table if exists table<表名>";//刪除掉之前的數據庫
*
* db.execSQL(sql);
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
|
<增>向數據庫添加相關的數據
insert
|
|
||||||||||||||||||||
<刪>刪除數據庫中的相關的數據 delete |
|
||||||||||||||||||||
<改>修改數據庫中相關的數據 |
|
||||||||||||||||||||
<查>依據相關的條件進行查詢操作 |
|
SQL :http://www.w3school.com.cn/sql/sql_delete.asp
SQL 語法數據庫表一個數據庫通常包含一個或多個表。每個表由一個名字標識(例如“客戶”或者“訂單”)。表包含帶有數據的記錄(行)。 下面的例子是一個名爲 "Persons" 的表:
上面的表包含三條記錄(每一條對應一個人)和五個列(Id、姓、名、地址和城市)。 SQL 語句您需要在數據庫上執行的大部分工作都由 SQL 語句完成。 下面的語句從表中選取 LastName 列的數據: SELECT LastName FROM Persons 結果集類似這樣:
在本教程中,我們將爲您講解各種不同的 SQL 語句。 重要事項一定要記住,SQL 對大小寫不敏感! SQL 語句後面的分號?某些數據庫系統要求在每條 SQL 命令的末端使用分號。在我們的教程中不使用分號。 分號是在數據庫系統中分隔每條 SQL 語句的標準方法,這樣就可以在對服務器的相同請求中執行一條以上的語句。 如果您使用的是 MS Access 和 SQL Server 2000,則不必在每條 SQL 語句之後使用分號,不過某些數據庫軟件要求必須使用分號。 SQL DML 和 DDL可以把 SQL 分爲兩個部分:數據操作語言 (DML) 和 數據定義語言 (DDL)。SQL (結構化查詢語言)是用於執行查詢的語法。但是 SQL 語言也包含用於更新、插入和刪除記錄的語法。 查詢和更新指令構成了 SQL 的 DML 部分:
SQL 的數據定義語言 (DDL) 部分使我們有能力創建或刪除表格。我們也可以定義索引(鍵),規定表之間的鏈接,以及施加表間的約束。 SQL 中最重要的 DDL 語句:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SQL SELECT 語句本章講解 SELECT 和 SELECT * 語句。 SQL SELECT 語句SELECT 語句用於從表中選取數據。 結果被存儲在一個結果表中(稱爲結果集)。 SQL SELECT 語法SELECT 列名稱 FROM 表名稱 以及: SELECT * FROM 表名稱 註釋:SQL 語句對大小寫不敏感。SELECT 等效於 select。 SQL SELECT 實例如需獲取名爲 "LastName" 和 "FirstName" 的列的內容(從名爲 "Persons" 的數據庫表),請使用類似這樣的 SELECT 語句: SELECT LastName,FirstName FROM Persons "Persons" 表:
結果:
SQL SELECT * 實例現在我們希望從 "Persons" 表中選取所有的列。 請使用符號 * 取代列的名稱,就像這樣: SELECT
提示:星號(*)是選取所有列的快捷方式。 結果:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SQL SELECT DISTINCT 語句本章講解 SELECT DISTINCT 語句。 SQL SELECT DISTINCT 語句在表中,可能會包含重複值。這並不成問題,不過,有時您也許希望僅僅列出不同(distinct)的值。 關鍵詞 DISTINCT 用於返回唯一不同的值。 語法:SELECT DISTINCT 列名稱 FROM 表名稱 使用 DISTINCT 關鍵詞如果要從 "Company" 列中選取所有的值,我們需要使用 SELECT 語句: SELECT Company FROM Orders "Orders"表:
結果:
請注意,在結果集中,W3School 被列出了兩次。 如需從 Company" 列中僅選取唯一不同的值,我們需要使用 SELECT DISTINCT 語句: SELECT
結果:
現在,在結果集中,"W3School" 僅被列出了一次。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SQL WHERE 子句WHERE 子句用於規定選擇的標準。 WHERE 子句如需有條件地從表中選取數據,可將 WHERE 子句添加到 SELECT 語句。 語法SELECT 列名稱 FROM 表名稱 WHERE 列 運算符 值 下面的運算符可在 WHERE 子句中使用:
註釋:在某些版本的 SQL 中,操作符 <> 可以寫爲 !=。 使用 WHERE 子句如果只希望選取居住在城市 "Beijing" 中的人,我們需要向 SELECT 語句添加 WHERE 子句: SELECT * FROM Persons
"Persons" 表
結果:
引號的使用請注意,我們在例子中的條件值周圍使用的是單引號。 SQL 使用單引號來環繞文本值(大部分數據庫系統也接受雙引號)。如果是數值,請不要使用引號。 文本值:這是正確的: SELECT * FROM Persons WHERE 數值:這是正確的: SELECT * FROM Persons WHERE |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SQL AND & OR 運算符AND 和 OR 運算符用於基於一個以上的條件對記錄進行過濾。 AND 和 OR 運算符AND 和 OR 可在 WHERE 子語句中把兩個或多個條件結合起來。 如果第一個條件和第二個條件都成立,則 AND 運算符顯示一條記錄。 如果第一個條件和第二個條件中只要有一個成立,則 OR 運算符顯示一條記錄。 原始的表 (用在例子中的):
AND 運算符實例使用 AND 來顯示所有姓爲 "Carter" 並且名爲 "Thomas" 的人: SELECT * FROM Persons WHERE FirstName='Thomas'
結果:
OR 運算符實例使用 OR 來顯示所有姓爲 "Carter" 或者名爲 "Thomas" 的人: SELECT * FROM Persons WHERE firstname='Thomas'
結果:
結合 AND 和 OR 運算符我們也可以把 AND 和 OR 結合起來(使用圓括號來組成複雜的表達式): SELECT * FROM Persons WHERE 結果:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SQL ORDER BY 子句ORDER BY 語句用於對結果集進行排序。 ORDER BY 語句ORDER BY 語句用於根據指定的列對結果集進行排序。 ORDER BY 語句默認按照升序對記錄進行排序。 如果您希望按照降序對記錄進行排序,可以使用 DESC 關鍵字。 原始的表 (用在例子中的):Orders 表:
實例 1以字母順序顯示公司名稱: SELECT Company, OrderNumber FROM Orders
結果:
實例 2以字母順序顯示公司名稱(Company),並以數字順序顯示順序號(OrderNumber): SELECT Company, OrderNumber FROM Orders
結果:
實例 3以逆字母順序顯示公司名稱: SELECT Company, OrderNumber FROM Orders
結果:
實例 4以逆字母順序顯示公司名稱,並以數字順序顯示順序號: SELECT Company, OrderNumber FROM Orders
結果:
注意:在以上的結果中有兩個相等的公司名稱 (W3School)。只有這一次,在第一列中有相同的值時,第二列是以升序排列的。如果第一列中有些值爲 nulls 時,情況也是這樣的。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SQL INSERT INTO 語句INSERT INTO 語句INSERT INTO 語句用於向表格中插入新的行。 語法INSERT INTO 表名稱 VALUES (值1, 值2,....) 我們也可以指定所要插入數據的列: INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) 插入新的行"Persons" 表:
SQL 語句:INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing') 結果:
在指定的列中插入數據"Persons" 表:
SQL 語句:INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees') 結果:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SQL UPDATE 語句Update 語句Update 語句用於修改表中的數據。 語法:UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值 Person:
更新某一行中的一個列我們爲 lastname 是 "Wilson" 的人添加 firstname: UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson' 結果:
更新某一行中的若干列我們會修改地址(address),並添加城市名稱(city): UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson' 結果:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SQL DELETE 語句DELETE 語句DELETE 語句用於刪除表中的行。 語法DELETE FROM 表名稱 WHERE 列名稱 = 值 Person:
刪除某行"Fred Wilson" 會被刪除: DELETE FROM Person WHERE LastName = 'Wilson' 結果:
刪除所有行可以在不刪除表的情況下刪除所有的行。這意味着表的結構、屬性和索引都是完整的: DELETE FROM table_name 或者: DELETE * FROM table_name |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|