sqlite3一些常用的命令 
                                                    
                        
                    
                    
  
                    
                    1.创建数据库
    没有进入sqlite: sqlite3 databaseName.db
    进入sqlite: .open test.db
2.展示db
    .databases
3.退出
    .quit
4.导出一个完整的数据库在一个文件中
    test.db  .dump > test.sql            将test.db 数据库导出到test.sql文件中
5.展示数据表
    .tables
    .schema 展示数据表详细信息
6.创建一个表来自另一个表的查询
    create table user as select id,name,age,address from score;
    但是这个表的id是没有主键的
7.将一个表的某个字段作为主键
    创建一个新表定义主键
    将原表的数据复制到新表
    删除原表
    将新表重新命名为原表
8.删除一个表中的某几列,不能直接删除
    创建一个新表
    将原表数据复制到对应的新表 insert into nscore(id,user_id,source) select id,id,source from score
    删除原表
    将新表重新命名为原表
9.给某个列作为index 索引 只能通过create index 来增加,不能在创建表的时候增加
    create index idx_user_id on score(user_id);
10.修改数据表名
    alter table nscore rename to score;
11.创建一个触发器  sqlite只支持for each row 不支持 for each statement,因此for each row是可选的
    CREATE  TRIGGER trigger_name
    [BEFORE|AFTER] event_name
    ON table_name
    BEGIN
     – 触发器逻辑….
    END;
CREATE TRIGGER trigger_name
AFTER|BEFORE triggering_event
ON table_name
FOR EACH ROW
BEGIN
    触发器中执行的sql语句; (这里的sql以;结尾)
END;
create trigger delete_user_delete_score
after delete
on user
for each row
begin
    delete from score where id = old.id;
end;
CREATE TRIGGER trg_delete_user_delete_score 
AFTER DELETE 
ON user 
FOR EACH ROW
BEGIN
    DELETE FROM score WHERE user_id = old.id;
END;
CREATE TRIGGER trg_update_score_user_id 
AFTER UPDATE OF id 
ON user 
BEGIN
    UPDATE score SET user_id = new.id WHERE score.user_id = old.id;
END;
指定id 需要使用of id
在触发器中,OLD 和 NEW 是强制提供的,用于在特定行被操作时引用其旧值和新值。你不能直接引用行的原始表名来连接,这是设计决定,目的在于简化触发器的上下文和防止潜在的混淆。
12.创建一个视图
    CREATE [TEMP | TEMPORARY] VIEW view_name AS
        SELECT column1, column2…..
        FROM table_name
        WHERE [condition];
CREATE VIEW user_info AS 
SELECT user.*,score.source FROM user JOIN score WHERE user.id = score.user_id
13.连表操作
    Inner join   这个是求交集
    SELECT
    company.*,
    department.dept
    FROM
    company
    INNER JOIN department ON company.id = department.emp_id;
left outer join   这个和left join一样
SELECT
    company.*,
    department.* 
FROM
    company
    LEFT OUTER JOIN department ON company.id = department.emp_id;
                        
                        本作品采用《CC 协议》,转载必须注明作者和本文链接
          
          
          
                关于 LearnKu
              
                    
                    
                    
 
推荐文章: