Skip to content

Files

Latest commit

May 1, 2024
f6df7a8 · May 1, 2024

History

History

sqlite

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
May 1, 2024
Apr 19, 2016
Apr 19, 2016
Apr 19, 2016

sqlite tutorial 官网
sqlite org

sqlite> select * from todos'
   ...> '
   ...> *** I made a mistake
   ...> ;
Error: near "*": syntax error
sqlite>
SELECT name ,SUM(pgsize)/1024 table_size  FROM "dbstat" GROUP BY name ORDER BY table_size desc;
  • 查看所有表
select * from sqlite_master;

9. 修改数据

  • 语法
> INSERT INTO table (column1,column2 ,..)  
VALUES( value1,	value2 ,...);
  • 案例
insert into pets values (null, 'cat'); /* 不指定id */
insert into pets values (1, 'cat');  /* 指定id */
/* >>> Error: UNIQUE constraint failed: pets.id */
insert into pets values (null, 'cat'), (null, 'dog');  /* 批量插入数据 */
insert into pets (name) values ('cat'), ('dog');  /* 指定表头顺序 */

Update

Delete

Replace

Section 11. Data definition

  • alter 官网
    sqlite不支持删除字段,只支持rename表和添加column. 所以如果你想删除某个字段,就先rename这个表,然后创建一个新表,然后再把数据复制过来

    ALTER TABLE existing_table ADD COLUMN st_size integer NULL;

  • attach 导入其他的数据库

attach "filename" as <dbname>;
  • autoincrement

  • CREATE 创建表

    CREATE TABLE "dbxd" ( "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "time" datetime NOT NULL, "contentid" varchar(32) NOT NULL, "charge1" integer NOT NULL, "channel" varchar(32) NOT NULL);

  • drop

  • rename

ALTER TABLE <表> RENAME TO <临时表名>
CREATE TABLE <表>
INSERT INTO <表> SELECT * FROM <临时表名>
  • .schema 查看某个表的格式

Section 14. Indexes 索引

基础-创建索引

# 单列索引
CREATE INDEX myindexname
ON <tablename>(<columname>);

# 多列索引
CREATE UNIQUEINDEX myindexname
ON comments(post, sender);

基础-删除索引

  • 基础用法

    SELECT a1, a2, b1, b2 FROM A INNER JOIN B on B.f = A.f;

  • 找到某个用户的所有专辑下的所有歌曲

    SELECT trackid, tracks.name AS Track, albums.title AS Album, artists.name AS Artist FROM tracks INNER JOIN albums ON albums.albumid = tracks.albumid INNER JOIN artists ON artists.artistid = albums.artistid WHERE artists.artistid = 10

Section 17

create table <tablename>(field1, field2)
.mode csv
.import <filepath> <tablename>

导出和备份数据

.output backup.sql
.dump
.exit
或者
.output test.txt
select * from table;
  • read 还原数据库
    如果你是从mysqldump出来的数据, 可以用工具进行转化
sqlite3 test.db
.read <filename>
.import 文件名 表名