SQLite3 约束和简单命令
安装sqlite3,配置环境变量。
1.打开数据库
sqlite3.exe db_name.db
2.常用命令
.tables 查看所有表
.headers on 设置显示表头
.schema table_name 查看建表语言
.output a.txt 输出重定向到a.txt中
.output stdout 输出重定向到标准输出
PRAGMA table_info(table_name); //暂时没发现作用
3.建表
CREATE TABLE IF NOT EXISTS Student(
ID INTEGER PRIMARY KEY AUTOINCREMENT,
Name TEXT NOT NULL,
Class TEXT NOT NULL,
Age TEXT DEFAULT '',
Grade INT CHECK(Grade > 0),
UNIQUE(Name, Class));
NOT NULL 约束:确保某列不能有 NULL 值。
DEFAULT 约束:没有指定值时,填入默认值
UNIQUE 约束:key=(Name, Class),无法再次插入相同key的数据。
PRIMARY Key 约束:唯一标识数据库表中的各行/记录。
CHECK 约束:CHECK 约束确保某列中的所有值满足一定条件。
4.插入数据
INSERT INTO Student(Name,Class,Grade) values('ZHANG SAN','16',10); //success
INSERT INTO Student(Name,Class,Age,Grade) values('ZHANG SAN','9','16',10); //success
INSERT INTO Student(Name,Class,Age,Grade) values('ZHANG SAN','10','16',10); //success
INSERT INTO Student(Name,Class,Age,Grade) values('ZHANG SAN','10','16',10); //Error: UNIQUE constraint failed: Student.Name, Student.Class
INSERT INTO Student(Name,Class,Age,Grade) values('ZHANG SAN','10','16',-1); //Error: CHECK constraint failed: Grade > 0
5.查询
SELECT * FROM Student WHERE Name='ZHANG SAN' OR/AND Age='10';
6.删除表里所有数据
DELETE FROM Student;
7.修改表名
ALTER TABLE Student RENAME TO Teacher;
8.增加/删除列
ALTER TABLE Student ADD COLUMN Status TEXT NOT NULL default '';
ALTER TABLE Student DROP COLUMN Status;
9.导出数据表
.dump Student
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE Student(
ID INTEGER PRIMARY KEY AUTOINCREMENT,
Name TEXT NOT NULL,
Class TEXT NOT NULL,
Age TEXT DEFAULT '',
Grade INT CHECK(Grade > 0),
UNIQUE(Name, Class));
INSERT INTO Student VALUES(1,'ZHANG SAN','9','16',10);
INSERT INTO Student VALUES(2,'ZHANG SAN','10','16',10);
INSERT INTO Student VALUES(3,'ZHANG SAN','16','',10);
COMMIT;
SQLite3 约束和简单命令的更多相关文章
- [转]centos sqlite3安装及简单命令
安装: 方法一: wget http://www.sqlite.org/sqlite-autoconf-3070500.tar.gz tar xvzf sqlite-autoconf-3070500. ...
- centos sqlite3安装及简单命令
安装:方法一:wget http://www.sqlite.org/sqlite-autoconf-3070500.tar.gztar xvzf sqlite-autoconf-3070500.tar ...
- 安卓测试【三】adb简单命令及monkey使用
Ⅰ 配置好android sdk环境变量之后,将android手机连接到电脑上,进行一些adb的简单命令的操作. adb,安卓调试桥,android sdk的一个工具.直接操作管理安卓模拟器或者真 ...
- 基于Python+Sqlite3实现最简单的CRUD
一.基本描述 使用Python,熟悉sqlite3的基本操作(查插删改),以及基本数据类型.事务(ACID). 准备工作:在sqlite3的官网上下载预编译的sqlite文件(windows) ...
- Apache 的搭建及vim的简单命令
一. vim 简单命令 pwd 当前路径 ls 当前路径所有目录 cd 目录地址 跳转到指定目录 /xxx 查找xxx x 删除当前字符 n 执行上一次查找 二.为什么使用apa ...
- 从零单排Linux – 1 – 简单命令
从零单排Linux – 1 – 简单命令 Posted in: Linux 从零单排Linux – 1 一.Linux的简单命令: 1.忘记root密码: 读秒时按任意键进入 – e – ↓选择第二个 ...
- Kafka学习(一)配置及简单命令使用
一. Kafka中的相关概念的介绍 Kafka是一个scala实现的分布式消息中间件,当中涉及到的相关概念例如以下: Kafka中传递的内容称为message(消息),message 是通过topic ...
- Kafka配置及简单命令使用
一. Kafka中的相关概念的介绍 Kafka是一个scala实现的分布式消息中间件,其中涉及到的相关概念如下: Kafka中传递的内容称为message(消息),message 是通过topic(话 ...
- Linux的简单命令
Linux的简单命令 1.更改linux服务器的登录密码 成功登录后输入命令: passwd 然后按照提示操作即可 2.在当前路径下新建文件夹:mkdir 新建文件夹名 3.解压和压缩文件tar.gz ...
随机推荐
- 项目实战:Qt文件改名工具 v1.2.0(支持递归检索,搜索:模糊匹配,前缀匹配,后缀匹配;重命名:模糊替换,前缀追加,后缀追加)
需求 在整理文件和一些其他头文件的时候,需要对其名称进行整理和修改,此工具很早就应该写了,创业后,非常忙,今天抽空写了一个顺便提供给学习. 工具和源码下载地址 本篇文章的应用包和源码包可在 ...
- 理解ASP.NET Core - 路由(Routing)
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 Routing Routing(路由):更准确的应该叫做Endpoint Routing,负责 ...
- SpringCloud+RocketMQ实现分布式事务
随着互联网公司的微服务越来越多,分布式事务已经成为了我们的经常使用的.所以我们来一步一步的实现基于RocketMQ的分布式事务.接下来,我们将要做的主题写出来. RocketMQ的分布式事务结构和说明 ...
- Noip模拟69 2021.10.5
考场拼命$yy$高精度结果没学好$for$循环痛失$50pts$,当场枯死 以后一定打对拍,要不考后会... T1 石子游戏 首先要知道典型的$NIM$博弈,就是说如果所有堆石子个数的异或和为$0$则 ...
- IRCUT作用
IRCUT组成原理 IRCUT由两层滤光片组成,一片红外截止或吸收滤光片和一片全透光谱滤光片 白天是红外截止滤光片工作,晚上是全透滤光片工作,白天摄像头可以接收到人眼无法识别的红外线,会导致图像与肉眼 ...
- hdu 1227 Fast Food(DP)
题意: X轴上有N个餐馆.位置分别是D[1]...D[N]. 有K个食物储存点.每一个食物储存点必须和某个餐厅是同一个位置. 计算SUM(Di-(离第i个餐厅最近的储存点位置))的最小值. 1 < ...
- MarkDown学习随笔
MarkDown语法的学习 标题 设置标题方法是在前面加#号,一级标题(最大)是加#+空格 ,二级标题是加##+空格,之后的以此类推. 字体 在文本的前后分别加上一个星号表示斜体字 在文本的前后分 ...
- Cnetos 8 DNS解析慢
参考链接:https://blog.csdn.net/u014401141/article/details/105869242/ 修改 /etc/resolv.conf配置文件,最上方加入 optio ...
- 【Go语言学习笔记】Go的defer
关键字 defer ⽤于延迟一个函数或者方法(或者当前所创建的匿名函数)的执行. 注意,defer语句只能出现在函数或方法的内部. defer语句经常被用于处理成对的操作,如打开.关闭.连接.断开连接 ...
- MySQL——DML数据增、删、改
插入 方式一(经典) 语法: insert into 表名(列名,...) values(值,...); 若要一次插入多行 create table if NOT EXISTS user( name ...