1、SQLite-数据库数据库 SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。 SQL 能做什么?能做什么?SQL 面向数据库执行查询 SQL 可从数据库取回数据 SQL 可在数据库中插入新的记录 SQL 可更新数据库中的数据 SQL 可从数据库删除记录 SQL 可创建新数据库 SQL 可在数据库中创建新表 SQL 可在数据库
2、中创建存储过程 SQL 可在数据库中创建视图 SQL 可以设置表、存储过程和视图的权限 操作的对象:表 数据存储在被称为表(tables)的数据库对象中。 表是相关的数据项的集合,它由列和行组成。一个数据库通常包含一个或多个表。每个表由一个名字标识(例如“客户”或者“订单”)。表包含带有数据的记录(行)。下面的例子是一个名为 Persons 的表:上面的表包含三条记录(每一条对应一个人)和五个列(Id、姓、名、地址和城市)。您需要在数据库上执行的大部分工作都由 SQL 语句完成 语法语法Select语句SELECT 语句用于从表中选取数据。结果被存储在一个结果表中(称为结果集)。SQL SEL
3、ECT 语法语法SELECT 列名称 FROM 表名称 选取所有列表项:SELECT * FROM Persons Where 子句语法:语法:SELECT 列名称 FROM 表名称 WHERE 列 运算符 值 如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。如果只希望选取居住在城市 Beijing 中的人,我们需要向 SELECT 语句添加 WHERE 子句:SELECT FROM Persons WHERE City=Beijing INSERT INTOINSERT INTO 语句语句INSERT INTO 语句用于向表格中插入新的行。语法语法INSERT
4、INTO 表名称 VALUES (值1, 值2,.) 我们也可以指定所要插入数据的列:INSERT INTO table_name (列1, 列2,.) VALUES (值1, 值2,.) 在指定列插入数据Update Update 语句语句Update 语句用于修改表中的数据。语法:语法:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 DELETEDELETE 语句语句DELETE 语句用于删除表中的行。语法语法DELETE FROM 表名称 WHERE 列名称 = 值 删除所有行删除所有行可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整
5、的:DELETE FROM table_name Android的SQLite数据库 SQLite,是一款轻型的关系型数据库,它支持大多数SQL语法,本质上,SQLite的操作只是一种更为便捷的文件操作。 在Android中用SQLiteDatebase代表数据库,一旦获取了SQLiteDatebase的实例对象,就可以管理,操作数据库了! 有两种方法获取SQLiteDatebase的实例对象。SQLiteDatebase操作数据库的基本方法使用SQLiteDatabase的静态方法获取SQLiteDatabase实例通过db我们就能操作数据库了。String sql=create table
6、 person (_id integer primary key autoincrement , name verchar(30), info verchar(30); db.execSQL(sql);查询数据:Cursor-游标Cursor 是每行的集合。数据库的查询结果都封装在cursor中游标中使用 moveToFirst() 定位第一行。你必须知道每一列的名称。你必须知道每一列的数据类型。Cursor 是一个随机的数据源。所有的数据都是通过下标取得。 Cursor重要方法close()关闭游标,释放资源copyStringToBuffer(int columnIndex, CharAr
7、rayBuffer buffer)在缓冲区中检索请求的列的文本,将将其存储getColumnCount()返回所有列的总数getColumnIndex(String columnName)返回指定列的名称,如果不存在返回-1getColumnIndexOrThrow(String columnName)从零开始返回指定列名称,如果不存在将抛出IllegalArgumentException 异常。getColumnName(int columnIndex)从给定的索引返回列名getColumnNames()返回一个字符串数组的列名getCount()返回Cursor 中的行数moveToFir
8、st()移动光标到第一行moveToLast()移动光标到最后一行moveToNext()移动光标到下一行moveToPosition(int position)移动光标到一个绝对的位置moveToPrevious()移动光标到上一行 Cursor插入语句db.execSQL(“insert into person values(null,?,?)”,new String“李白”,”是个诗人”);删除语句db.execSQL(“delete from person where name like ? ”, new String“李白”);更新语句db.execSQL(update person
9、 set name = ? , info = ? where name = ? , new String“协同”,”工作室”,“李白”);Adroid即支持直接执行SQL语句,也可利用一些封装好的方法操作数据库,本质是一样的。使用Android为我们提供的方法操作数据库,这对数据库的语法要求较低。插入数据的方法:更新数据的方法:删除数据的方法:SQLiteOpenHelper SQLiteOpenHelper是Android提供的管理数据库的工具类,用于对数据库的创建和版本更新。该类同样也能提供一个SQLiteDatebase来操作数据库。 1.创建一个SQLiteOpenHelper子类。
10、2.在该子类重写onCreat()方法,onUpgrade()方法。 3.在Activity中实例化该子类,即可调用。 4.通过实例化该子类得到SQLiteDatebase对象SQLiteOpenHelperpublicpublic classclass ContactDBHelper extendsextends SQLiteOpenHelper /*重写三个这三个函数:*publicpublic ContactDBHelper(Context context, String name, CursorFactory *factory,intint version) *public void
11、onCreate(SQLiteDatabase db) *public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2)*/在Activity中实例化一个该SQLiteOpenHelper子类注意两种生成数据库的方式生成的数据库所在的位置不同生成数据库的位置是默认的生成数据库的位置是自己指定的数据库被修改后是不会自动调整主键序号的删除2,3插入新的一行_id_id_idAndroid SQLite 的一些语法注意点: 传送门:提问与解答环节Questions And Answers谢谢聆听 学习就是为了达到一定目的而努力去干, 是为一个目标去战胜各种困难的过程,这个过程会充满压力、痛苦和挫折Learning Is To Achieve A Certain Goal And Work Hard, Is A Process To Overcome Various Difficulties For A Goal