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内建函数表