标题: PHP教程之轻型数据库SQLite联合PHP的开辟 [打印本页] 作者: 冷月葬花魂 时间: 2015-2-4 00:09 标题: PHP教程之轻型数据库SQLite联合PHP的开辟 完成一个功能齐全的动态站点数据|数据库 SQLite是一款轻型的数据库,它的设计方针是嵌入式的,并且今朝已在良多嵌入式产物中利用了它,它占用资本十分的低,在嵌入式装备中,能够只需求几百K的内存就够了。它可以撑持Windows/Linux/Unix等等主流的操作体系,同时可以跟良多法式言语相联合,好比Tcl、PHP、Java等,还有ODBC接口,一样比起Mysql、PostgreSQL这两款开源世界有名的数据库办理体系来说,它的处置速度比他们都快。
SQLite固然很玲珑,然而撑持的SQL语句不会减色于其他开源数据库,它撑持的SQL包含:
ATTACH DATABASE
BEGIN TRANSACTION
comment
COMMIT TRANSACTION
COPY
CREATE INDEX
CREATE TABLE
CREATE TRIGGER
CREATE VIEW
DELETE
DETACH DATABASE
DROP INDEX
DROP TABLE
DROP TRIGGER
DROP VIEW
END TRANSACTION
EXPLAIN
expression
INSERT
ON CONFLICT clause
PRAGMA
REPLACE
ROLLBACK TRANSACTION
SELECT
UPDATE
同时它还撑持事务处置功效等等。也有人说它象Microsoft的Access,有时分真的感觉有点象,然而现实上它们区分很大。好比SQLite撑持跨平台,操作复杂,可以利用良多言语直接创立数据库,而不象Access一样需求Office的撑持。假如你是个很小型的使用,或你想做嵌入式开辟,没有适合的数据库体系,那末如今你可以思索利用SQLite。今朝它的最新版本是 3.2.2,它的官方网站是:http://www.sqlite.org,能在下面取得源代码和文档。同时由于数据库布局复杂,体系源代码也不是良多,也合适想研讨数据库体系开辟的专业人士。
如今咱们入手下手复杂的引见,次要我是想讲清晰几个成绩,一是若何装置利用,二是若何跟PHP联合开辟。
1、装置
1. Windows平台
下载windows下的文件,其实就是一个号令行法式,(下载地址:http://www.sqlite.org/sqlite-3_2_2.zip),这个号令行法式用来包含生成数据库文件、履行SQL查询、备份数据库等等功效。
下载后好比咱们解紧缩到 D:\Downloads\sqlite\sqlite-3_2_2 这个目次下,那末咱们进入cmd,而且进入该目次:
cd D:\Downloads\sqlite\sqlite-3_2_2
D:\Downloads\sqlite\sqlite-3_2_2>sqlite3 test.db
# 假如test.db不存在,那末就发生一个数据库文件,假如存在就直接利用该数据库文件,相当于mysql中的use
SQLite version 3.2.2
Enter ".help" for instructions
sqlite>
# SQLite的提醒符,假如想检查号令匡助输出 .help,在sqlite中一切体系号令都是 . 开首的:
sqlite> .help
.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.
.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 WordStr the standard prompts
.quit Exit this program
.read FILENAME Execute SQL in FILENAME
.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
.width NUM NUM ... Set column widths for "column" mode
sqlite>
# 咱们创立一个数据库catlog
sqlite> create table catalog(
...> id integer primarykey,
...> pid integer,
...> name varchar(10) UNIQUE
...> );
sqlite>
# 假如表存在就会提醒:
SQL error: table catalog already exists
# 咱们创立索引信息
create index catalog_idx on catalog (id asc);
# 咱们检查表的信息,看有几何个表
sqlite> .table
aa catalog
# 检查表的布局:
sqlite> .schema catalog
CREATE TABLE catalog(
id integer primary key,
pid integer,
name varchar(10) UNIQUE
);
CREATE INDEX catalog_idx on catalog(id asc);
# 给数据表拔出一笔记录
sqlite> insert into catalog (ppid,name) values ('001','heiyeluren');
# 胜利无任何提醒,假如表达式毛病提醒毛病信息:
SQL error: near "set": syntax error
# 检索有几何笔记录
sqlite> select count(*) from catalog;
1
# 检索搜刮纪录
sqlite> select * from catalog;
1|1|heiyeluren
归正利用尺度的SQL来操作就没有成绩,不清晰可以去官方网站上检查匡助信息。别的还要申明的是SQLite不撑持修正表布局,假如要修正表布局,只要删除表从头再创立,所以创立表的时分必定要思索扩大性。估量今后这方面的功效会增强。