SQLite数据库管理相关命令的使用介绍

时间:2024-01-27 12:41:00 

1.创建数据库

启动命令行,通过输入如下命令打开Shell模式的CLP:

sqlite3 test.db

虽然我们提供了数据库名称,但如果该数据库不存在,SQLite实际上就未创建该数据库,直到在数据库内部创建一些内容时,SQLite才创建该数据库。

2.创建数据表

sqlite> create table Member(id integer primary key, name text, age integer,addr text);

注:id为主键,该列默认具备自动增长的属性。

3.插入数据

sqlite> insert into Member values(0,'wwl',21,'上海');//id=0的列必须不存在,否则会出错

或者sqlite> insert into Member(name,age,addr) values('wwl',21,'上海');

3.查询数据

sqlite>.mode column

sqlite>.headers on

sqlite> select * from Member;

注:select语句前面的两个命令(.headers和.mode)用于改善显示格式,可以不要。

4.创建视图和索引

sqlite> create view schema as select * from Member;

sqlite> create index Member_Idx on Member(id)

5.导出数据

使用.dump命令可以将数据库对象导出成SQL格式。不带任何参数时,.dump将整个数据库导出为数据库定义语言(DDL)和数据库操作语言(DML)命令,适合重新创建数据库对象和其中的数据。如果提供了参数,Shell将参数解析作为表名或视图,导出任何匹配给定参数的表或视图,那些不匹配的将被忽略。

默认情况下.dump 命令的输出定向到屏幕。如:.dump

如果要将输出重定向到文件,请使用.dump[filename]命令,此命令将所有的输出重定向到指定的文件中。若要恢复到屏幕的输出,只需要执行.output stdout命令就OK了。

     sqlite>.output file.sql

sqlite>.dump

sqlite>.output stdout

注:如果file.sql不存在,将在当前工作目录中创建该文件。如果文件存在,它将被覆盖。

6.导入数据

有两种方法可以导入数据,用哪种方法取决于要导入的文件格式。如果文件由SQL语句构成,可以使用.read命令导入文件中包含的命令。如果文件中包含由逗号或其他分隔符分割的值(comma-swparated values,CSV)组成,可使用.import[file][table]命令,此命令将解析指定的文件并尝试将数据插入到指定的表中。

.read命令用来导入.dump命令创建的文件。如果使用前面作为备份文件所导出的file.sql,需要先移除已经存在的数据库对象,然后用下面的方法重新导入:

sqlite>drop table Member;

sqlite>drop view schema;

sqlite>.read file.sql

7.备份数据库

有两种方式可以完成数据库的备份,具体使用哪一种取决于你希望的备份类型。SQL转储许是移植性最好的备份。

生成转储的标准方式是使用CLP.dump命令:sqlite3 test.db .dump >test.sql

在Shell中,可以将输出重定向到外部文件,执行命令,恢复到屏幕输出,如:

sqlite>.output file.sql

sqlite>.dump

sqlite>.output stdout

sqlite>.exit

同样,容易将SQL转储作为CLP的输入流实现数据库导入:

sqlite3 test.db <test.sql

备份二进制数据库知识比复制文件稍多做一点工作。备份之前需要清理数据库,这样可以释放一些已删除对象不再使用的空间。这数据库文件就会变小,因此二进制的副本也会较小:

sqlite3 test.db vacuum

cp test.db test.Backup

8.其它命令

sqlite>select last_insert_rowid();//获得最后插入的自动增长量值

sqlite>.tabes//返回所有的表和视图

sqlite>.indices Member//查看一个表的索引

sqlite>.schema Member //得到一个表或视图的定义(DDL)语句,如果没有提供表名,则返回所有数据库对象(table,view,index,triger)的定义语句

标签:sqlite数据库
0
投稿

猜你喜欢

  • 一篇文章带你了解python标准库--sys模块

    2022-04-25 10:21:37
  • mysql错误处理之ERROR 1665 (HY000)

    2024-01-21 12:16:54
  • PyTorch中clone()、detach()及相关扩展详解

    2022-06-29 17:50:34
  • 6G数据库的导入 报各种错误的解决办法

    2024-01-28 09:58:22
  • 浅谈Python数学建模之整数规划

    2021-12-01 18:26:07
  • Python PyInstaller库基本使用方法分析

    2022-03-19 16:29:46
  • MySQL取消了Query Cache的原因

    2024-01-20 19:57:30
  • Python3离线安装Requests模块问题

    2021-05-06 09:58:24
  • 几个ASP字符串处理函数

    2008-04-23 12:55:00
  • python中类变量与成员变量的使用注意点总结

    2022-01-08 03:39:51
  • 操作mysql数据库的类

    2010-03-13 12:53:00
  • 详解如何在Vue3使用<script lang=“ts“ setup>语法糖

    2024-04-27 16:00:29
  • 浅谈Python中的闭包

    2022-03-08 06:18:31
  • Python中的 enum 模块源码详析

    2021-11-19 04:11:10
  • 高效使用Python字典的清单

    2022-05-29 09:53:35
  • 从零学python系列之从文件读取和保存数据

    2021-02-11 01:51:29
  • 简单谈谈python中的Queue与多进程

    2021-06-13 04:16:45
  • win10系统配置GPU版本Pytorch的详细教程

    2023-07-21 19:30:38
  • python 递归深度优先搜索与广度优先搜索算法模拟实现

    2022-10-03 12:51:59
  • selenium跳过webdriver检测并模拟登录淘宝

    2023-06-14 18:22:52
  • asp之家 网络编程 m.aspxhome.com