1. 首页>百科大全 > 百科

sqlite怎么用

作者:王书
2020-03-25
百科

1.怎样使用SQLite

SQLite3是目前最新的SQLite版本。

可以从网站上下载SQLite3的源代码(本书使用的版本是sqlite-3.6.12.tar.gz)。 解压缩后进入sqlite-3.6.12的根目录,首先命令“./configure”生成Makefile文件,接着运行命令“make”对源代码进行编译,最后运行命令“make install”安装SQLite3。

安装完毕后,可以运行命令sqlite3查看SQLite3是否能正常运行,如下所示: [root@localhost ~]# sqlite3 SQLite version 3.6.12 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> 可以看到,SQLite3启动后会停留在提示符sqlite>处,等待用户输入SQL语句。 在使用SQLite3前需要先了解下SQLite3支持的数据类型。

SQLite3支持的基本数据类型主要有以下几类: NULL NUMERIC INTEGER REAL TEXT SQLite3会自动把其他数据类型转换成以上5类基本数据类型,转换规则如下所示: char、clob、test、varchar—> TEXT integer—>INTEGER real、double、float—> REAL blob—>NULL 其余数据类型都转变成NUMERIC 下面通过一个实例来演示SQLite3的使用方法。 新建一个数据库 新建数据库test.db(使用.db后缀是为了标识数据库文件)。

在test.db中新建一个表test_table,该表具有name,、sex、age三列。SQLite3的具体操作如下所示: [root@localhost home]# sqlite3 test.db SQLite version 3.6.12 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> create table test_table(name, sex, age); 如果数据库test.db已经存在,则命令“sqlite3 test.db”会在当前目录下打开test.db。

如果数据库test.db不存在,则命令“sqlite3 test.db”会在当前目录下新建数据库test.db。为了提高效率,SQLite3并不会马上创建test.db,而是等到第一个表创建完成后才会在物理上创建数据库。

由于SQLite3能根据插入数据的实际类型动态改变列的类型,所以在create语句中并不要求给出列的类型。 创建索引 为了加快表的查询速度,往往在主键上添加索引。

如下所示的是在name列上添加索引的过程。 sqlite> create index test_index on test_table(name); 操作数据 如下所示的是在test_table中进行数据的插入、更新、删除操作: sqlite> insert into test_table values ('xiaoming', 'male', 20); sqlite> insert into test_table values ('xiaohong', 'female', 18); sqlite> select * from test_table; xiaoming|male|20 xiaohong|female|18 sqlite> update test_table set age=19 where name = 'xiaohong'; sqlite> select * from test_table; xiaoming|male|20 xiaohong|female|19 sqlite> delete from test_table where name = 'xiaoming'; sqlite> select * from test_table; xiaohong|female|19 批量操作数据库 如下所示的是在test_table中连续插入两条记录: sqlite> begin; sqlite> insert into test_table values ('xiaoxue', 'female', 18); sqlite> insert into test_table values ('xiaoliu', 'male', 20); sqlite> commit; sqlite> select * from test_table; xiaohong|female|19 xiaoxue|male|18 xiaoliu|male|20 运行命令commit后,才会把插入的数据写入数据库中。

数据库的导入导出 如下所示的是把test.db导出到sql文件中: [root@localhost home]# sqlite3 test.db ".dump" > test.sql; test.sql文件的内容如下所示: BEGIN TRANSACTION; CREATE TABLE test_table(name, sex, age); INSERT INTO "test_table" VALUES('xiaohong','female',19); CREATE INDEX test_index on test_table(name); COMMIT; 如下所示的是导入test.sql文件(导入前删除原有的test.db): [root@localhost home]# sqlite3 test.db < test.sql; 通过对test.sql文件的导入导出,可以实现数据库文件的备份。 11.2.2 SQLite3的C接口 以上介绍的是SQLite3数据库的命令操作方式。

在实际使用中,一般都是应用程序需要对数据库进行访问。为此,SQLite3提供了各种编程语言的使用接口(本书介绍C语言接口)。

SQLite3具有几十个C接口,下面介绍一些常用的C接口。 sqlite_open 作用:打开SQLite3数据库 原型:int sqlite3_open(const char *dbname, sqlite3 **db) 参数: dbname:数据库的名称; db:数据库的句柄; sqlite_colse 作用:关闭SQLite3数据库 原型:int sqlite_close(sqlite3 *db) 例如: test.c: #include #include static sqlite3 *db=NULL; int main() { int rc; rc= sqlite3_open("test.db", &db); if(rc) { printf("can't open database!n"); } else { printf("open database success!n"); } sqlite3_close(db); return 0; } 运行命令“gcc –o test test.c –lsqlite3”进行编译,运行test的结果如下所示: [root@localhost home]# open database success! sqlite_exec 作用:执行SQL语句 原型:int sqlite3_exec(sqlite3 *db, const char *sql, int (*callback)(void*,int,char**,char**), void *, char **errmsg) 参数: db:数据库; sql:SQL语句; callback:回滚; errmsg:错误信息 例如: test.c: #include #include static sqlite3 *db=NULL; static char *errmsg=NULL; int main() { int rc; rc = sqlite3_open("test.db",。

2.如何使用sqlite创建数据库

首先还是说一下cmd下sqlite的使用网上已经很多了、不做过多的赘述。大致说一下相应的命令就行了、作为学习sqlite的一个记录

1:选择下载对应自己系统的sqlite.3exe文件

2:解压后使用cmd命令进入sqlite3.exe文件所在的路径执行命令就可以操作做相应的操作。

在进入数据库之后如果需要退出的话windows下摁ctrl+c就能退出

例如:

创建数据库命令:sqlite3.exe 【数据库名字.后缀名】

这里比较牛一点的感觉就是创建的数据库后缀名是任意的、不过注意一点就是:在命令框下执行创建数据库的时候。

如果没有为数据库创建表格、则看不见数据库文件,所以必须创建表格。

例如:在CMD命令提示符下输入sqlite3.exe test.db(test.db是数据库名)回车,执行完后,命令提示符自动跳转

到"SQLITE>;"状态。这时还是看不到这个数据库!等表格创建或关闭sqlite3

例如:create table user('用户名‘); 这时可以看到sqlite3.exe所在文件夹下的这个数据库文件了

如果下次还要使用此数据库时仍然使用sqlite3.exe test.db即可进入此数据库

创建表格命令:create table tablename(字段,字段)

这里从命令上可以清楚的看到、在sqlite数据库中创建表格字段的时候、允许不为字段申明数据类型。

这是区别于其它关系型数据库的。

执行插入命令:insert into tablename values(value,values)在、前面我们可以看出、sqlite的操作上和

sqlserver没什么太大区别、值得注意的是、insert时区别于sqlserver中、因为sqlserver中允许使用

"insert table name values(value,value)"这样的省略式擦入。但是sqlite中是不允许使用省略式插入语句的。

执行删除语句:delete from tablename where <;条件>

删除数据语法和sqlserver相同、

删除表则命令为:drop table tablename

数据更新命令:update tablename set 字段=值 如果需要条件的话、添加上where语句。

执行查询语句:select *from tablename 可跟随where语句

以上就是基础的sqlite的增删查改语法和命令。

3.如何连接一个sqlite数据库实例

SQLite介绍

SQLite是轻量级的、嵌入式的、关系型数据库,目前已经在iPhone、Android等手机系统中使用,SQLite可移植性好,很容易使用,很小,高效而且可靠。SQLite嵌入到使用它的应用程序中,它们共用相同的进程空间,而不是单独的一个进程。从外部看,它并不像一个RDBMS,但在进程内部,它却是完整的,自包含的数据库引擎。

在android中当需要操作SQLite数据库的时候需要得到一个SQLiteOpenHelper对象,而SQLiteOpenHelper是一个抽象类,用户需要继承这个类,并实现该类中的一些方法。

1、继承SQLiteOpenHelper之后就拥有了以下两个方法:

◆getReadableDatabase() 创建或者打开一个查询数据库

◆getWritableDatabase()创建或者打开一个可写数据库

◆他们都会返回SQLiteDatabase对象,用户通过得到的SQLiteDatabase对象进行后续操作

2、同时用户还可以覆盖以下回调函数,再对数据库进行操作的时候回调以下方法:

◆onCreate(SQLiteDatabase):在数据库第一次创建的时候会调用这个方法,一般我们在这个方法里边创建数据库表。

◆onUpgrade(SQLiteDatabase,int,int):当数据库需要修改的时候,Android系统会主动的调用这个方法。一般我们在这个方法里边删除数据库表,并建立新的数据库表,当然是否还需要做其他的操作,完全取决于应用程序的需求。

◆onOpen(SQLiteDatabase):这是当打开数据库时的回调函数,一般也不会用到。

4.如何使用sqlite 数据库文件

在我几个Android应用中,我需要访问已有的数据库。

这些数据库往往很大,甚至超过asset文件大约1兆字节的限制。而且在新的版本中数据库需要更新。

我在网上,特别是StackOverflow看了一些文章,并做了一些试验,觉得下面的代码能基本上满足我的需求。 其主要思路是: 1. 把数据库分解成几个asset文件。

2. 当需要打开数据库时,如果数据库不存在,就把那几个asset文件重新合并成一个数据库文件。 3. 如果数据库的版本改变了,就在onUpgrade()方法中把数据库文件删除掉。

下面是代码: //数据库的缺省路径 private static finalString DB_PATH = "/data/data/com.mypackage.myapp/databases/"; private static finalString DB_NAME = "mydb.db"; private static finalint DB_VERSION = 2; private static finalString DB_SPLIT_NAME = "mydb.db.00"; private static finalint DB_SPLIT_COUNT = 3; private SQLiteDatabasem_database; private final Contextm_context; public MyDB(Contextcontext) { super(context, DB_NAME, null, DB_VERSION); this.m_context = context; } public static MyDBopenDatabaseReadonly(Context context) { MyDB db = new MyDB(context); try { db.createDatabase(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } db.openDatabase(SQLiteDatabase.OPEN_READONLY); return db; } public static MyDBopenDatabaseReadWrite(Context context) { MyDB db = new MyDB(context); try { db.createDatabase(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } db.openDatabase(SQLiteDatabase.OPEN_READWRITE); return db; } public voidcreateDatabase() throws IOException{ boolean dbExist =checkDatabase(); if (dbExist) { SQLiteDatabase db =this.getWritableDatabase(); if (db != null) { db.close(); } } dbExist = checkDatabase(); if (!dbExist) {。

5.sqlite中文版怎么用

E:SQLite>sqlite test.db

SQLite version 3.7.15 2012-12-12 13:36:53

Enter ".help" for instructions

Enter SQL statements terminated with a ";"

sqlite> create table '中文表' ( '中文列' int );

sqlite> insert into '中文表' VALUES (100);

sqlite> select * from '中文表';

中文列

100

sqlite>

可以的是可以的, 只是不推荐.

因为写 SQL 语句的时候, 还要来回切换输入法, 也是一件郁闷的事情啊。

6.sqlite怎么使用数据库创建表

CREATE TABLE语句的基本语法如下:

1

2

3

4

5

6

7

CREATE TABLE database_name.table_name(

column1 datatype PRIMARY KEY(one or more columns),

column2 datatype,

column3 datatype,

..

columnN datatype,

);

CREATE TABLE是告诉数据库系统关键字,创建一个新的表。独特的名称或标识如下表CREATE TABLE语句。也可以选择指定DATAbase_NAME连同table_name。

例子:

下面是一个例子,创建了一个公司ID作为主键的表和NOT NULL的约束显示这些字段不能为NULL,同时创建该表中的记录:

1

2

3

4

5

6

7

sqlite> CREATE TABLE COMPANY(

ID INT PRIMARY KEY NOT NULL,

NAME TEXT NOT NULL,

AGE INT NOT NULL,

ADDRESS CHAr(50),

SALARY REAL

);

创建一个表

1

2

3

4

5

sqlite> CREATE TABLE DEPARTMENT(

ID INT PRIMARY KEY NOT NULL,

DEPT CHAr(50) NOT NULL,

EMP_ID INT NOT NULL

);

如果表验证已成功创建使用SQLite命令.tables命令,将用于列出了附加的数据库中的所有表。

推荐阅读
  • 努比亚z9max手机音乐效验

    该机拥有HIFI级音乐芯片,音乐效果不凡。具体体现在:1.音量调节,正常听音乐中高低音都是一个音量,而杜比音效能动态扩大某个音量。比如放打鼓声,杜比会及时提高低音加强鼓声。2.加强音域,杜比音效有开阔、集中、…

    百科 2024-09-20
  • 是atChristmas还是inChristmas

    此处该用“on”。在圣诞节正确表达应为 “on Christmas ”。有具体日期的,比如知道几月几日的都用“on” ;不知道日期,但知道年份和月份的用“in” ,知道具体时间,比如几点几分用“at”。…

    百科 2024-09-20
  • 个体工商户应交纳什么税

    纳税标准根据国家税务总局《个体工商户定期定额征收管理办法》文件精神 ,定期定额征收方式适用的税种及税率如下:1、根据《中华人民共和国增值税暂行条例》规定,自2009年1月1日起,小规模纳税人增值税征收率为3%…

    百科 2024-09-20
  • 材料成本差异率为负数是什么意思

    材料成本差异额,是指材料的实际成本和计划成本之间的差额。差异率负数表示节约差异,即实际成本比计划成本小。正数表示超支差异,即实际成本比计划成本大。…

    百科 2024-09-20
  • 塞翁失马焉知非福是什么意思

    比喻一时虽然受到损失,反而因此能得到好处。也指坏事在一定条件下可变为好事,反之亦然。形容人的心态,一定要乐观向上,任何事情都有二面性,不好的一面,有可能向好的一面转化。塞翁失马,焉知非福出自《 淮南子…

    百科 2024-09-20