使用技巧如下:
打开一个已有的数据库,比如当前文件夹下面的cache.db
平时使用官方提供的sqlite3.exe工具来操作 sqlite的数据库 进入管理:
>.databases//显示所有数据库
>.tables //显示数据库中所有的表
>.schema tablename//显示表格结构 和mysql的 SHOW Create TABLE tbl_name
>.output f:test.sql//导出当前数据库的 sql语句 和mysql的 mysqldump
>.dump
>.import f:test.sql//导入 //mysql 用source
------------------------
导入 命令: .import sqlite> .import 文件名 表名 注1: 不要忘了开头的点 注2: 这条语句不能用分号结束. 非SQL不需要分号结束. 注3: 需要查看默认的分隔符separator. 必须一致. 如果不一致可能导致sqlite字段分割错误. 查看分隔符使用命令 .show,如果不一致可直接修改,比如: sqlite>.separator "," 将分隔符转为逗号.
SQLite的简单使用
1 建立数据库
C:sqlite> sqlite3.exe dbname.db
sqlite3.exe后面跟数据库文件名
2 创建数据表
sqlite> create table users(userid varchar(20) PRIMARY KEY,...> age int,...> birthday datetime);
3 添加记录
insert into users values('wang',20,'1989-5-4');
insert into users values('li',22,'1987-11-16');
4 查询记录
select * from users order by birthday;
5 删除记录
delete from users where userid='wang';
6 退出sqlite
sqlite> .exit
SQLite数据库的数据结构是存贮在 "sqlite_master" 表中
具体命令可以输入 .help查看或参考帮助文档
sqlite详细使用:
(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, email TEXT NOT NULL DEFAULT '' COLLATE NOCASE,51); font-family:Arial; font-size:14px; line-height:26px"> (19)查询 SELECT DISTINCT heading FROM tables WHERE predicate GROUP BY columns HAVING predicate ORDER BY columns LIMIT count,offset;
(20)Limit和Offset关键字 Limit 指返回记录的最大行数 Offset 指跳过多少行数据 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|