SQLite语法

  • 格式:pdf
  • 大小:223.11 KB
  • 文档页数:9

SQLite语法

⼀.建⽴数据库

sqlite3.exe test.db

⼆.双击sqlite-3_6_16⽬录下的程序sqlite3.exe,即可运⾏

三.退出

.exit

或者

.quit

四.SQLite⽀持如下5种数据类型

1.NULL:空值。

2.INTEGER:带符号的整型,具体取决有存⼊数字的范围⼤⼩。

3.REAL:浮点数字,存储为8-byte IEEE浮点数。

4.TEXT:字符串⽂本。

5.BLOB:⼆进制对象。

五.联系⼈表格结构如下

create table contact(id integer primary key autoincrement,

lastname varchar(20),firstname varchar(20),

mobile varchar(30), telephone varchar(20),

email varchar(30), company varchar(50),

department varchar(16),address varchar(80),

id1 interger,id2 integer, updatetime datetime);

六.查看数据库有哪些数据表

命令是:.tables

七.如何插⼊⼀条记录

insert into contact(lastname,firstname,mobile,telephone,updatetime) values('刘','畅','13910128132','010-81749136','2009-07-22');

⼋.查看数据表的结构

针对整个数据库

.schema

针对仅仅是contact联系⼈该表

.schema contact 注意没有分号

九.如何打开⼀个已经创建的数据库

sqlite3 test.db

⼗.如何解决如下问题

SQL error: near "sqlite3": syntax error

SQL指令都是以分号(;)结尾的。如果遇到两个减号(--)则代表注解,sqlite3会略过去

⼗⼀.如何建⽴索引

create index index_name on table_name(field_to_be_indexed);

⼗⼆.如何删除⼀张数据表

drop table contact;

⼗三.查看当前的数据库

.database

⼗四.如何删除⼀个数据表的数据

delete from contact;

⼗五.如何导⼊⼀个⽂件到某个表中

.import ⽂件路径 表名

注意这是⾮SQL语句,所以不加分号

⼗六.如何设置⽂件字段的分隔符

.separator “,”

.import e:/contact.txt contact

⼗七.如何查看当前sqllite字段的分隔符是什么?

.show

⼗⼋.如何将查询结果导出到⼀个⽂件

第⼀步:.output a.txt

第⼆步:执⾏要导出的SQL语句

第三步:.output stdout⼗九.SQL查询语句

select * from film order by year limit 10;

select * from film order by year desc limit 10;

select count(*) from film;

select * from film where starring like 'Jodie%';

select * from film where starring='Jodie Foster';

select title, year from film order by year desc limit 10;

select columns from table_name where expression;

最常见的⽤法,当然是倒出所有数据库的内容:

select * from film;

如果资料太多了,我们或许会想限制笔数:

select * from film limit 10;

或是照着电影年份来排列:

select * from film order by year limit 10;

或是年份⽐较近的电影先列出来:

select * from film order by year desc limit 10;

或是我们只想看电影名称跟年份:

select title, year from film order by year desc limit 10;

查所有茱蒂佛斯特演过的电影:

select * from film where starring='Jodie Foster';

查所有演员名字开头叫茱蒂的电影('%' 符号便是 SQL 的万⽤字符):

select * from film where starring like 'Jodie%';

查所有演员名字以茱蒂开头、年份晚于1985年、年份晚的优先列出、最多⼗笔,只列出电影名称和年份:

select title, year from film where starring like 'Jodie%' and year >= 1985 order by year desc limit 10;

有时候我们只想知道数据库⼀共有多少笔资料:

select count(*) from film;

有时候我们只想知道1985年以后的电影有⼏部:

select count(*) from film where year >= 1985;

(进⼀步的各种组合,要去看SQL专书,不过你⼤概已经知道SQL为什么这么流⾏了:这种语⾔允许你将各种查询条件组合在⼀起──⽽我们

还没提到「跨数据库的联合查询」呢!)

如何更改或删除资料

了解select的⽤法⾮常重要,因为要在sqlite更改或删除⼀笔资料,也是靠同样的语法。

例如有⼀笔资料的名字打错了:

update film set starring='Jodie Foster' where starring='Jodee Foster';

就会把主⾓字段⾥,被打成'Jodee Foster'的那笔(或多笔)资料,改回成Jodie Foster。

delete from film where year < 1970;

就会删除所有年代早于1970年(不含)的电影了。

其他sqlite的特别⽤法

sqlite可以在shell底下直接执⾏命令:

sqlite3 film.db "select * from film;"

输出 HTML 表格:

sqlite3 -html film.db "select * from film;"

将数据库「倒出来」:

sqlite3 film.db ".dump" > output.sql

利⽤输出的资料,建⽴⼀个⼀模⼀样的数据库(加上以上指令,就是标准的SQL数据库备份了):

sqlite3 film.db < output.sql

在⼤量插⼊资料时,你可能会需要先打这个指令:

begin;

插⼊完资料后要记得打这个指令,资料才会写进数据库中:

commit;

创建数据库⽂件: >SQLite3 d:\test.db 回车

就⽣成了⼀个test.db在d盘。

这样同时也SQLite3挂上了这个test.db

2)

⽤.help可以看看有什么命令

>.help 回车即可

3)可以在这⾥直接输⼊SQL语句创建表格 ⽤;结束 ,然后回车就可以看到了

4)看看有创建了多少表

>.tables

5)看表结构

>.schema 表名

6)看看⽬前的数据库

>.database

7)如果要把查询输出到⽂件

>.output ⽂件名

> 查询语句;

查询结果就输出到了⽂件c:\query.txt

把查询结果⽤屏幕输出 >.output stdout

8)把表结构输出,同时索引也会输出

.dump 表名

9)退出

>.exit 或者.quit

2。从 下载Ado.net驱动。

下载了安装,在安装⽬录中存在System.Data.SQLite.dll

我们只需要拷贝这个⽂件到引⽤⽬录,并添加引⽤即可对SQLite数据库操作了

所有的Ado.net对象都是以SQLite开头的,⽐如SQLiteConnection

连接串只需要如下⽅式

Data Source=d:\test.db 或者DataSource=test.db--应⽤在和应⽤程序或者.net能够⾃动找到的⽬录

剩下的就很简单了~~

3。SQL语法

由于以前⽤SQLServer或者ISeries,所以DDL的语法很汗颜

1)创建⼀个单个Primary Key的table

CREATE TABLE [Admin] (

[UserName] [nvarchar] (20) PRIMARY KEY NOT NULL ,

[Password] [nvarchar] (50) NOT NULL ,

[Rank] [smallint] NOT NULL ,

[MailServer] [nvarchar] (50) NOT NULL ,

[MailUser] [nvarchar] (50) NOT NULL ,

[MailPassword] [nvarchar] (50) NOT NULL ,

[Mail] [nvarchar] (50) NOT NULL

) ;

2)创建⼀个多个Primary Key的table

CREATE TABLE [CodeDetail] (

[CdType] [nvarchar] (10) NOT NULL ,

[CdCode] [nvarchar] (20) NOT NULL ,

[CdString1] [ntext] NOT NULL ,

[CdString2] [ntext] NOT NULL ,

[CdString3] [ntext] NOT NULL,

PRIMARY KEY (CdType,CdCode)

) ;

3)创建索引

CREATE INDEX [IX_Account] ON [Account]([IsCheck], [UserName]);

还可以视图等等。

4.还有很有⽤的SQL

Select * from Sqlite_master

Select datetime('now')

Select date('now')

Select time('now')

SQLite内建函数表