Linux——sqlite3安装、简单应用

来源:互联网 发布:域名中cn代表什么 编辑:程序博客网 时间:2024/06/05 17:54

sqlite3是在嵌入式中主要使用的轻量级数据库,在此先学习记录一下简单的使用,往后编程过程中会结合数据库。
先推荐学习sqlite的很好的网站:http://www.runoob.com/sqlite/sqlite-installation.html

===========================================
sqlite数据类型:
用于描述一个对象的属性。
主要有
NULL:值是一个 NULL 值,即为空。
INTEGER(INT):值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。
REAL:值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。
TEXT:值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。
BLOB:值是一个 blob 数据,完全根据它的输入存储。

一、安装

 wget http://www.sqlite.org/sqlite-3.6.16.tar.gz tar zvxf sqlite-3.6.16.tar.gz cd sqlite-3.6.16 ./configure make && make install

二、简单使用

在使用前先输入:stty erase ^H 否则在sqlite命令行中使用Backspace无效。

1.创建一个数据库

[tangbin@localhost sqllite]$ sqlite3 test.dbSQLite version 3.6.16Enter ".help" for instructionsEnter SQL statements terminated with a ";"sqlite> //出现了sqlite>光标即进入了sqlite命令行。

键入.help 得到帮助信息:

sqlite> .help.backup ?DB? FILE      Backup DB (default "main") to FILE.bail ON|OFF           Stop after hitting an error.  Default OFF.databases             List names and files of attached databases.dump ?TABLE? ...      Dump the database in an SQL text format.echo ON|OFF           Turn command echo on or off.exit                  Exit this program.explain ON|OFF        Turn output mode suitable for EXPLAIN on or off..genfkey ?OPTIONS?     Options are:                         --no-drop: Do not drop old fkey triggers.                         --ignore-errors: Ignore tables with fkey errors                         --exec: Execute generated SQL immediately                       See file tool/genfkey.README in the source                        distribution for further information..header(s) ON|OFF      Turn display of headers on or off.help                  Show this message.import FILE TABLE     Import data from FILE into TABLE.indices TABLE         Show names of all indices on TABLE.mode MODE ?TABLE?     Set output mode where MODE is one of:                         csv      Comma-separated values                         column   Left-aligned columns.  (See .width)                         html     HTML <table> code                         insert   SQL insert statements for TABLE                         line     One value per line                         list     Values delimited by .separator string                         tabs     Tab-separated values                         tcl      TCL list elements.nullvalue STRING      Print STRING in place of NULL values.output FILENAME       Send output to FILENAME.output stdout         Send output to the screen.prompt MAIN CONTINUE  Replace the standard prompts.quit                  Exit this program.read FILENAME         Execute SQL in FILENAME.restore ?DB? FILE     Restore content of DB (default "main") from FILE.schema ?TABLE?        Show the CREATE statements.separator STRING      Change separator used by output mode and .import.show                  Show the current values for various settings.tables ?PATTERN?      List names of tables matching a LIKE pattern.timeout MS            Try opening locked tables for MS milliseconds.timer ON|OFF          Turn the CPU timer measurement on or off.width NUM NUM ...     Set column widths for "column" mode

键入.show 查看配置:

sqlite> .show     echo: off  explain: off  headers: off     mode: listnullvalue: ""   output: stdoutseparator: "|"    //分隔符    width:      //宽度

我们可以进行一些设置,使得符合阅读习惯:

sqlite> .headers on    //显示表头sqlite> .mode column    //竖式显示sqlite> .nullvalue NULL    //空值显示为NULLsqlite> .show     echo: off  explain: off  headers: on     mode: columnnullvalue: "NULL"   output: stdoutseparator: "|"    width: 

2.创建一个表
create table table_name(field1 type1, field2 type1, …);

table_name是要创建数据表名称,fieldx是数据表内字段名称,typex则是字段类型。
比如建立一个教师信息表:

sqlite> create table teachers(   ...> ID int primary key,   ...> Name text NOT NULL,   ...> Age int CHECK(Age>20),   ...> Country text DEFAULT 'USA');sqlite> .tables    //.tables查看当前有哪个表存在teachers

要记住 sql指令都以”;”结束,两个减号”–”表示注释。

2.插入数据
insert into table_name(列field1, field2, …) values(值val1, val2, …);

valx为需要存入字段的值。
向刚刚建好的表中添加数据:

sqlite> insert into teachers values(1,'Zhaosi',30,'CHN');sqlite> insert into teachers values(2,'Allen',24,'CA');sqlite> insert into teachers values(3,'Rui',29,'JP');sqlite> insert into teachers(Name,Age) values('Bob',40);sqlite> select * from teachers;  //查询ID          Name        Age         Country   ----------  ----------  ----------  ----------1           Zhaosi      30          CHN       2           Allen       24          CA       3           Rui         29          JP       NULL        Bob         40          USA       

这就创建了一个表并且插入了四组数据,在建表的时候设定了一些约束,主键,默认值,check条件等。

3.修改表中数据
UPDATE TABLE SET 列 = ‘NEWVALUES’ [WHERE 条件语句]

UPDATE 语句用来更新表中的某个列,如果不设定条件,则所有记录的这一列都被更新; 如果设定了条件,则符合条件的记录的这一列被更新, WHERE 子句被用来设定条件。

sqlite> update teachers set Country='USA';sqlite> select * from teachers ;ID          Name        Age         Country   ----------  ----------  ----------  ----------1           Zhaosi      30          USA       2           Allen       24          USA       3           Rui         29          USA       NULL        Bob         40          USA       sqlite> update teachers set Country='China'  where ID=2;sqlite> select * from teachers;ID          Name        Age         Country   ----------  ----------  ----------  ----------1           Zhaosi      30          USA       2           Allen       24          China     3           Rui         29          USA       NULL        Bob         40          USA    sqlite> update teachers set Country='JP' where Age<30;   sqlite> select * from teachers ;ID          Name        Age         Country   ----------  ----------  ----------  ----------1           Zhaosi      30          USA       2           Allen       24          JP       3           Rui         29          JP       NULL        Bob         40          USA      

4.删除表中的数据
DELETE FROM TABLE [WHERE 条件语句]

如果设定 WHERE 条件子句,则删除符合条件的数据记录;如果没有设定条件语句,则删除所有记录。

sqlite> delete from teachers where Age>30;sqlite> select * from teachers;ID          Name        Age         Country   ----------  ----------  ----------  ----------1           Zhaosi      30          USA       2           Allen       24          JP       3           Rui         29          JP      

5.删除整个表

sqlite> drop table teachers;sqlite> .tablesqlite>//可以看到之前建立的teachers已被删除
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 橡胶手机壳松了怎么办 橡胶手机壳小了怎么办 苹果手机下载不了软件了怎么办 苹果手机浏览器下载不了软件怎么办 小狗吃了硬的棉花怎么办 小狗吃了隔尿垫里的棉花怎么办 眼睫毛掉进眼睛里怎么办 爱掉头发怎么办吃什么 头皮屑多头发干燥脱发怎么办 剪了头发后悔了怎么办 2岁宝宝发际线高怎么办 脱发怎么办吃什么能长发 后面头发睡平了怎么办 鸟羽毛长得不好怎么办 吃激素药头发掉怎么办 吃了药头发掉怎么办 头皮痒头发掉的厉害怎么办 西昌学院被记过了怎么办? 初三了数学太差怎么办 板绘线条不流畅怎么办 嘴被风吹歪了怎么办 被风吹的嘴歪了怎么办 怀孕一个多月见红了怎么办 b本扣了6分怎么办 b牌驾驶证扣6分怎么办 忘记了谁考证的密码怎么办 专升本学校有课怎么办 跨境额度超了怎么办 微商代购被骗了怎么办 减肥到了瓶颈期该怎么办 大润发超市把一件商品打两件怎么办 小红书上买到假货怎么办 主动退市股票钱怎么办 老板卷款逃跑财务怎么办 房开延迟交房怎么办 房开逾期交房怎么办 买了保险想退保怎么办 辐射避难所探索废土死了怎么办 大门上边的齿轮滑丝怎么办 国通石油储油卡怎么办 买大棚房受骗了怎么办