android資料庫建表
⑴ android bmob資料庫好友表怎麼建
public class DBOpenHelper extends sqliteOpenHelper {
private static final String DATABASENAME = "test.db"; //資料庫名稱
private static final int DATABASEVERSION = 1;//資料庫版本,大於0
public DBOpenHelper(Context context) {
super(context, DATABASENAME, null, DATABASEVERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE person (personid integer primary key autoincrement, name varchar(20), amount integer)");//創建表 person
db.execSQL("CREATE TABLE peson2(personid integer primary key autoincrement, name varchar(20), amount integer)");//創建表 person2
}
}
這個是Android默認的資料庫操作類,可以可以獲得資料庫操作對象,第一次使用時會調用onCreate方法,創建表格。第二次進行將不會被重復調用。
⑵ android 資料庫建好後,怎麼建表
SQLite 創建表
下面是教程來自於android學習手冊,android學習手冊包含9個章節,108個例子,源碼文檔隨便看,例子都是可交互,可運行,源碼採用android studio目錄結構,高亮顯示代碼,文檔都採用文檔結構圖顯示,可以快速定位。360手機助手中下載,圖標上有貝殼
SQLite 的 CREATE TABLE 語句用於在任何給定的資料庫創建一個新表。創建基本表,涉及到命名表、定義列及每一列的數據類型。
語法
CREATE TABLE 語句的基本語法如下:
CREATE TABLE database_name.table_name(
column1 datatype PRIMARY KEY(one or more columns),
column2 datatype,
column3 datatype,
.....
columnN datatype,
);
CREATE TABLE 是告訴資料庫系統創建一個新表的關鍵字。CREATE TABLE 語句後跟著表的唯一的名稱或標識。您也可以選擇指定帶有table_name 的 database_name。
實例
下面是一個實例,它創建了一個 COMPANY 表,ID 作為主鍵,NOT NULL 的約束表示在表中創建紀錄時這些欄位不能為 NULL:
sqlite> CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
讓我們再創建一個表,我們將在隨後章節的練習中使用:
sqlite> CREATE TABLE DEPARTMENT(
ID INT PRIMARY KEY NOT NULL,
DEPT CHAR(50) NOT NULL,
EMP_ID INT NOT NULL
);
您可以使用 SQLIte 命令中的 .tables 命令來驗證表是否已成功創建,該命令用於列出附加資料庫中的所有表。
sqlite>.tables
COMPANY DEPARTMENT
在這里,可以看到我們剛創建的兩張表 COMPANY、 DEPARTMENT。
您可以使用 SQLite .schema 命令得到表的完整信息,如下所示:
sqlite>.schema COMPANY
CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
⑶ android資料庫建表不成功 database里的資料庫里沒有我建的表 求解決呀
你創建第一個gettogetherword對象時,會建一個表,再創建第二個的時候不管你的表刪沒刪都不會再創建了,除非你刪除資料庫,那樣才會建新表。可能是你刪了表吧,第一次應該會建的。
你先刪除資料庫,然後debug跟蹤一下看看有沒有執行建表語句。
我有一個疑問就是你在哪裡看到的資料庫,是一個名字為note的文件嗎?我這里有表在裡面啊,如果看到資料庫應該是有表的,如果建表語句有問題會報錯的。我覺得你應該沒有打開資料庫,你在創建gettogetherword對象語句後緊跟一句SQLiteDatabase myDB=DBHelper.getWritableDatabase();試試。
⑷ android 怎麼往資料庫裡面添加數據
一、引入
資料庫創建的問題解決了,接下來就該使用資料庫實現應用程序功能的時候了。基
本的操作包括創建、讀取、更新、刪除,即我們通常說的 CRUD(Create, Read, Update, Delete)。
在實現這些操作的時候,我們會使用到兩個比較重要的類 SQLiteDatabase 類和 Cursor 類。
二、創建表
1,execSQL(String sql):執行一條 sql 語句,且執行操作不能為 SELECT
因為它的返回值為 void,所以推薦使用 insert、update 方法等
2.,execSQL (String sql,Object[] bindArgs)
sql:執行一條 sql 語句
bindArgs:為 sql 語句中的?賦值
三、添加數據
1、execSQL(String sql)
2、使用對象的 insert 方法
ContentValues values = new ContentValues();
values.put(USERNAME, user.getUsername());
values.put(PASSWORD, user.getPassword());
db.insert(TABLE_NAME, null, values);
參數:
table:資料庫中的表名
nullColumnHack:指定默認插入欄位,為 null 時能插入數據
values:表示插入欄位所對應的值,使用 put 方法。
四、刪除數據
1、execSQL(String sql)
2、使用對象的 delete 方法
String whereClaues="_id=?";
String [] whereArgs={String.valueOf(id)};
//db.delete(TABLE_NAME, "_id="+id, null);
db.delete(TABLE_NAME, whereClaues, whereArgs);
參數
table:資料庫的表名
whereClause:where 子句,比如:_id=?
whereArgs:where 子句中?的值
五、修改數據
1、execSQL(String sql)
2、使用對象的 delete 方法
ContentValues values = new ContentValues();
values.put(USERNAME, user.getUsername());
values.put(PASSWORD, user.getPassword());
String whereClaues="_id=?";
String [] whereArgs={String.valueOf(user.getId())};
db.update(TABLE_NAME, values, whereClaues, whereArgs);
參數
table:資料庫的表名
values:代表要修改的值,修改方法還是 put(key,values)
whereClause:條件子句,比如 id=?,name=?
whereArgs:為 whereClause 中的?賦值,比如:new String[]{"1","張三"}
圖:
參考代碼:
程序內使用SQLite資料庫是通過SQLiteOpenHelper進行操作
1.自己寫個類繼承SQLiteOpenHelper,重寫以下3個方法
publicvoidonCreate(SQLiteDatabasedb)
{//創建資料庫時的操作,如建表}
publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion)
{
//版本更新的操作
}
2.通過SQLiteOpenHelper的getWritableDatabase()獲得一個SQLiteDatabase資料庫,以後的操作都是對SQLiteDatabase進行操作。
3.對得到的SQLiteDatabase對象進行增,改,刪,查等操作。
代碼
packagecx.myNote;
importandroid.content.ContentValues;
importandroid.content.Context;
importandroid.content.Intent;
importandroid.database.Cursor;
importandroid.database.sqlite.SQLiteDatabase;
importandroid.database.sqlite.SQLiteOpenHelper;
//DBOptionsforlogin
publicclassDBOptions{
privatestaticfinalStringDB_NAME="notes.db";
privatestaticfinalStringDB_CREATE="createtablelogininf(nametext,pwdtext)";
{
publicDBHelper(Contextcontext){
super(context,DB_NAME,null,1);
}
@Override
publicvoidonCreate(SQLiteDatabasedb){
//TODOAuto-generatedmethodstub
//建表
db.execSQL(DB_CREATE);
}
@Override
publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){
//TODOAuto-generatedmethodstub
db.execSQL("droptableifexistslogininf");
onCreate(db);
}
}
privateContextcontext;
privateSQLiteDatabasedb;
privateDBHelperdbHelper;
publicDBOptions(Contextcontext)
{
this.context=context;
dbHelper=newDBHelper(context);
db=dbHelper.getReadableDatabase();
}
//自己寫的方法,對資料庫進行操作
publicStringgetName()
{
Cursorcursor=db.rawQuery("selectnamefromlogininf",null);
cursor.moveToFirst();
returncursor.getString(0);
}
publicintchangePWD(StringoldP,Stringpwd)
{
ContentValuesvalues=newContentValues();
values.put("pwd",pwd);
returndb.update("logininf",values,"pwd="+oldP,null);
}
}
insert方法插入的一行記錄使用ContentValus存放,ContentValues類似於Map,它提供了put(String key, Xxx value)(其中key為數據列的列名)方法用於存入數據、getAsXxxx(String key)方法用於取出數據
⑸ 如何在android自帶的sqlite3中創建一個資料庫文件,請大蝦門詳細指導
Android中提供4種數據存儲的方法:(1)SharedPreferences,用鍵值對的方式來存儲數據,是一種輕量級的存儲機制,可以存儲一些屬性等。(2)Files:文件輸入輸出流的方式存儲數據,FileInputStream和FileOutputStream。在Android中,文件是一個應用程序私有的,一個應用程序無法讀寫其他應用程序的文件。寫入SD卡除外。(3)SQLite(4)網路(這個不算吧~~~--!)。
SQLite:
(1)創建和打開資料庫可以使用方法openOrCreateDatabase,它會自動去檢測是否存在資料庫,如果存在則打開,如果不存在則創建一個資料庫;成功返回一個SQliteDatabase對象。(2)創建一張表通過SQL語句實現,調用sqliteDatabase對象的execSQL方法,執行創建表的SQL語句。
(3)向數據表中添加一條記錄可以直接通過SQL語句實現,也可以使用ContentValue對象,ContentValue對象是一個Map,Key是欄位名,Value是值。Cv.put(key,value);然後調用sqliteDatabase對象的
insert(tableName,null,cv)方法插入數據。
(4)刪除數據可以直接執行SQL,也可以執行sqliteDatabase的delete方法。
(5)同理修改數據也是執行SQL或調用update方法,需要傳入ContenValue的對象表示修改的內容。
(6)關閉資料庫sqliteDatabase.close();
(7)刪除指定表調用SQL語句即可。
(8)查詢:在Android中查詢數據是通過Cursor類來實現的,當我們使用SQLiteDatabase.query()方法時,會得到一個Cursor對象,Cursor對象指向的是每條數據。例如cur.moveToFirst();cur.moveToNext();等。在實際開發中,為了能夠更好地管理和維護資料庫,我們會封裝一個繼承自SQLiteOpenHelper類的資料庫操作類。SQLiteOpenHelper的構造方法中分別需要傳入Context、資料庫名稱、CursorFactory(一般默認null)、資料庫版本號。在SQLiteOpenHelper中首先執行的是onCreate方法(當資料庫第一次被創建時)。在構造函數中並沒有真正創建資料庫,而是調用getWriteableDatabase或者getReadableDatabase方法時才真正去創建資料庫,並且返回一個SQLiteDatabase對象。
⑹ Android中在資料庫建表總是提示失敗是怎麼回事
android資料庫,只在第一次調用getWritableDatabase();或者getReadableDatabase();時候才會創建資料庫,
@Override
public
void
onCreate(SQLiteDatabase
db)
{}
方法,如果創建報錯的話,請檢查sql語句是否正解,或者用sqltie編輯器在電腦上執行看看是否語法問題
⑺ androidstudio 怎麼創建sqlite數據表
1.使用intelij idea創建一個andorid項目
2.創建如下工具類:
MyDBHelper.java
package com.amos.android_database;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
/**
* Created by amosli on 14-6-10.
*/
public class MyDBHelper extends SQLiteOpenHelper{
/**
* 創建資料庫的構造方法
* @param context 應用程序上下文
* name 資料庫的名字
* factory 查詢資料庫的游標工廠一般情況下用sdk默認的
* version 資料庫的版本一般大於0
*/
public MyDBHelper(Context context) {
super(context, "test.db", null, 4);
}
private String tag = "MyDBHelper.class";
/**
* 在資料庫第一次創建時會執行
* @param db
*/
@Override
public void onCreate(SQLiteDatabase db) {
Log.d(tag,"onCreate.....");
//創建一個資料庫
db.execSQL("create table person (personid integer primary key autoincrement ,name varchar(30) )");
}
/**
* 更新數據的時候調用的方法
* @param db
* @param oldVersion
* @param newVersion
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.d(tag,"onUpgrade*******");
//增加一列
db.execSQL("alter table person add phone varchar(13) null");
}
}
MyActivity.java
package com.amos.android_database;
import android.app.Activity;
import android.os.Bundle;
public class MyActivity extends Activity {
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MyDBHelper myDBHelper = new MyDBHelper(this);
myDBHelper.getReadableDatabase();
myDBHelper.close();
}
}
3.打開生成的test.db
1).下載安裝SQLiteStudio(SQLite的可視化工具)
下載地址:http://www.sqlitestudio.pl/
安裝:
chmod 777 sqlitestudio-2.1.5.bin
./sqlitestudio-2.1.5.bin
執行上面的linux命令,第一句是賦許可權,第二句是打開工具
2)從avd中導出test.db
打開DDMS,從data/data/com.amos.andriod_database/databases下導出test.db
3).用sqlitestudio打開test.db
添加資料庫
選擇test.db
執行onCreate方法時創建的person表
執行onUpgrade方法更新語句的時候
⑻ android中的資料庫怎麼去寫如何建表,希望有具體代碼參考啊!
android 中的資料庫操作 android 中的應用開發很難避免不去使用資料庫, 聊聊 android 中的數據 庫操作,我發給你 word 貼不下
一、android 內的資料庫的基礎知識介紹
1.用了什麼資料庫
android 中採用的資料庫是 SQLite 這個輕量級的嵌入式開源資料庫,它是用 c 語言構建的。相關簡介可以從鏈接查看。
2.資料庫基本知識觀花
對於一些和我一樣還沒有真正系統學習資料庫技術的同學來說,把 SQL92 標 准中的一些基本概念、基本語句快速的了解一下,是很有必要的,這樣待會用 Android 的 database 相關方法去執行一些資料庫語句時就不會茫然了。
①資料庫的基本結構——表格
表格是資料庫中儲存資料的基本架構。表格被分為欄位 (column) 及列位 (row)。每 一列代表一筆資料,而每一欄代表一筆資料的一部份。舉例來說,如果我們有一個記載顧客 資料的表格,那欄位就有可能包括姓、名、地址、城市、國家、生日..等等。每一個表格 . 擁有一個獨一無二的名字(Table Name)以便能夠讓用戶定位到它上面。一個典型的表格結 構如下:
Store_Information 表格
store_name Sales Date Los Angeles $1500 Jan-05-1999 San Diego $250 Jan-07-1999 Los Angeles $300 Jan-08-1999 Boston $700 Jan-08-1999 該表格的表格名字為 Store_Information, 一共有三個欄位, 分別為 store_name , Sales , Data , 已經錄入了四筆數據所以有四個列位。
②關於數據類型
和其他的資料庫不同的是,sqlite 是無類型的。也就是當你創建一個表格時,無需對 每一個欄位要存儲的數據的類型進行聲明,當你在給表格增加數據條目時,sqlite 會自動找 到存入的數據的類型。
SQLite 允許忽略數據類型,但是,仍然建議在 Create Table 語句中指定數據類型, 因為數據類型有利於增強程序的可讀性。SQLite 支持常見的數據類型,如 VARCHAR、 NVARCHAR、TEXT、INTEGER、FLOAT、BOOLEAN、CLOB、BLOB、TIMESTAMP、 NUMERIC、VARYING、CHARACTER、NATl0NAI, VARYINGCHARACTER。這些數據類 型都是 SQL92 標准中規定的標准資料庫數據類型,想要有更近一步了解,請參看下錶。
SQL 資料庫數據類型詳解 數據類型 類型 描 述 bit 整型 bit 數據類型是整型,其值只能是 0、1 或空值。這種數據類型用於存儲只有兩 種可能值的數據,如 Yes 或 No、True 或 Fa lse 、On 或 Off int 整型 int 數據類型可以存儲從- 231(-2147483648)到 231 (2147483 647)之間的整數。存 儲到資料庫的幾乎所有數值型的數據都可以用這種數據類型。 這種數據類型在資料庫里佔用 4 個位元組 smallint 整型 smallint 數據類型可以存儲從- 215(-32768)到 215(32767)之間的整數。這種 數據類型對存儲一些常限定在特定范圍內的數值型數據非常有用。 這種數據類型在資料庫里 佔用 2 位元組空間 tinyint 整型 tinyint 數據類型能存儲從 0 到 255 之間的整數。 它在你只打算存儲有限數目 的數值時很有用。 這種數據類型在資料庫中佔用 1 個位元組 numeric 精確數值型 numeric 數據類型與 decimal 型相同 decimal 精確數值型 decimal 數據類型能用來存儲從-1038-1 到 1038-1 的固定精度和范圍 的數值型數據。使用這種數據類型時,必須指定范圍和精度。 范圍是小數點左右所能存儲
⑼ Android編程中如何在一個SQLite資料庫創建兩個表
完全可以的.
SQLiteDatabase.insert(String
table, String
nullColumnHack, ContentValues
values)
db的插入,查詢,刪除函數的第一個參數就是table_name,就可以對指定的表進行操作