SQLite详解0

1.SQLite简介
SQLite是一个嵌入式数据库引擎,针对内存等资源有限的设备(如手机、PDA、MP3)提供的一种高效的数据库引擎。它有如下特征:轻量级、独立性、隔离性、跨平台、多语言接口、安全性。SQLite数据库没有服务器进程。所有的内容包含在同一个单文件中。该文件是跨平台的,可以自由复制。基于其自身的先天优势,SQLite在嵌入式领域得到广泛应用。

2.SQLite数据类型
一般数据采用的固定的静态数据类型,而SQLite采用的是动态数据类型,会根据存入值自动判断。SQLite具有以下五种数据类型:
NULL: 这个值为空值
INTEGER: 值被标识为整数,依据值的大小可以依次被存储为1,2,3,4,5,6,7,8.
REAL: 所有值都是浮动的数值,被存储为8字节的IEEE浮动标记序号.
TEXT: 值为文本字符串,使用数据库编码存储(TUTF-8, UTF-16BE or UTF-16-LE).
BLOB: 值是BLOB数据块,以输入的数据格式进行存储。如何输入就如何存储,不改 变格式.

3.sqlite命令行工具的使用

打开或创建数据库
$sqlite3 test.db3
这样就能打开或者创建一个新的数据库文件
$sqlite3 test.db3
SQLite version 3.6.23
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>

创建表
sqlite>create table Artists (
--->ArtistID INTEGER PRIMARY KEY,
--->ArtistName TEXT);
sqlite 对SQL语句大小写不敏感,所以大写小写随便
sqlite>create table CDs (
--->CDID INTEGER PRIMARY KEY,
--->ArtistID INTEGER NOT NULL,
--->Title TEXT NOT NULL,
--->Date TEXT);

表查询
来看看现在这两张表里都有那些内容,执行
sqlite>select * from Artists;

4.Android中使用SQLite

public class DBHelper extends SQLiteOpenHelper {

	//数据库的属性信息
	private final static String DATABASE_NAME = "student_db";
	private final static int DATABASE_VERSION = 1;
	private final static String TABLE_NAME = "T_student";
	//数据库表的字段 默认会有一个_id字段
	private final static String FIELE_ID = "_id";
	private final static String FIELD_NAME = "name";

	//默认的构造方法 用于创建数据库
	public DBHelper(Context context) {
		super(context, DATABASE_NAME, null, DATABASE_VERSION);
	}

	//数据库的语句在拼接时要注意空格!
	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
		String sql="CREATE TABLE "+TABLE_NAME+"("+
		FIELE_ID+" integer primarykey autoincrement,"+
		FIELD_NAME+" text);";
		db.execSQL(sql);
	}

	//数据库版本更新时调用
	@Override
	public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
		// TODO Auto-generated method stub
		String sql="DROP TABLE IF EXISTS "+TABLE_NAME;
		db.execSQL(sql);
		onCreate(db);
	}

	//查询
	public Cursor select() {
		SQLiteDatabase db=this.getReadableDatabase();
		Cursor cursor=db.query(TABLE_NAME,null,null,null,null,null,"_id desc");
		return cursor;
	}
	//新增
	//返回插入行的id 错误返回-1
	public long insert(String name) {
		SQLiteDatabase db=this.getWritableDatabase();
		ContentValues cv=new ContentValues();
		cv.put(FIELD_NAME, name);
		long row=db.insert(TABLE_NAME, null, cv);
		return row;
	}
	//删除
	//delete(TABLE_NAME, where, whereValue) where:可选的WHERE语句 whereValue取代where中的?占位符
	//返回 若传入正确的where语句 则被删除的行数将被返回 若传入null 返回0 若要删除所有行并返回删除的行数 则需要在where语句的地方传入字符串1
	public void delete(int id){
		SQLiteDatabase db=this.getWritableDatabase();
		String where=FIELE_ID+"=?";
		String[] whereValue={Integer.toString(id)};
		db.delete(TABLE_NAME, where, whereValue);
	}
	//更新
	public void update(int id,String name){
		SQLiteDatabase db=this.getWritableDatabase();
		String where=FIELD_NAME+"=?";
		String[] whereValue={Integer.toString(id)};
		ContentValues cv=new ContentValues();
		cv.put(FIELD_NAME, name);
		db.update(TABLE_NAME, cv, where, whereValue);
	}
}
时间: 2024-11-03 11:50:43

SQLite详解0的相关文章

Android SQLite详解及示例代码_Android

在Android中使用SQLite数据库的入门指南,打算分下面几部分与大家一起分享, 1.什么是SQLite 2.Android中使用SQLite 一.什么是SQLite SQLite是一款开源的.轻量级的.嵌入式的.关系型数据库.它在2000年由D. Richard Hipp发布,可以支援Java.Net.PHP.Ruby.Python.Perl.C等几乎所有的现代编程语言,支持Windows.Linux.Unix.Mac OS.Android.IOS等几乎所有的主流操作系统平台. SQLit

对话框详解0

对话框是人机交互的重要组成部分,android中使用AlertDialog.Builder类来创建对话框,本文详解了各种对话框的创建方法: ps:本文采用activity托管的方式来创建对话框,即使用onCreateDialog方法来创建.当调用Activity类的showDialog方法时,系统会调用onCreateDialog方法来返回一个dialog,即showDialog将参数传进onCreateDialog方法.如果使用一般的创建方法,则和程序方法里面的做法相同. main.xml布局

c++ builder中的 XMLDocument 类详解(0) - xml 语法提示

1.忽略空白2.注释: <!-- -->3.指令: <? ?>4.特殊字符: < > ' " &  替代: < > &apos; " &5.二进制数据: <![CDATA [...]]>6.区分大小写7.标记不能交叠8.单标记, 也就是空元素, 如: <node/>, 只用属性记录数据9.属性值在引号内10.xml 中的元素与属性的名字, 必须以字母或 _ 开头, 后面可以是字母.数字或 _

TabHost详解0

一.TabHost是一个选项卡容器,通过标签页将多个Activity整合到一起. TabHost的三要素为:TabWidget.FrameLayout.List<TabSpec>. 其主要的使用方式有两种: 1.继承TabActivity,结合对应的xml配置文件导入tab选项内容体   2.继承Activity,结合拥有TabHost标签的xml配置文件导入 第一种方式: <?xml version="1.0" encoding="utf-8"?

Toast使用详解0

Toast是Android中常用的提示工具. Toast的常用使用方法有两种:使用系统默认的Toast 或者是自定义的Toast. 其效果如下: 主程序: public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activit

Sqlite详解1

本文讲解一些Sqlite的使用技巧: 1.Sqlite在控制台中使用中文的时候,是使用的GB2312,因此有时候在一些可视化工具中无法显示.因为这些可视化工具一般使用的是UTF-8,如果在这些工具中编辑sql则不会出现这个问题. 2.分页显示: select * from table2 limit 10,100 第一个参数表示子记录集在父记录集中的开始位置,第二个参数是返回的记录数. 3.事务: Sqlite中使用BEGIN来开始一个事务: BEGIN; insert into table va

日历控件开发详解0

从今天开始,我们将一步步学习如何实现一个Android的日历控件,今天是第一天! 一.准备工作之配置参数 制作一个日历控件,我们首先要配置一些参数 1.尺寸 dimension.xml <?xml version="1.0" encoding="utf-8"?> <resources> <!-- 日历边框间距 --> <dimen name="margin">10dp</dimen> &

ListView详解0

ListView常用方法总结 1.listview拖动变黑解决方法 在Android中,ListView是最常用的一个控件,在做UI设计的时候,很多人希望能够改变一下它的背景,使他能够符合整体的UI设计,改变背景背很简单只需要准备一张图片然后指定属性 android:background="@drawable/bg",不过不要高兴地太早,当你这么做以后,发现背景是变了,但是当你拖动,或者点击list空白位置的时候发现ListItem都变成黑色的了. 这个要从Listview的效果说起,

仿iPhone assistivetouch小工具实现详解0

大家都知道iPhone下的assistivetouch这个小圆点 对,就是这个玩意儿 但是Android上没这玩意儿,所有今天我们就给Android上弄上一个这个玩意儿 看见没,和iPhone下的基本一样吧 我准备分几次讲这个项目的开发实例写出来,照例,今天搞定界面: 1.控制球界面 2.菜单界面 这些都不难,大家看下就懂了 控制球界面: <?xml version="1.0" encoding="utf-8"?> <FrameLayout xml