SQLite 学习笔记(一)

SQLite 学习笔记(一),第1张

概述原文:http://www.cnblogs.com/Acuzio/archive/2008/09/09/1287958.html (1)创建数据库    在命令行中切换到sqlite.exe所在的文件夹    在命令中键入sqlite3 test.db;即可创建了一个名为test.db的数据库    由于此时的数据库中没有任何表及数据存在,这时候是看不到test.db的,必须往里面插入一张表即可看

原文:http://www.cnblogs.com/Acuzio/archive/2008/09/09/1287958.html

(1)创建数据库@H_502_6@ 在命令行中切换到sqlite.exe所在的文件夹@H_502_6@ 在命令中键入sqlite3 test.db;即可创建了一个名为test.db的数据库@H_502_6@ 由于此时的数据库中没有任何表及数据存在,这时候是看不到test.db的,必须往里面插入一张表即可看到数据库

(2)创建表@H_502_6@ create table Test(ID Integer primary key,value text);@H_502_6@ 此时即可完成表的创建,当把主键设为Integer时,则该主键为自动增长,插入数据时,可直接使用如下语句:@H_502_6@ insert into Test values(null,'Acuzio');

(3)获取最后一次插入的主键: select last_insert_rowID();

(4)sqlite>.mode col@H_502_6@ sqlite>.headers on@H_502_6@ 在数据库查询的时候,显示行数和头!

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

(6)sqlite Master table Schema@H_502_6@ -----------------------------------------------------------------@H_502_6@ name Description@H_502_6@ -----------------------------------------------------------------@H_502_6@ type The object’s type (table,index,vIEw,trigger)@H_502_6@ name The object’s name@H_502_6@ tbl_name The table the object is associated with@H_502_6@ rootpage The object’s root page index in the database (where it begins)@H_502_6@ sql The object’s sql deFinition (DDL)

eg.@H_502_6@ sqlite> .mode col@H_502_6@ sqlite> .headers on@H_502_6@ sqlite> select type,name,tbl_name,sql from sqlite_master order by type;@H_502_6@ 这样就能看到所有数据库中的信息,表、索引、视图等等

(7)导出数据@H_502_6@ .output [filename],导出到文件中,如果该文件不存在,则自动创建@H_502_6@ .dump 导出数据命令@H_502_6@ .output stdout 返回输出到屏幕(进行其他 *** 作)

eg.@H_502_6@ sqlite>.output Acuzio.sql@H_502_6@ sqlite>.dump@H_502_6@ sqlite>.output stdout@H_502_6@ 这样就可以把数据导入到Acuzio.sql中

(8)导入数据@H_502_6@ 导入数据使用.read命令@H_502_6@ eg.@H_502_6@ 如导入(7)中的数据@H_502_6@ sqlite>.read Acuio.sql

(9)备份数据库@H_502_6@ 在切换到sqlite文件夹@H_502_6@ sqlite3 test.db .dump > test.sql@H_502_6@ 如果在数据库中@H_502_6@ sqlite> .output file.sql@H_502_6@ sqlite> .dump@H_502_6@ sqlite> .exit

(10)导入数据库@H_502_6@ 在切换到sqlite文件夹@H_502_6@ sqlite3 test.db < test.sql

(11)备份二进制格式数据库,vacuum:释放掉已经被删除的空间(数据和表等被删除,不会被清空空间)@H_502_6@ sqlite3 test.db VACUUM@H_502_6@ cp test.db test.backup

(12)获取数据库信息@H_502_6@ 如果想获得物理数据库结构的信息,可以去sqlite网站上下载sqlite Analyzer工具@H_502_6@ 使用: sqlite3_analyzer test.db

(13)其他的sqlite工具@H_502_6@ sqlite Database browser (http://sqlitebrowser.sourceforge.net)@H_502_6@ sqlite Control Center (http://bobmanc.home.comcast.net/sqlitecc.HTML)@H_502_6@ sqliteManager (www.sqlabs.net/sqlitemanager.PHP)

(13)sqlite 与其他数据库不同,它是以(;)来执行语句,而不是(go).

(14)sqlite注释(--)或(/* */)@H_502_6@ eg.@H_502_6@ -- This is a comment on one line@H_502_6@ /* This is a comment spanning@H_502_6@ two lines */

(15)创建表结构

CREATE [TEMP|TEMPORARY] table table_name (column_deFinitions [,constraints]);

关键字TEMP、TEMPORARY表示创建的是临时表

(16)在sqlite中有5种基本类型:@H_502_6@ Integer/Real/Text/Blob/Null

(17)确保唯一性可以用关键字UNIQUE@H_502_6@ eg.@H_502_6@ CREATE table contacts ( ID INTEGER PRIMARY KEY,@H_502_6@ name TEXT NOT NulL ColLATE NOCASE,@H_502_6@ phone TEXT NOT NulL DEFAulT 'UNKNowN',@H_502_6@ UNIQUE (name,phone) );

(18)修改表@H_502_6@ ALTER table table { REname TO name | ADD ColUMN column_def }@H_502_6@ eg.@H_502_6@ sqlite> ALTER table contacts@H_502_6@ ADD ColUMN email TEXT NOT NulL DEFAulT '' ColLATE NOCASE;@H_502_6@ sqlite> .schema contacts@H_502_6@ CREATE table contacts ( ID INTEGER PRIMARY KEY,@H_502_6@ email TEXT NOT NulL DEFAulT '' ColLATE NOCASE,239)"> (19)查询@H_502_6@ SELECT disTINCT heading FROM tables WHERE predicate@H_502_6@ GROUP BY columns HAVING predicate@H_502_6@ ORDER BY columns liMIT count,offset;

(20)limit和Offset关键字 limit 指返回记录的最大行数 Offset 指跳过多少行数据

总结

以上是内存溢出为你收集整理的SQLite 学习笔记(一)全部内容,希望文章能够帮你解决SQLite 学习笔记(一)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1172585.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存