对于一些和我一样还没有真正系统学习数据库技术的同学来说,把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 |
②关于数据类型
和其他的数据库不同的是,sqlite是无类型的。也就是当你创建一个表格时,无需对每一个栏位要存储的数据的类型进行声明,当你在给表格增加数据条目时,sqlite会自动找到存入的数据的类型。
SQLite允许忽略数据类型,但是,仍然建议在Create Table语句中指定数据类型,因为数据类型有利于增强程序的可读性。SQLite支持常见的数据类型,如VARCHAR、NVARCHAR、TEXT、INTEGER、FLOAT、BOOLEAN、CLOB、BLOB、TIMESTAMP、NUMERIC、VARYING、CHARACTER、NATl0NAI, VARYINGCHARACTER。这些数据类型都是SQL92标准中规定的标准数据库数据类型,想要有更近一步了解,请参看下表。
SQL数据库数据类型详解 |
|
你或许已经在纳闷了,为什么之前的数据类型是大写的,而到了这个表格就变成了小写的。其实这是sqlite的一个不得不提的特性:sqlite是大小写不敏感的!这一特性对于很多c语言fans来说是很不习惯的。
③数据库的基本操作语句
其实这个还是SQL92标准中的一部分,只是不同的数据库会有一点点的不同而已,下面就对在android中最常用的几个操作语句给以概述,详细介绍请参看SQL语句简单介绍。
(1)CREATE TABLE
由于创建一个表格,基本使用语法结构是:
CREATE TABLE "表格名" ("栏位1" 保存资料类型 , "栏位3" 保存资料类型 , "栏位2" 保存资料类型 .....);
例如我要创建刚才的Store_Information表格,就可以这样:
CREATE TABLE Store_Information (Store_Name char[50] , Sales long , Date date );
需要提示的是,这里还是声明了数据类型。而且不难发现,c语言构建的sqlite自身也有一些c语言的性格(例如一个完整语句后的分号)。
(2)SELECT
用于将资料从数据库中的表格内选出,基本语法结构为:
SELECT "栏位名" FROM "表格名" ;
例如我想将 Store_Information 里面的store_name 选出,则可以这样:
SELECT store_name FROM Store_Information ;
这句执行后就会显示如下的信息:
store_name |
Los Angeles |
San Diego |
Los Angeles |
Boston |
好了,效果一目了然。
(3)SELECT语句可以添加条件来缩小选择结果:
去掉重复的结果:
SELECT DISTINCT "栏位名" FROM "表格名"
例如将刚才的语句改为:
SELECT DISTINCT store_name FROM Store_Information ;
则显示的结果为:
store_name |
Los Angeles |
San Diego |
Boston |
实现有条件的筛选:
SELECT "栏位名" FROM "表格名" WHERE "条件语句" ;
条件语句和c语言中的类似,只不过用AND表示“且”,OR表示“或”。
例如对表执行如下语句:
SELECT store_name FROM Store_Information WHERE Sales > 1000 ;
则显示结果为:
store_name
Los Angeles
其中WHERE语句用的较多,因为它可以实现自定义条件的使用和多条件的组合。
(4)INSERT INTO
在表格中加入资料——可以实现一笔的加入和多笔的加入。
加入一笔:
INSERT INTO "表格名" ("栏位1", "栏位2", ...) VALUES ("值1", "值2", ...);
加入多笔:
INSERT INTO "待加入数据的表格" ("栏位1", "栏位2", ...) SELECT "栏位3", "栏位4", ... FROM "被加入的表格" ;
加入多笔其实就是将另一个表格加入到现有表格中。
(5)UPDATE
用于修改表格中的数据,语法结构为:
UPDATE "表格名" SET "栏位1" = [新值] WHERE {条件};
例如:
UPDATE Store_Information SET Sales = 500 WHERE store_name = "Los Angeles" AND Date = "Jan-08-1999" ;
具体是什么意思的话就不说了,你懂的~~~
(6)DELETE FROM
删除表格中的某些数据,语法结构为:
DELETE FROM "表格名" WHERE {条件} ;
满足条件的所有资料都会被删除掉。