`
lizhuang
  • 浏览: 903764 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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 指跳过多少行数据
分享到:
评论

相关推荐

    SQLite权威指南(第2版)

    创建和管理数据库文件,定义表结构,以及操作数据的基本SQL语句(如CREATE、INSERT、SELECT、UPDATE、DELETE)是SQLite入门的基础。 2. **事务处理**:SQLite支持ACID(原子性、一致性、隔离性和持久性)事务,确保...

    SQLite权威指南 中文 doc版

    第2章“入门”会引导读者了解如何安装SQLite,创建数据库,以及进行基本的数据库操作,包括数据的插入、查询、更新和删除。这部分内容可能包含了一些简单的SQL语法和命令行工具的使用方法。 第3章“关系模型”讲解...

    SQLite入门资料大全

    我自己寻找整理的SQLite资料,希望对大家有帮助。清单如下: Android 数据库技术 sqlite3-基础教程 sqlite3使用详解 sqlite命令行手册(中文) ...SQLite入门与分析 SQLite数据库文件格式全面分析

    SQLite权威指南 chm

    1. **SQLite入门知识**:这部分内容将引导读者了解SQLite的基本概念,包括SQLite的安装、数据库的创建和打开、数据类型、事务处理以及错误处理等。读者将学会如何在各种平台(如Windows、Linux、iOS和Android)上...

    sqlite3权威指南_v100.pdf

    ### SQLite权威指南_v100.pdf 知识点解析 #### 标题解析 - **标题**: “sqlite3权威指南_v100.pdf” - **解析**: 该标题表明文档是一份关于SQLite3的权威指南,版本为v100。其中,“sqlite3”指的是SQLite的第三个...

    sqlite入门学习教程

    这个教程比官方的指南要容易理解得多,大家交流学习,共进步

    SQLite大全

    android-database sqlite3-基础教程 sqlite3使用详解 SQLite权威指南 ...SQLite入门与分析 SQLite数据库文件格式全面分析 The Definitive Guide to SQLite The Definitive Guide to SQLite Second Edition

    SQLite快速入门指南

    SQLite 是一个轻量级的开源数据库系统,特别适合于嵌入式环境,无需单独的服务器进程,可以直接在应用程序中使用。它的设计目标是简洁、高效、可移植,并且支持 SQL 语言。SQLite 提供了一个自包含的、无管理的、...

    SQLite的权威指南

    《SQLite的权威指南》一书,由Michael Owens编写,是深入学习SQLite的经典著作。 书中介绍了SQLite的方方面面,从基础的入门知识到高级的系统架构设计,涵盖了大量的操作细节和高级功能。本书共分为多个章节,每个...

Global site tag (gtag.js) - Google Analytics