SQLite 简单使用(一)

本文深入讲解SQLite数据库操作,包括表的创建与修改、索引的使用、外键约束及各种数据类型。同时,介绍了如何使用约束如Unique、NotNull、Default等来确保数据的完整性和一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQLite 使用

//添加列
"AlTER TABLE User ADD COLUMN sync_state integer NOT NULL DEFAULT 1"
//创建表
"CREATE TABLE IF NOT EXISTS 'localuser'  ('uid' INTEGER NOT NULL PRIMARY KEY autoincrement,'user_name' TEXT , 'class_name' TEXT, 'face_code' TEXT, 'card_id' TEXT,'reader_id' TEXT NOT NULL,'sync_state' INTEGER NOT NULL DEFAULT 0)"
//创建索引
"CREATE  INDEX index_User_face_code ON User (face_code)"
//创建唯一索引   CREATE UNIQUE INDEX INDEX_NAME ON table_name(column_name)
"CREATE UNIQUE INDEX index_User_face_code ON User (face_code)"
//删除表 DROP TABLE TABLE_NAME
"DROP TABLE User"


关系表

ON DELETE

ON UPDATE

外键的ON DELETE和 ON UPDATE 可以用来配置 当从父表中删除某些行时发生的行为(ON DELETE). 或者修改存在的行的父键的值, 发生的行为(ON UPDATE)

NO ACTION: 当父键被修改或者删除时, 没有特别的行为发生

RESTRICT: 存在一个或者多个子键对应于相应的父键时, 禁止删除(ON DELETE RESTRICT)或者修改(ON UPDATE RESTRICT) 父键

RESTRICT与普通的外键约束的区别是, 当字段(field)更新时, RESTRICT行为立即发生

SET NULL: 父键被删除(ON DELETE SET NULL) 或者修改 (ON UPDATE SET NULL)

SET DEFAULT: 类似于SET NULL

CASCADE: 将实施在父键上的删除或者更新操作,传播给与之关联的子键.

ON DELETE CASCADE   级联删除
ON UPDATE CASCADE  级联更新
当更新或删除主键表时,那么外键表也会跟随一起更新或删除

约束

使用SQLite建表,通常会使用id作为唯一标示,使用PRIMARY KEYAUTOCREMENT进行修饰

而主键是不可以重复的。但是在这张表中还有其他的Column也不允许重复,则可以使用Unique约束

常用的约束有:

  • Unique:确保该列中的所有值是不同的

  • Not Null:确保被该约束修饰的列不会有NULL(空)值

  • Default:当该字段没有值时,使用默认值填充

  • Primary Key:唯一标识表中的各行数据,不会重复

  • Check:确保该列的值都满足条件,如果不满足,则无法插入

    下面的 SQLite 创建一个新的表 COMPANY,并增加了五列。在这里,我们为 SALARY 列添加 CHECK,所以工资不能为零:
    
    CREATE TABLE COMPANY(
       ID INT PRIMARY KEY     NOT NULL,
       NAME           TEXT    NOT NULL,
       AGE            INT     NOT NULL,
       ADDRESS        CHAR(50),
       SALARY         REAL    CHECK(SALARY > 0)
    );
    

在 SQLite 中,ALTER TABLE 命令允许用户重命名表,或向现有表添加一个新的列。重命名列,删除一列,或从一个表中添加或删除约束都是不可能的

参考:https://www.cnblogs.com/xgcblog/archive/2011/08/25/2152918.html

SQLite—使用约束

​ https://www.jianshu.com/p/e2b946dc1374

​ https://www.sqlite.org/foreignkeys.html

​ https://www.runoob.com/sqlite/sqlite-data-types.html

SQL UNION 和 UNION ALL 操作符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值