国语自产精品视频在线看:您身边最放心的安全下载站! 最新软件|热门排行|软件分类|软件专题|厂商大全

国语自产精品视频在线看

技术教程
您的位置:首页数据库类Access → SQLite数据库管理的相关命令

SQLite数据库管理的相关命令

我要评论 2012/12/10 22:05:50 来源:国语自产精品视频在线看 编辑:zbbingyang.com [ ] 评论:0 点击:325次

SQLite 是一个类似Access的轻量级数据库系统,但是更【dàn shì gèng】🌎小👟、更快、容量更【róng liàng gèng】大,并发更高【gāo】🌏。为什么说 SQLite 最适合做 CMS (内容管🖐理系统【lǐ xì tǒng】)呢【ne】?并不是【bìng bú shì】说其他数据库不好【bú hǎo】👶, Oracle、MySQL、SQLServer 也都是非常优🛃秀的【xiù de】 DBS,只不过他们设【tā men shè】计目标🚪不同【bú tóng】🉑,特性不同【bú tóng】🉑,所以只【suǒ yǐ zhī】有更适⛽用某个👙应用场景🛬,没有绝💬对的好坏之分。

SQLite的技术【de jì shù】⛳特点【tè diǎn】:

SQLite 对💰 SQL92 标准的支持包【zhī chí bāo】☔括索引【kuò suǒ yǐn】🌵、限制【xiàn zhì】🦉、触发和查看。SQLite 不支持外键限🎳制【zhì】🦉,但支持原子的、一致的、独立和【dú lì hé】持久 (ACID) 的事务📿(后面会提供有🌉关🍨 ACID 的更多【de gèng duō】📆信息)。这意味【zhè yì wèi】🔊着事务是原子的,因为它们要么【men yào me】完全执【wán quán zhí】🔵行🆖,要么根【yào me gēn】🍵本不执【běn bú zhí】行🆖。事务也是一致✳的,因为在不一致的状态【de zhuàng tài】中,该数据【gāi shù jù】♎库从未【kù cóng wèi】♑被保留【bèi bǎo liú】。事务还🤜是独立【shì dú lì】 的,所以【suǒ yǐ】,如果在同一时间在同【jiān zài tóng】一数据【yī shù jù】🏤库上有🌴两个执行🆖操作的【cāo zuò de】事务📿,那么这两个事务是互不干扰🍤的。而且事【ér qiě shì】务是持久性的📋,所以【suǒ yǐ】,该数据【gāi shù jù】♎库能够🚱在崩溃和断电时幸免【shí xìng miǎn】 于难,不会丢【bú huì diū】失数据【shù jù】或损坏。SQLite 通过数据【shù jù】库级上的独🏥占性和🙊共享锁定【dìng】来实现独立【xiàn dú lì】🛹事务处🎟理。这意味【zhè yì wèi】🔊着当多【zhe dāng duō】个进程【gè jìn chéng】和线程可以在🚀同一时间从同【jiān cóng tóng】一数据【yī shù jù】🏤库读取数据【shù jù】,但只有一个可以写入数据【shù jù】。在某个进 程或线🎩程向数👁据库执行🆖写入操作之前【zuò zhī qián】,必须获得独占锁【dú zhàn suǒ】🐥定【dìng】。在发出独占锁【dú zhàn suǒ】🐥定后【dìng hòu】,其他的🤽读或写【dú huò xiě】操作将不会再👚发生😨。

1.创建数【chuàng jiàn shù】据库

启动命令行【lìng háng】🔁,通过输【tōng guò shū】入如下命令打开🍄Shell模式的【mó shì de】👈CLP:

sqlite3 test.db

虽然我🐼们提供了数据库【shù jù kù】🐲名称,但如果该数据【gāi shù jù】库【kù】🐲不存在,SQLite实际上就未创建该数【jiàn gāi shù】据库【jù kù】🐲,直到在【zhí dào zài】🔣数据库【shù jù kù】🐲内部创👠建一些内容时📴,SQLite才创建【cái chuàng jiàn】该数据【gāi shù jù】库【kù】🐲。

2.创建数据表

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

注【zhù】:id为主键,该列默【gāi liè mò】认具备【rèn jù bèi】自动增💣长的属🎓性👩。

3.插入数据

sqlite> insert into Member values(0,'wwl',21,'上海');//id=0的列必【de liè bì】🍁须不存在,否则会【fǒu zé huì】🚵出错

或者【huò zhě】⏫sqlite> insert into Member(name,age,addr) values('wwl',21,'上海');

4.查询数据

sqlite>.mode column

sqlite>.headers on

sqlite> select * from Member;

注【zhù】:select语句前【yǔ jù qián】面的两🥃个命令😎(.headers和.mode)用于改【yòng yú gǎi】善显示格式,可以不🎨要。

5.创建视图和索引

sqlite> create view schema as select * from Member;

sqlite> create index Member_Idx on Member(id)

6.导出数据

使用.dump命令【mìng lìng】可以将数【yǐ jiāng shù】据库🥏对象导【duì xiàng dǎo】出成【chū chéng】SQL格式😎。不带任🔆何参数【shù】时,.dump将整个【jiāng zhěng gè】数【shù】据库🥏导出为📋数【shù】据库🥏定义语言🈵(DDL)和数【shù】据库🥏操作语言🈵(DML)命令【mìng lìng】,适合重新创建数【shù】据库🥏对象和其中的数【shù】据🙎。如果提供了参【gòng le cān】🈳数【shù】,Shell将参数【shù】解析作【jiě xī zuò】为表名🌑或视图【huò shì tú】,导出任何匹配【hé pǐ pèi】⤵给定参数【shù】的表或视图【huò shì tú】,那些不🔲匹配的【pǐ pèi de】将被忽【jiāng bèi hū】略【luè】🎋。

默认情【mò rèn qíng】🐗况下.dump 命令的输出定【shū chū dìng】向到屏🎁幕【mù】🎼。如:.dump

如果要【rú guǒ yào】将输出⛏重定向【chóng dìng xiàng】到文件🅿,请使用.dump[filename]命令,此命令【cǐ mìng lìng】👤将所有🏣的输出重定向【chóng dìng xiàng】到指定的文件中【zhōng】。若要恢复到屏【fù dào píng】幕的输出,只需要【zhī xū yào】🍕执行【zhí háng】🌒.output stdout命令就OK了🍕。

     sqlite>.output file.sql

sqlite>.dump

sqlite>.output stdout

注📞:如果【rú guǒ】file.sql不存在【bú cún zài】🕓,将在当♑前工作目录中【mù lù zhōng】🍚创建该【chuàng jiàn gāi】文件。如果【rú guǒ】文件存在,它将被覆盖。

7.导入数据

有两种方法可❄以导入数据【shù jù】👓,用哪种🌱方法取⏹决于要【jué yú yào】导入的文件格式【shì】。如果文件由【jiàn yóu】SQL语句构成【chéng】,可以使💜用.read命令【lìng】导入文件【rù wén jiàn】中包🕴含的命【hán de mìng】令【lìng】。如果文件中包🕴含由逗🍾号或其【hào huò qí】他分隔符分割的值【de zhí】🏩(comma-swparated values,CSV)组成【chéng】,可使用.import[file][table]命令【lìng】,此命令【lìng】将解析🔰指定的文件并【wén jiàn bìng】🔤尝试将🚮数据【shù jù】👓插入到【chā rù dào】指🛬定的表【dìng de biǎo】中。

.read命令用🌩来导入.dump命令创【mìng lìng chuàng】🐓建的【de】🛺文件。如果使用前面【yòng qián miàn】作为备份文件所导出【suǒ dǎo chū】的【de】🛺file.sql,需要先🉑移除已经存在🚻的【de】数据✉库对象,然后用下面的【xià miàn de】🛺方法重【fāng fǎ chóng】新导入:

sqlite>drop table Member;

sqlite>drop view schema;

sqlite>.read file.sql

8.备份数据库

有两种方式可🕸以完成【yǐ wán chéng】👰数据库【shù jù kù】的备份【de bèi fèn】🚰,具体使用哪一种取决于你希【yú nǐ xī】望的备【wàng de bèi】份🚰类型。SQL转储许是移植👚性最好🛁的备份【de bèi fèn】🚰。

生成转😠储的标【chǔ de biāo】准方式是使用🚥CLP.dump命令【mìng lìng】:sqlite3 test.db .dump >test.sql

在💵Shell中【zhōng】,可以将输出重【shū chū chóng】🌗定向到外部文💛件⌚,执行命令【lìng】,恢复到屏幕输【píng mù shū】出,如:

sqlite>.output file.sql

sqlite>.dump

sqlite>.output stdout

sqlite>.exit

同样🌼,容易将🗾SQL转储作【zhuǎn chǔ zuò】为【wéi】CLP的输入流实现数据库【shù jù kù】导入🙍:

sqlite3 test.db <test.sql

备份二进制数🌄据库🛥知识比复制文【fù zhì wén】件【jiàn】🐝稍多做⏫一点工作。备份之前需要清理数【qīng lǐ shù】据库🛥,这样可【zhè yàng kě】以释放【yǐ shì fàng】一些已删除对【shān chú duì】🔣象不再【xiàng bú zài】使用的空间🔯。这数据库🛥文件就【wén jiàn jiù】会变【huì biàn】👘小,因此二进制的🙍副本也🦆会较小:

sqlite3 test.db vacuum

cp test.db test.Backup

9.其它命令

sqlite>select last_insert_rowid();//获得最【huò dé zuì】后插入的自动【de zì dòng】🔼增长量🧝值

sqlite>.tabes//返回所有的表和视图【hé shì tú】🌑

sqlite>.indices Member //查看一🌪个表的【gè biǎo de】索引

sqlite>.schema Member //得到一个表或🚀视图的【shì tú de】定义🐂(DDL)语句【yǔ jù】,如果没有提供【yǒu tí gòng】🎮表名🔥,则返回【zé fǎn huí】所有数⛑据库对象【xiàng】(table,view,index,triger)的定义🐂语句【yǔ jù】

关键词:SQLite,数据库

阅读本文后您有什么感想? 已有 人给出评价!

  • 0 欢迎喜欢
  • 0 白痴
  • 0 拜托
  • 0 哇
  • 0 加油
  • 0 鄙视