sqlite判斷資料庫是否存在
Ⅰ 如何判斷sqllite庫中的表是否存在
SQLite判斷表是否存在
今天剛好用到sqlite來存放一些數據,但是需要檢測表是否已經存在;
其實很簡單,只要查看sqlite_master表中是否存在這條數據就可以知道了
SELECT count(*) FROM sqlite_master WHERE type='table' AND name='tableName';
轉自甲殼蟲。
Ⅱ sqlite 查詢資料庫是否有數據
正常連接SQLite資料庫後,獲取下資料庫的記錄,如果返回數量為0,就是沒有數據的。
Ⅲ Android sqlite中判斷某個表是不是存在方法
sqlite 中判斷某個表是否存在的方法
/**
* 判斷某張表是否存在
* @param tabName 表名
* @return
*/
public boolean tabbleIsExist(String tableName){
boolean result = false;
if(tableName == null){
return false;
}
SQLiteDatabase db = null;
Cursor cursor = null;
try {
db = this.getReadableDatabase();
String sql = "select count(*) as c from Sqlite_master where type ='table' and name ='"+tableName.trim()+"' ";
cursor = db.rawQuery(sql, null);
if(cursor.moveToNext()){
int count = cursor.getInt(0);
if(count>0){
result = true;
}
}
} catch (Exception e) {
// TODO: handle exception
}
return result;
}
Ⅳ C#Sqlite 創建資料庫時怎麼判斷當前創建的資料庫是否存在
select sql from sqlite_master where tbl_name='your_table' and
type='table';
這樣到查詢會得到your_table表到創建sql語句,你可以根據這個結果來判斷是否存在此欄位。
Ⅳ sqlite中判斷某個表是否存在方法
sqlite 中判斷某個表是否存在的方法,貼出來供大家參考/*** 判斷某張表是否存在*@paramtabName 表名*@return*/publicbooleantabbleIsExist(String tableName){booleanresult =false;if(tableName ==null){returnfalse;}SQLiteDatabase db =null;Cursor cursor =null;try{db =this .getReadableDatabase(); //這里表名可以是 String sql = "select count(*) as c from "+AppConstant.DataBaseName+" where type ='table' and name ='"+tableName.trim()+"' ";
Ⅵ sqlite怎麼判斷表裡面是否有數據。not exists
select count(*) from 表名
把得到的結果放變數里
如果結果=0,則無記錄,大於0就是有記錄唄
Ⅶ 請問SQLite如何檢查一條數據是否已經存在
//android里
//資料庫類里
//查詢方法:
public Cursor select(){
SQLiteDatabase db = getReadableDatabase();
return db.query(
TBName,
new String[]{"username","password"},
null,
null, null, null, "_id desc");
Cursor cursor = 類名.select();
//判斷語句:
if (cursor.moveToFirst() == false) {
//為空的Cursor
return;
}
//基本上就是這個思路
Ⅷ sqlite如何判斷表中是否有數據
//讀取數據
Cursor c = db.rawQuery("SELECT* FROM person WHERE age >= ?", new String[]{"33"});
int i = 0;
while (c.moveToNext()) {
i++;
}
c.close();
這個i的值就是記錄的條數,是0的話就什麼也沒有查到
Ⅸ 怎麼判斷sqlite3中某個表是否已經存在
可以查詢sqlite_master表。該表是用來保存當前資料庫中創建的所有表,索引,觸發器。該表含有5個欄位,分別是type,name,tbl_name,rootpage,sql.意義分別如下:
type:類型,可以為table,index,trigger
name:名稱,為對應表,索引,觸發器名稱
tbl_name:未索引,觸發器對應表名
rootpage:為對應表,索引在資料庫中存儲的根頁號
sql:創建的sql語句
至此,我們可以使用如下語句進行查詢:
select*fromsqlite_masterwherename='你的表名';
如果有,就會返回數據,否則不返回。
另外也可以用下面方法
pragmatable_info('你的表名');
用來查詢你的表結構,如果有,就會返回你的表結構,如果沒有該表,則不返回值。
還可以使用如下方法:
select*from你的表名where1=0;
如果有該表,你執行的sql語句不會報錯,如果沒有,則你執行的sql語句會報錯,這樣也能判斷。
Ⅹ sqlite查看所有表名及欄位名,及判斷是否存
1.查詢與判斷表
查詢sqlite中所有表,可用如下sql語句。原理是,sqlite中有一個內建表sqlite_master,這個表中存儲這所有自建表的表名稱等信息。
select name fromsqlite_master where type='table' order by name;
我們可以通過如下語句查看這個內建表的所有記錄
select * fromsqlite_master;
由此可以進一步引申:判斷指定的表是否存在,可以用如下語句:
selectcount(*) from sqlite_master wheretype='table' and name = 'yourtablename';
其中yourtablename表示你要判斷的表名,如果查詢結果大於0,表示該表存在於資料庫中,否則不存在。
2.查詢與判斷列
通過以下語句可查詢出某個表的所有欄位信息
PRAGMA table_info([tablename])
比如:我想查看錶catalog的所有列信息,可以用下述代碼,結果如圖所示:
PRAGMA table_info(catalog)
3.Sqlite中新增、刪除、重命名列
3.1新增一列
方法:使用sql命令
命令:ALTER TABLE table-nameADD COLUMN column-namecolumn-type
例如:在student表中添加一列名為name,類型為varchar:
alter table student add column name varchar;
alter table catalog add column xxx1 char(20) default '';
3.2刪除一列
方法:由於drop命令在sqlite中不可用於刪除列,
alter table student drop column name // 該行在SQlite中不能用,SQlite不支持drop
可採用如下思路,類似於swap()函數的過程。
比如我有表A,A中有x、y、z三列。我要將表A中的x列刪掉。那麼,
第1步,新建一個表B,B中含有y、z兩個欄位,且類型與A中的y、z類型相同。
第2步,將A中的所有y、z兩列的值拷貝到B中。
上面兩步使用一句命令即可完成
create table B asselect y,z from A
注意,如果A中y的類型為char,則上面create命令會在B中創建類型為TEXT的y列。即char類型會被改變。
第3步,將A表刪除
drop table ifexists A
第4步,將B重命名為A
alter table Brename to A
3.3重命名一列
方法:與刪除一列相同,在sqlite中alter同樣無法重命名一列。如果想重命名,那麼思路與刪除一列相同。
4.Sqlite中新增、刪除、重命名表
Sql語句在3.2中已有。整理如下。
4.1新增表
create table A(id char(20),channeltext,name text,primary key (id))
create table B as select y,z from A
4.2刪除表
drop table if exists A
4.3重命名表
alter table B rename to A