sqllite 笔记

select *  from userinfo

返回最后记录的序号
select last_insert_rowid();
创建视图
create view schema as select * from sqlite_master;//

创建索引

CREATE INDEX test_idx on test (value)
创建表
CREATE TABLE sqlitenet_pictures (
      UID INTEGER PRIMARY KEY AUTOINCREMENT,//主键 自增长
      NAME VARCHAR(50),
      PICTURE BLOB
      );      

删除记录
DELETE FROM foods WHERE id=413;
//插入记录
INSERT INTO foods VALUES (NULL, 'Whataburger');

 

:如果一个字段已经声明为UNIQUE,可以向这个字段插入多个NULL

 

 

SQLite 的观点是假设所有的NULL都是不同的

 

 

修改

 

UPDATE foods SET name='CHOCOLATE BOBKA'
WHERE name='Chocolate Bobka';

字符串值用单引号(')括起来,如果字符串中本身包含单引号,需要双写。如“Kenny’s chicken”需要写成:'Kenny''s chicken'

 

 

DEFAULT 还可以接受3 种预定义格式的ANSI/ISO 预定字用于生成日期和时间值。
CURRENT_TIME 将会生成ANSI/ISO 格式(HH:MM:SS)的当前时间。CURRENT_DATE 会
生成当前日期(格式为YYYY-MM-DD)。CURRENT_TIMESTAMP 会生成一个日期时间的组
合(格式为YYYY-MM-DD HH:MM:SS)。例如:
CREATE TABLE times ( id int,
date NOT NULL DEFAULT CURRENT_DATE,
time NOT NULL DEFAULT CURRENT_TIME,
timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP );

 

 

 

SQL 中单行注释用双减号开始,多行注释采用C 风格的/* */形式。

 

在SQLite 中,当你定义一个表时总要确定一个主键,不管你自己有没有定义。这个字段是
一个64-bit 整型字段,称为ROWID。它还有两个别名——_ROWID_和OID,用这两个别名
同样可以取到它的值。它的默认取值按照增序自动生成。SQLite 为主键字段提供自动增长特性。

 

SQLite 对字符串的值是大小写敏感的

 

 

SELECT DISTINCT heading FROM tables WHERE predicate
GROUP BY columns HAVING predicate
ORDER BY columns LIMIT count,offset;

 

 

 

表4-2 二目操作符
操作符 类型 作用
|| String Concatenation
* Arithmetic Multiply
/ Arithmetic Divide
% Arithmetic Modulus
+ Arithmetic Add
– Arithmetic Subtract
<< Bitwise Right shift
>> Bitwise Left shift
& Logical And
| Logical Or
< Relational Less than
<= Relational Less than or equal to
> Relational Greater than
>= Relational Greater than or equal to
= Relational Equal to
== Relational Equal to
<> Relational Not equal to
!= Relational Not equal to
IN Logical In
AND Logical And
OR Logical Or

LIKE Relational

 

 not like的使用

 

 

SELECT id, name FROM foods

WHERE name like '%ac%P%' AND name NOT LIKE '%Sch%'

 

 

下面的命令返回food_types 表中id 排第2 的记录:
SELECT * FROM food_types LIMIT 1 OFFSET 1 ORDER BY id;
保留字OFFSET 在结果集中跳过一行(Bakery),保留字LIMIT 限制最多返回一行(Cereal)。

 

group by的使用

 

SELECT type_id FROM foods GROUP BY type_id;
 

 

去重复  

SELECT DISTINCT type_id FROM foods;

多表

 

 

SELECT foods.name, food_types.name
FROM foods, food_types
WHERE foods.type_id=food_types.id LIMIT 10;
 

 

 

 

 别名
当把多个表连接在一起时,字段可能重名。
SELECT B.name FROM A JOIN B USING (a);

 

 

清洁数据库
SQLite 有两个命令用于数据库清洁——REINDEX 和VACUUM。REINDEX 用于重建索引,
有两种形式:
REINDEX collation_name;
REINDEX table_name|index_name;
第一种形式利用给定的排序法名称重新建立所有的索引。
VACUUM 通过重建数据库文件来清除数据库内所有的未用空间。

 

 

 

 

posted @ 2011-07-25 15:05  过错  阅读(1974)  评论(0编辑  收藏  举报