sqlite数据库_sqlite数据库操作 - CSDN
精华内容
参与话题
  • SQLite数据库简介

    万次阅读 多人点赞 2011-08-25 10:04:39
    大家好,今天来介绍一下SQLite的相关知识,并结合Java实现对SQLite数据库的操作。 SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎。它支持大多数的SQL92标准,并且可以在所有主要的操作系统上运行。 ...

    大家好,今天来介绍一下SQLite的相关知识,并结合Java实现对SQLite数据库的操作。

    SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎。它支持大多数的SQL92标准,并且可以在所有主要的操作系统上运行。

    SQLite由以下几个部分组成:SQL编译器、内核、后端以及附件。SQLite通过利用虚拟机和虚拟数据库引擎(VDBE),是调试、修改和扩展SQLite的内核变得更加方便。所有SQL语句都被编译成易读的、可以在SQLite虚拟机中执行的程序集。SQLite的整体结构图如下:


    值得一提的是,袖珍型的SQLite竟然可以支持高达2TB大小的数据库,每个数据库都是以单个文件的形式存在,这些数据都是以B-Tree的数据结构形式存储在磁盘上。

    在事务处理方面,SQLite通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据。在某个进程或线程想数据库执行写操作之前,必须获得独占锁。在获得独占锁之后,其他的读或写操作将不会再发生。

    SQLite采用动态数据类型,当某个值插入到数据库时,SQLite将会检查它的类型,如果该类型与关联的列不匹配,SQLite则会尝试将该值转换成该列的类型,如果不能转换,则该值将作为本身的类型存储,SQLite称这为“弱类型”。但有一个特例,如果是INTEGER PRIMARY KEY,则其他类型不会被转换,会报一个“datatype missmatch”的错误。

    概括来讲,SQLite支持NULL、INTEGER、REAL、TEXT和BLOB数据类型,分别代表空值、整型值、浮点值、字符串文本、二进制对象。

    下面,我们就来亲自操作一下SQLite数据库。

    在操作之前,朋友们要先下载SQLite数据库,官方的下载页面是http://sqlite.org/download.html,我是在Windows下试验,所以我选择了Precompiled Binaries For Windows下面的sqlite-shell-win32-x86和sqlite-analyzer-win32-x86的zip包,前者是SQLite数据库引擎,后者是SQLite数据库分析器,主要用于分析数据库的状态等信息,大家也可以根据自己的情况去下载。下载完成后分别解压,得到两个可执行文件,如图:


    这两个文件可以根据自己的喜好放置在指定的位置,我将其放在D盘根目录下。下面我们就来一步一步操作SQLite:


    创建数据库:

    D:\>sqlite3 test.db
    SQLite version 3.7.7.1 2011-06-28 17:39:05
    Enter ".help" for instructions
    Enter SQL statements terminated with a ";"
    sqlite> .databases
    seq  name             file
    
    ---  ---------------  ----------------------------------------------------------
    
    0    main             D:\test.db
    
    sqlite>
    我们执行了sqlite3命令,参数就是数据库的名称,如果该数据库已存在,则使用,如果不存在,则新建一个,这里我们简单的在当前位置创建了test.db,你也可以在任何存在的并且可写的目录下创建自己的数据库。(如果对于SQLite的命令不太熟悉,可以执行“.help”命令列出所有的命令清单进行查看)。


    创建表:

    sqlite> CREATE TABLE person (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20), age SMALLINT);
    sqlite> .tables
    person
    sqlite> .schema person
    CREATE TABLE person (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20), age SMALLINT);
    sqlite>
    在我们创建表之后,可以用“.tables”命令去查看已有的表,用“.schema”命令去查看表的结构,如果后面没有表名做参数,则将会输出所有表的建表语句。


    插入数据:

    sqlite> INSERT INTO person VALUES (NULL, 'john', 30);
    sqlite> SELECT * FROM person;
    1|john|30


    从.sql文件导入数据:

    sqlite> .read test.sql
    sqlite> SELECT * FROM person;
    1|john|30
    2|david|35
    3|henry|40
    sqlite>


    分析数据库使用状态:

    D:\>sqlite3_analyzer test.db
    /** Disk-Space Utilization Report For test.db
    
    Page size in bytes.................... 1024
    Pages in the whole file (measured).... 4
    Pages in the whole file (calculated).. 4
    Pages that store data................. 4          100.0%
    Pages on the freelist (per header).... 0            0.0%
    Pages on the freelist (calculated).... 0            0.0%
    Pages of auto-vacuum overhead......... 0            0.0%
    Number of tables in the database...... 4
    Number of indices..................... 0
    Number of named indices............... 0
    Automatically generated indices....... 0
    Size of the file in bytes............. 4096
    Bytes of user payload stored.......... 39           0.95%
    ...


    备份数据库:

    备份 SQLite 数据库有两种方法。如果数据库正在使用中,则应从命令行界面使用 .dump 命令。这样可以创建一个包含必要命令和数据的文件,从而重新创建数据库。.dump 命令也可以用于备份数据库表。

    sqlite> .dump
    PRAGMA foreign_keys=OFF;
    BEGIN TRANSACTION;
    CREATE TABLE person (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20), age SMALLINT);
    INSERT INTO "person" VALUES(1,'john',30);
    INSERT INTO "person" VALUES(2,'david',35);
    INSERT INTO "person" VALUES(3,'henry',40);
    DELETE FROM sqlite_sequence;
    INSERT INTO "sqlite_sequence" VALUES('person',3);
    COMMIT;
    sqlite> .output dump.sql
    sqlite> .dump
    sqlite>
    我们可以指定输出的目标为一个文件,然后再使用命令时,输出信息就会写入指定的文件,如果想恢复为标准输出,可以这样设定:

    sqlite> .output stdout
    sqlite> .dump
    PRAGMA foreign_keys=OFF;
    BEGIN TRANSACTION;
    CREATE TABLE person (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20), age SMALLINT);
    INSERT INTO "person" VALUES(1,'john',30);
    INSERT INTO "person" VALUES(2,'david',35);
    INSERT INTO "person" VALUES(3,'henry',40);
    DELETE FROM sqlite_sequence;
    INSERT INTO "sqlite_sequence" VALUES('person',3);
    COMMIT;
    sqlite>

    如果数据库没有处于使用状态,则可以直接将数据库文件复制到安全位置。

    最后,我们可以使用“.quit”或“.exit”退出SQLite。


    管理工具:

    现在网络上的SQLite管理工具很多,我向大家推荐一款好用的工具:SQLite Expert。



    在Java中使用SQLite:

    我们要想在Java中使用SQLite,需要下载SQLite相关驱动,推荐大家到http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC页面去下载最新的驱动包,现在最新版本是sqlite-jdbc-3.7.2.jar,体积有点大,因为它包含了Linux、Mac、Windows的本地类库,如图:


    下载了驱动之后,我们新建一个项目,名为sqlite:


    在上图中,我们引入sqlite驱动包到类路径下,然后建立一个db的文件夹,用于放置数据库文件。最后我们看一下Test.java代码:

    package com.scott.sqlite;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    public class Test {
    	public static void main(String[] args) throws Exception {
    		Class.forName("org.sqlite.JDBC");
    		Connection conn = DriverManager.getConnection("jdbc:sqlite:db/test.db");
    		Statement stmt = conn.createStatement();
    
    		stmt.executeUpdate("DROP TABLE IF EXISTS person");
    		stmt.executeUpdate("CREATE TABLE person(id INTEGER, name STRING)");
    		stmt.executeUpdate("INSERT INTO person VALUES(1, 'john')");
    		stmt.executeUpdate("INSERT INTO person VALUES(2, 'david')");
    		stmt.executeUpdate("INSERT INTO person VALUES(3, 'henry')");
    		ResultSet rs = stmt.executeQuery("SELECT * FROM person");
    		while (rs.next()) {
    			System.out.println("id=>" + rs.getInt("id") + ", name=>" + rs.getString("name"));
    		}
    		stmt.close();
    		conn.close();
    	}
    }
    
    执行Test.java文件,结果如下:


    这个时候,在我们的db目录下,就生成了一个test.db的文件:



    SQLite使用须知:

    目前没有可用于 SQLite 的网络服务器。从应用程序运行位于其他计算机上的 SQLite 的惟一方法是从网络共享运行。这样会导致一些问题,像 UNIX® 和 Windows® 网络共享都存在文件锁定问题。还有由于与访问网络共享相关的延迟而带来的性能下降问题。

    SQLite 只提供数据库级的锁定。

    SQLite 没有用户帐户概念,而是根据文件系统确定所有数据库的权限。


    结束语:

    由于资源占用少、性能良好和零管理成本,嵌入式数据库有了它的用武之地,像Android、iPhone都有内置的SQLite数据库供开发人员使用,它的易用性可以加快应用程序的开发,并使得复杂的数据存储变得轻松了许多。

    展开全文
  • SQLite是一款轻量级的关系型数据库 SQLite的内存? 运行速度非常快,通常只需要几百kB的内存就足够了 创建数据库 为了让我们能够更加方便地管理数据库,专门提供了SQLiteOpenHelper 类 通过这个类,...

    什么是SQLite?

    SQLite是一款轻量级的关系型数据库

    SQLite的内存?

    运行速度非常快,通常只需要几百kB的内存就足够了

    创建数据库

    为了让我们能够更加方便地管理数据库,专门提供了SQLiteOpenHelper 类 通过这个类,我们可以进行数据库的创建和升级

    SQLiteOpenHelper是一个抽象类 所以我们要创建一个类 来继承它,
    在SQLiteOpenHelper中 ,有两个抽象方法。分别是Oncreate() 和OnUpgrade(),
    必须重写这些方法,去实现创建和升级数据库的逻辑。

    除此这两个方法,SQLiteOpenHelper 还有两个实例方:

    getReadableDatabase()  
    getWritableDatabase()

    这个两个都可以创建或者打开一个现有的数据库,唯一不同的是 当磁盘满的时候:

    getReadableDatabase() 返回的对象是只读的方式。
    getWritableDatabase() 出现异常

    在创建数据库之前,对数据库的数据类型也要简单了解一下:

    integet: 整型
    real : 浮点型
    blob : 二进制
    text: 文本类型
    primary key 将id 列设为主键,并用autoincrement关键字表示id列是自增长的。

    新建一个类 继承SQLiteOpenHelper 代码如下:

    package com.example.myapplication15;
    
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.widget.Toast;
    
    
    public class MySQLiteHelper extends SQLiteOpenHelper {
        private String createSQL = "create table student(" +
                "id integer primary key  autoincrement not null ," +
                "age integer ," +
                "name text not null ," +
                "score real )";
        private Context context;
    
        public MySQLiteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
            super(context, name, factory, version);
            this.context = context;
    
        }
    
        @Override
        public void onCreate(SQLiteDatabase sqLiteDatabase) {
                      sqLiteDatabase.execSQL(createSQL);
                      Toast.makeText(context,"成功",Toast.LENGTH_SHORT).show();
    
    
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
    
        }
    }
    

    我们把建表语句定义成了一个字符串常量,然后在onCreate()方法中调用execSQL()方法执行这条建表语句,并弹出一个Tost提示创建成功。

    效果图:
    这里写图片描述

    创建成功后 ,我进行添加内容,然后,进行查询:
    代码演示:

    package com.example.myapplication15;
    
    import android.content.ContentValues;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    
    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
        private    MySQLiteHelper myHelper;
        private EditText ed;
        private Button charu;
        private Button chaxun;
        private Button qqqq;
    
        private SQLiteDatabase sqldb;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            binID();
            myHelper = new MySQLiteHelper(this, "student.db", null, 2);
        }
    
        private void binID() {
            ed = findViewById(R.id.ed);
            qqqq=findViewById(R.id.mina_qqqq);
            charu = findViewById(R.id.button_charu);
            chaxun = findViewById(R.id.button_chaxun);
    
            charu.setOnClickListener(this);
            chaxun.setOnClickListener(this);
            qqqq.setOnClickListener(this);
        }
    
        @Override
        public void onClick(View view) {
            switch (view.getId()) {
                case R.id.mina_qqqq:
                    myHelper.getWritableDatabase();
                    break;
                case R.id.button_charu:
    
                    //获得SQLiteDatabase对象,读写模式
                    sqldb = myHelper.getWritableDatabase();
                    //ContentValues类似HashMap,区别是ContentValues只能存简单数据类型,不能存对象
                    ContentValues values = new ContentValues();
                    values.put("name", ed.getText().toString());
                    sqldb.insert("student", null, values);
                    break;
    
                case R.id.button_chaxun:
                    SQLiteDatabase  sqldb = myHelper.getReadableDatabase();
                    //创建游标
                    Cursor mcursor = sqldb.query("student",null,null,null, null, null, null);
                    //游标置顶
                    if (mcursor.moveToFirst()) {
                        //遍历
                        do {
                            String name = mcursor.getString(mcursor.getColumnIndex("name"));
                            Log.e("MainActivity", "onClick: " + name);
                        } while (mcursor.moveToNext());
                    }
                    mcursor.close();
                    break;
    
        }}
    
    
    }
    
    
    
    

    xml:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context="com.example.myapplication15.MainActivity">
    <Button
        android:text="创建"
        android:id="@+id/mina_qqqq"
        android:layout_width="match_parent"
        android:layout_height="50dp" />
    
        <EditText
            android:id="@+id/ed"
            android:layout_width="match_parent"
            android:layout_height="50dp" />
        <Button
            android:layout_marginTop="25dp"
            android:text="插入"
            android:id="@+id/button_charu"
            android:layout_width="match_parent"
            android:layout_height="50dp" />
        <Button
            android:id="@+id/button_chaxun"
            android:layout_marginTop="25dp"
            android:text="查询"
            android:layout_width="match_parent"
            android:layout_height="50dp" />
    
    </LinearLayout>
    

    `效果图“

    这里写图片描述
    这里写图片描述

    可以看到当我们输入“44444” 点击插入后,点击查询。会发现 控制台打印了结果。

    除添加和查询之外。,我们还可以进行数据库的 修改和删除:

     case  R.id.button_xiugai:
                    String name=ed.getText().toString();
                    String newname=ed_xiugai.getText().toString();
                    SQLiteDatabase sqLiteDatabase4=myHelper.getWritableDatabase();
                    ContentValues values1=new ContentValues();
                    values1.put("name",newname);
                    sqLiteDatabase4.update("student",values1,"name=? and id>?",new String[]{name,"5"});
                    break;
    
    
                case  R.id.button_shanchu:
                    SQLiteDatabase sqLiteDatabase3=myHelper.getReadableDatabase();
                    String name1=ed.getText().toString();
                    sqLiteDatabase3.delete("student","name=?",new String[]{name1});
                    break;

    一开始我添加两个123 后 进行修改
    这里写图片描述

    修改的结果为这里写图片描述
    我们如果想要删除:
    这里写图片描述
    点击删除 后查询,发现只有12 而123则消失了:‘
    这里写图片描述

    展开全文
  • SQLite数据库简介与基本使用

    万次阅读 2017-03-20 11:46:34
    SQLite是一款轻量级的开源的嵌入式数据库,由D.Richard Hipp在2000年发布。SQLite使用方便,性能出众,广泛应用于消费电子、医疗、工业控制、军事等各种领域。 2.SQLite的特点: (1)体积小:最低只需要几百K的...

    1.SQLite简介:

    SQLite是一款轻量级开源嵌入式数据库,由D.Richard Hipp2000年发布。SQLite使用方便,性能出众,广泛应用于消费电子、医疗、工业控制、军事等各种领域。

    2.SQLite的特点:

    (1)体积小:最低只需要几百K的内存就可以运行。

    (2)性能高:对数据库的访问性能很高,其运行速度比Mysql等开源数据库要快很多。

    (3)可移植性强:能支持各种32位和64位体系的硬件平台,也能在WindowsLinuxBSDMac OSSolaries等软件平台中运行。

    (4)SQL支持:SQLite支持ANSI SQL92中的大多数标准,提供了对子查询、视图、触发器等机制的支持。

    (5)接口:SQLiteCJavaPHPPython等多种语言提供了API接口,所有的应用程序都必须通过接口访问SQLite数据库。

      1)编译器。编译器由词法分析、语法分析和中间代码生成三个模块组成。其中,词法分析模块和语法分析模块负责检查SQL语句的语法,然后把生成的语法树传递给中间代码生成模块。中间代码生成模块负责生成SQLite引擎可以识别的中间代码。

      2)数据库引擎。数据库引擎是SQLite的核心,负责运行中间代码,指挥数据库的具体操作。

      3)后台。后台由B树、页缓存和系统调用三个模块组成。其中,B树负责维护索引,页缓存负责页面数据的传送,系统调用负责和操作系统交互,最终实现数据库的访问。

    3.SQLite3的下载与使用:

    (1)下载:SQLite3是目前最新的SQLite版本。可以从http://www.sqlite.org/download.html网站上下载SQLite3的源代码。下载完成后,解压到某一盘符下。

    (2)注意:SQLite3支持的基本数据类型主要有以下几类:

    1).NULL------------------blob

    2).INTEGER---------------int

    3).REAL------------------float、double

    4).TEXT------------------char、varchar

    5).NUMERIC---------------其余

    (3)使用:

    1)在Windows平台下,打开Dos窗口,切换到含有刚解压的sqlite3.exe的目录下,输入 sqlite3 -version后回车,出现对应的版本号信息 :


    2)数据库的使用与创建:假设需要使用一个test.db数据库,只需在命令行下输入 “sqlite3 test.db”即可,如果数据库test.db已经存在,则命令“sqlite3 test.db会在当前目录下打开test.db。如果数据库test.db不存在,则命会在当前目录下新建数据库test.db。为了提高效率,sqlite3并不会马上创建test.db,而是等到第一个表创建完成后才会在物理上创建数据库。


    3)数据库的查询:使用“.database”命令可以查询所在在使用的数据库。


    4)表创建:由于SQLite3是弱类型的数据库,所以在create语句中并不要求给出列的类型(当然给出也不错)。另外注意所以的SQL指令都是以分号(;)结尾的。如果遇到两个减号(–)则代表注解,sqlite3会略过去。


    5)数据库的表查询:使用命令“.table”可以查询数据库中的表有哪些。


    6)插入


    7)查询

    查询所有:

         按指定条件查询和查询指定字段:

                            

         模糊查询:

         

    8)更改:


    9)删除:


    10)其他说明:

      a.批量提交数据

         sqlite> begin;

          sqlite> insert into test_table values ('xiaoxue', 'female', 18);

          sqlite> insert into test_table values ('xiaoliu', 'male', 20);

          sqlite> commit;


       b.设置主键,使用命令“paimary key” 

    但是注意:超出所定义的范围和类型是没有关系的

      

       c.模糊查询


    1,% :表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。

    比如 SELECT * FROM [user] WHERE u_name LIKE '%三%'

    将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。

    另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件
    SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%'


    2,_ : 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:

    比如 SELECT * FROM [user] WHERE u_name LIKE '_三_'
    只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的;

    再比如 SELECT * FROM [user] WHERE u_name LIKE '三__';
    只找出“三脚猫”这样name为三个字且第一个字是“三”的;


    3,[ ] :表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。

    比如 SELECT * FROM [user] WHERE u_name LIKE '[张李王]三'
    将找出“张三”、“李三”、“王三”(而不是“张李王三”);

    如 [ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e”
    SELECT * FROM [user] WHERE u_name LIKE '老[1-9]'
    将找出“老1”、“老2”、……、“老9”;

    4,[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。

    比如 SELECT * FROM [user] WHERE u_name LIKE '[^张李王]三'
    将找出不姓“张”、“李”、“王”的“赵三”、“孙三”等;

      

    d.SQLite内置命令:




       见如下常用示例:
       1). 备份和还原数据库。
      --在当前连接的main数据库中创建一个数据表,之后再通过.backup命令将main数据库备份到D:/mydb.db文件中。
     sqlite> CREATE TABLE mytable (first_col integer);
         sqlite> .backup 'D:/mydb.db'
                    sqlite> .exit
                    --通过在命令行窗口下执行sqlite3.exe以重新建立和SQLite的连接。
                    --从备份文件D:/mydb.db中恢复数据到当前连接的main数据库中,再通过.tables命令可以看到mytable表。
                    sqlite> .restore 'D:/mydb.db'
                    sqlite> .tables
                    mytable
        
                    2). DUMP数据表的创建语句到指定文件。
                    --先将命令行当前的输出重定向到D:/myoutput.txt,之后在将之前创建的mytable表的声明语句输出到该文件。
                    sqlite> .output D:/myoutput.txt
                    sqlite> .dump mytabl%
                    sqlite> .exit
                    --在DOS环境下用记事本打开目标文件。
                    D:\>notepad myoutput.txt
        
                    3). 显示当前连接的所有Attached数据库和main数据库。
                    sqlite> ATTACH DATABASE 'D:/mydb.db' AS mydb;
                    sqlite> .databases
                    seq  name               file
                    ---  ---------------  ------------------------
                     0    main
                     2    mydb                D:\mydb.db
        
                     4). 显示main数据库中的所有数据表。
                     sqlite> .tables
                     mytable
        
                     5). 显示匹配表名mytabl%的数据表的所有索引。
                     sqlite> CREATE INDEX myindex on mytable(first_col);
                     sqlite> .indices mytabl%
                     myindex        
        
                      6). 显示匹配表名mytable%的数据表的Schema信息。
                      --依赖该表的索引信息也被输出。
                      sqlite> .schema mytabl%
                      CREATE TABLE mytable (first_col integer);
                      CREATE INDEX myindex on mytable(first_col);
        
                      7). 格式化显示SELECT的输出信息。
                      --插入测试数据
                     sqlite> INSERT INTO mytable VALUES(1);
                     sqlite> INSERT INTO mytable VALUES(2);
                     sqlite> INSERT INTO mytable VALUES(3);    
                     --请注意没有任何设置时SELECT结果集的输出格式。
                     sqlite> SELECT * FROM mytable;
                     1
                     2
                     3    
                      --显示SELECT结果集的列名。
                      --以列的形式显示各个字段。
                      --将其后输出的第一列显示宽度设置为10.
                     sqlite> .header on
                     sqlite> .mode column
                     sqlite> .width 10
                     sqlite> SELECT * FROM mytable;
                     first_col
                     ----------
                      1
                      2
                      3

     e.找不到SQLite3.dll的解决办法

    直接拷贝SQLite3.dll文件到系统目录里:

    Windows NT/2000系统,把这个文件复制到c:\WINNT\System32目录下。
    Windows XP/WIN7系统,把这个文件复制到c:\Windows\System32目录下。
    Windows 95/98/Me系统,把这个文件复制到c:\Windows\System目录下。

    然后打开"开始-运行-输入regsvr32 此文件名称",再按回车错误就得以解决了!

    飞翔小知识:

    动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。DLL 是一个包含可由多个程序同时使用的代码和数据的库。



    展开全文
  • 使用sqlite前,先简单介绍下sqlite数据库好处,1.不需要服务,2.安装本地就可以使用,不需要用户名和密码,详细请百度,哈哈1.首先下载sqlite,进入官网下载下载2个压缩包sqlite-dll-xxx和sqlite-tools-xxx,根据...

          使用sqlite前,先简单介绍下sqlite数据库好处,1.不需要服务,2.安装本地就可以使用,不需要用户名和密码,详细请百度,哈哈

    1.首先下载sqlite,进入官网下载下载2个压缩包sqlite-dll-xxx和sqlite-tools-xxx,根据下载即可,我这里下载的是windows系统下的如图:

    2.然后全部解压到一个目录下,我这里是解压到了D:\sqlite目录下,具体内容如下图:


    3.然后在系统环境变量path后面加上刚才的路径D:\sqlite即可,这就可以使用了,可以在dos窗口下进入D:\sqlite目录下运行sqlite3出现如下图内容即为安装sqlite数据库成功:


    4.退出编辑为.quit或.exit,退出后输入sqlite3 testDB.db为在当前目录下创建testDB.db文件,输入.databases命令后在该目录下就可以看到该数据库文件,现在就可以通过Navicat数据库连接工具链接刚穿件的数据库文件并操作了,步骤如下图:


    之后就可以像mysql一样操作数据库了,最最后是,sqlite数据库在项目专用的链接方式如下:

    # sqlitespring.datasource.test.url=jdbc:sqlite:/sqlite/config.db
    spring.datasource.test.username=
    spring.datasource.test.password=
    #spring.datasource.test.driver-class-name=org.sqlite.JDBC

    但是sqlite的jar是下面这个

    <dependency>
       <groupId>org.xerial</groupId>
       <artifactId>sqlite-jdbc</artifactId>
       <version>3.21.0.1</version>
    </dependency>

    展开全文
  • SQLite数据库的创建和使用(菜鸟篇)

    万次阅读 多人点赞 2018-08-02 15:53:13
    sqlite sqlite Expert Professianal 数据库创建
  • 【Android】AndroidStudio3.0+保存并查看SQLite数据库文件

    万次阅读 多人点赞 2020-06-14 19:59:59
    吐槽一下: 我从知乎、简书、CSDN、掘金、GitHub搜遍了,方法是有,可是那个软件收费。于是迫不得已,我就趁着月黑风高,翻过墙头,Google了一下,也是,找了老半天,要么是我关键词用的不对,要么就是那些大神们...
  • 【Android】SQLite数据库基本用法详解(极简洁)

    万次阅读 多人点赞 2020-06-14 19:58:24
    Android操作SQLite数据库(极简洁,极易懂) 本篇源码地址: https://github.com/littlecurl/AppProjects 源代码里面有详细注释,切记要修改一下gradle的版本号为本地gradle版本号,否则AndroidStduio会自行下载...
  • SQLite数据库

    千次阅读 2018-10-29 13:34:13
    SQLite数据库 SQLite3基本介绍 SQLite是一个遵守ACID(原子性、一致性、隔离性和持久性)的关系型数据库。SQLite不像常见的客户端\服务端结构的数据库,它将整个数据库作为一个单独的、可跨平台使用的文件存储在主机...
  • Sqlite3小结(小型数据库中增删改查的操作)

    万次阅读 多人点赞 2018-11-22 16:31:32
    说一点:学习的话还是要用印象笔记~没有为什么~:数据库浅学 一、数据库简介 1、数据库简介  数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。  在信息化社会,充分有效地管理和利用各类信息...
  • 使用SQLite作为内存数据库

    千次阅读 2018-07-09 23:39:04
    https://sqlite.org/inmemorydb.html
  • SQLite数据库的查看

    千次阅读 2019-02-16 14:11:31
    adb shell:在cmd中进入adb工具 进入相应地址,一般在/data/data/包名/databases/ ls:查看该目录下的文件 ...sqlite3 数据库名.db:打开数据库 .table:查看数据库下的表 .schema:查看建表语句...
  • sqlite数据库查看里面数据库版本号

    万次阅读 2018-02-08 13:13:07
  • 远程访问sqlite数据库问题

    万次阅读 2015-09-08 11:25:21
    问题:sqlite文件数据库存储在B计算机上,现在需要在A计算机上通过程序访问sqlite数据库,并且,A与B在同一个局域网中?如何操作? 解决方式一:在B计算机上写一个访问sqlite的服务器,启动一直运行,在A计算机上写...
  • 几款流行的SQLite图形用户界面工具

    万次阅读 2019-01-09 10:54:24
    您是否在寻找一个用于管理SQLite数据库的图形用户界面(GUI)工具?下面是一些流行的SQLite GUI工具列表。 SQLite Database Browser SQLite Database browser 是一个免费、开源的SQLite 数据库的轻量级 GUI 客户端...
  • sqlite数据库的导出与导入

    千次阅读 2017-12-28 12:06:37
    一,在sqlite数据库的shell 操作: 1,导出数据库某个表: .output table_name.sql .dump table_name 如果是导出全部表: 直接 .dump 2,导入数据表: .read table_name.sql 二,python 脚本: 1,导出...
  • 1、SQLite Expert Professional http://www.sqliteexpert.com/ 2、SQLiteStudio https://sqlitestudio.pl/index.rvt-- 目前最新版是v3.2.1绿色版,Qt写的,推荐使用 ...
  • 需要先安装工具:Navicat Premium (支持MySQL、Oracle、PostgreSQL、SQLite 及 SQL Serve 的数据库管理工具) 第一步:先把mysql导出成txt文件 记住“包含列表的标题” 复选框要勾选, 否则生成的txt没有键...
  • sqlite 从不同数据库复制表

    千次阅读 2014-07-26 14:50:15
    先打开目标数据库 > sqlite3 target.db 连接 >
  • Sqlite3修复数据库

    万次阅读 2013-12-24 18:07:14
    有的时候sqlite3数据库会损坏,使用的时候提示:sqlite3 disk image malformat,这个时候,如何恢复数据呢?解决方法:首先去下载sqlite3的命令行工具http://www.sqlite.org/download.html再执行命令行命令,将你的...
  • 5 个免费的受欢迎的 SQLite 管理工具

    万次阅读 2018-06-29 16:29:33
    SQLite Expert – Personal...SQLite Expert 可以让用户管理 SQLite3 数据库并支持在不同数据库间诸如复制、粘贴记录和表;完全支持 Unicode ,编辑器支持皮肤。更多关于 SQLite Expert 个人版的信息请看 这里Sqlit...
1 2 3 4 5 ... 20
收藏数 152,027
精华内容 60,810
关键字:

sqlite数据库