博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQLite第一课 sqlite3.exe使用教程
阅读量:6642 次
发布时间:2019-06-25

本文共 1717 字,大约阅读时间需要 5 分钟。

1).open 打开数据库

例子:

sqlite> .open test.db

注意:>后面有点

2) .tables 查看数据库包含的表名

例子:

sqlite> .tables

注意:>后面有点

3) .schema 查看数据库中所有的表的结构

例子:

sqlite> .schema students

注意:>后面有点

4) 执行sql语句

例子:

sqlite> select * from students where StudentID = 3 ;

注意:调用sql之前,可以设置输出的结果格式

-显示SELECT结果集的列名。

--以列的形式显示各个字段。

--将其后输出的第一列显示宽度设置为10.

sqlite> .header on

sqlite> .mode column

sqlite> .width 10

5).exit 退出

6) .explain 准备显示SQL语句转换成VDBC机器码的语句

例子如下:

sqlite> .explain

sqlite> EXPLAIN select * from students ;

7)在上面的基础上,如果调用了.explain

可以查看简单的如下的细节,目前需要等到翻译了英文版本才能够理解

sqlite> .explain 

sqlite> EXPLAIN QUERY PLAN select * from students;


sele  order  from data

 0      0     0    SCAN TABLE students 


当然,我在下面的网站上看到了对students表创建索引,之后产生的不同:

摘自:http://blog.itpub.net/16900201/viewspace-1291550/

sqlite> create index student_index on students(StudentID);

sqlite> EXPLAIN QUERY PLAN select * from student where StudnetID = 1;

结果显示如下:

sele  order  from data

 0      0     0    SEARCH TABLE student USING INDEX student_index(StudentID= ?)

综上所述,该语句说明了数据是如何查询的,当然了只有建立索引的时候,才有效,这里我们可以大胆的断言:实际上,如果数据库不建立索引,其实就是扫描整一个数据库的表记录,如果建立了索引就会搜索索引,这个话题将会在以后的文章中,进行详细的分析说明,并且从源码角度如何正确建立索引,而且是在多个列上建立聚簇索引。

    如下是一些简单的探索:

1)数据库并没有保存student_index这张表,至于保存在什么地方等待探索!!

Error:no such table student_index;


2)索引是否记录了对应数据块的编号,来加快搜索,保存的结构是什么??


update别名问题:

目前测试过程中,发现sqlite是不支持在update中使用别名,例如:

update task as t set t.state = 4  where t.taskID = 65

说明在执行sql语句的时候需要相当注意



注意事项

SQLite数据库保存的内容编码格式可能是UTF-8或者GBK编码,直接启动sqlite.exe程序读取数据库的内容,目前读取GBK编码的时候,显示中文乱码

解决方案:很多用户希望能够在控制台下输入中文,必须使用指令chcp 936,切换到GBK编码格式,才能够正常输入

    2)目前查看UTF-8编码的数据库文件,使用指令chcp 65001,切换到UTF-8编码字符集

    3)进入到sqlite.exe程序的目录,启动sqlite.exe,这个时候正常显示UTF-8数据库内容

    4)如果数据库内容是GBK编码,可以使用chcp 936。

     本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1956636,如需转载请自行联系原作者

你可能感兴趣的文章
SkyLine二次开发——解决在web页面启动时自动运行TerraExplorer的问题
查看>>
[转载]我们可以用SharePoint做什么
查看>>
ubuntu 16.04 安装Opencv-3.2.0_GPU 与 opencv_contrib-3.2.0
查看>>
ldap信息交互未完成
查看>>
输出word EXCEL xml html处理---H_print.php
查看>>
【python】安装Python 的IDE--PyCharm
查看>>
【js 方法】js 页面刷新location.reload和location.replace的区别 【转】
查看>>
一个单元测试 学习 aysnc await
查看>>
intellij 创建java web项目(maven管理的SSH)
查看>>
如何将字段中带逗号的SQLite数据库数据导入到MySQL
查看>>
动态规划复习-HDU1159
查看>>
Explain Hello1.java
查看>>
聊天室
查看>>
移动端学习笔记(三)
查看>>
ubuntu下搭建svn服务器
查看>>
Grid保存之后设置某列不可编辑
查看>>
项目中常用的MySQL优化方法--壹拾玖条
查看>>
Git分布式版本控制遇到的问题&如何把本地的项目上传到码市上
查看>>
Java jsoup多线程爬虫(爬豆瓣图书封面)
查看>>
访问百度的过程
查看>>