设为首页 收藏本站
查看: 1161|回复: 0

[经验分享] sqlite命令使用

[复制链接]

尚未签到

发表于 2016-11-28 11:32:28 | 显示全部楼层 |阅读模式
sqlite 学习
  SQLite的简单使用
  3.1 建立数据库

C:\sqlite> sqlite3.exe dbname.db
  sqlite3.exe后面跟数据库文件名
  3.2 创建数据表

sqlite> create table users(userid varchar(20) PRIMARY KEY,
...> age int,
...> birthday datetime);
  3.3 添加记录

insert into users values('wang',20,'1989-5-4');
insert into users values('li',22,'1987-11-16');
  3.4 查询记录

select * from users order by birthday;
  3.5 删除记录

delete from users where userid='wang';
  3.6 退出sqlite

sqlite> .exit
  SQLite数据库的数据结构是存贮在 "sqlite_master" 表中
  具体命令可以输入 .help查看或参考帮助文档
  sqlite 表结构和数据的导出
  全部导出

sqlite3 data.db

>.output dd.sql

>.dump
  导出表结构
  .output dd.sql
  .schema


全部导入

sqlite3 mydb.db

>.read dd.sql


平时使用官方提供的sqlite3.exe工具来操作 sqlite的数据库

进入管理:

sqlite3.exe d:\test.db //假设数据是 d:\test.db

>.databases //显示所有数据库 和 mysql的 show databases; 

>.tables //显示当前数据库的表格 和 mysql 的show tables; 

>.schema tablename; //显示表格结构 和mysql的 SHOW Create TABLE tbl_name

>.output c:\\1.sql //导出当前数据库的 sql语句 和mysql的 mysqldump

>.dump

>.import c:\\1.sql //导入 //mysql 用source

===================

导入

命令: .import

sqlite> .import 文件名 表名

注1: 不要忘了开头的点

注2: 这条语句不能用分号结束. 非SQL不需要分号结束.

注3: 需要查看默认的分隔符separator. 必须一致. 如果不一致可能导致sqlite字段分割错误.

查看分隔符使用命令 .show , 如果不一致可直接修改, 比如:

sqlite>.separator ","

将分隔符转为逗号.

举例1:

将文件a.csv中的数据导入表 tab_xx. (a.csv中字段以逗号分割)

sqlite> .separator ","

sqlite> .import a.csv tab_xx

sqlite>

导入结束.


导出

实现方式: 将输出重定向至文件.

命令: .output

sqlite> .output a.txt

然后输入sql语句, 查询出要导的数据. 查询后,数据不会显示在屏幕上,而直接写入文件.

结束后,输入

sqlite> .output stdout

将输出重定向至屏幕.

举例2:

将 tab_xx 中的数据导出到文件a.txt

sqlite> .output a.txt

sqlite> select * from tab_xx;

sqlite> .output stdout

导出完毕.
  (1)创建数据库

在命令行中切换到sqlite.exe所在的文件夹

在命令中键入sqlite3 test.db;即可创建了一个名为test.db的数据库

由于此时的数据库中没有任何表及数据存在,这时候是看不到test.db的,必须往里面插入一张表即可看到数据库

  (2)创建表

create table Test(Id Integer primary key, value text);

此时即可完成表的创建,当把主键设为Integer时,则该主键为自动增长,插入数据时,可直接使用如下语句:

insert into Test values(null,'Acuzio');

  (3)获取最后一次插入的主键: select last_insert_rowid();
  (4)sqlite>.mode col

sqlite>.headers on

在数据库查询的时候,显示行数和头!

  (5)在DOS中,键入Ctrl+C,退出数据库,Unix中,使用Ctrl+D
  (6)SQLite Master Table Schema

-----------------------------------------------------------------

Name Description

-----------------------------------------------------------------

type The object’s type (table, index, view, trigger)

name The object’s name

tbl_name The table the object is associated with

rootpage The object’s root page index in the database (where it begins)

sql The object’s SQL definition (DDL)

  eg.

sqlite> .mode col

sqlite> .headers on

sqlite> select type, name, tbl_name, sql from sqlite_master order by type;

这样就能看到所有数据库中的信息,表、索引、视图等等

  (7)导出数据

.output [filename],导出到文件中,如果该文件不存在,则自动创建

.dump 导出数据命令

.output stdout 返回输出到屏幕(进行其他操作)

  eg.

sqlite>.output Acuzio.sql

sqlite>.dump

sqlite>.output stdout

这样就可以把数据导入到Acuzio.sql中

  (8)导入数据

导入数据使用.read命令

eg.

如导入(7)中的数据

sqlite>.read Acuio.sql

  (9)备份数据库

在切换到Sqlite文件夹

sqlite3 test.db .dump > test.sql

如果在数据库中

sqlite> .output file.sql

sqlite> .dump

sqlite> .exit

  (10)导入数据库

在切换到Sqlite文件夹

sqlite3 test.db < test.sql

  (11)备份二进制格式数据库,vacuum:释放掉已经被删除的空间(数据和表等被删除,不会被清空空间)

sqlite3 test.db VACUUM

cp test.db test.backup

  (12)获取数据库信息

如果想获得物理数据库结构的信息,可以去SQLite网站上下载SQLite Analyzer工具

使用: sqlite3_analyzer test.db

  (13)其他的SQLite工具

SQLite Database Browser (http://sqlitebrowser.sourceforge.net)

SQLite Control Center (http://bobmanc.home.comcast.net/sqlitecc.html)

SQLiteManager (www.sqlabs.net/sqlitemanager.php)

  (13)SQLite 与其他数据库不同,它是以(;)来执行语句,而不是(go).
  (14)SQLite注释(--)或(/* */)

eg.

-- This is a comment on one line

/* This is a comment spanning

two lines */

  (15)创建表结构
  CREATE [TEMP|TEMPORARY] TABLE table_name (column_definitions [, constraints]);
  关键字TEMP、TEMPORARY表示创建的是临时表
  (16)在SQLite中有5种基本类型:

Integer/Real/Text/Blob/Null

  (17)确保唯一性可以用关键字UNIQUE

eg.

CREATE TABLE contacts ( id INTEGER PRIMARY KEY,

name TEXT NOT NULL COLLATE NOCASE,

phone TEXT NOT NULL DEFAULT 'UNKNOWN',

UNIQUE (name,phone) );

  (18)修改表

ALTER TABLE table { RENAME TO name | ADD COLUMN column_def }

eg.

sqlite> ALTER TABLE contacts

ADD COLUMN email TEXT NOT NULL DEFAULT '' COLLATE NOCASE;

sqlite> .schema contacts

CREATE TABLE contacts ( id INTEGER PRIMARY KEY,

name TEXT NOT NULL COLLATE NOCASE,

phone TEXT NOT NULL DEFAULT 'UNKNOWN',

email TEXT NOT NULL DEFAULT '' COLLATE NOCASE,

UNIQUE (name,phone) );

  (19)查询

SELECT DISTINCT heading FROM tables WHERE predicate

GROUP BY columns HAVING predicate

ORDER BY columns LIMIT count,offset;

  (20)Limit和Offset关键字

Limit 指返回记录的最大行数

Offset 指跳过多少行数据

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-306682-1-1.html 上篇帖子: SQLite简单使用 下篇帖子: sqlite入门指南
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表