Sqlite_入门命令
新建库 .open DATA_BASE;
新建表 create table LIST_NAME(DATA);
语法: NAME 关键字... <用逗号分割>
删除表 drop table NAME;
查看表 .schema 查看表信息
新建数据 insert into LIST_NAME values();
语法: CLASS, PARAMETER... ,CLASS 是类别, PARAMETER是参数<用逗号分割新建的数据>
查看数据 select * from LIST_NAME;
格式化显示: .header on
.mode column
select * from LIST_NAME;
PS: * 号表示显示所有的类别, 显示想要的类别要更改为 select ID, NAME, AGE from LIST_NAME;
检索数据 select * from LIST_NAME where CLASS <运算符> <数据> CLASS 表示表中的类别. 表示检索该类别中的数据.
例: select * from List where money > 5000;
这里涉及 一些运算法 就不一一举例了, 他和shell 运算符差不多的.
数字表达式 select (数学计算) as TITLE; TITLE 表示标题
函数表达式 select FUNCTION(CLASS) as "标题" from LIST_NAME; FUNCTION表示函数, 括号内(是类别) as "结果标题" ...
修改数据 update LIST_NAME set CLASS = "change class VALUE"; 修改类别中的值, 这个语句会批量修改值.
制定修改 update LIST_NAME set CLASS = "change class VALUE" where CLASS = VALUE; 修改指定的值, 主要是后面的 where 关键字 指定一个类别
然后 = 找到该类别中的值来修改.
删除指定数据 delete from LIST_NAME where CLASS = VALUE; CLASS 是类别, VALUE 是值.
删除所有相关数据 delete from LIST_NAME where CLASS; 不指定值, 他会删除所有相关类别.
事件处理(安全)
如何恢复删除的数据?
语法: > DEGIN; 事件开始
> delete from LIST_NAME where CLASS = VALUE; 删除数据
> ROLLBACK; 回滚操作, 这样就可以将刚刚删除的数据恢复
> COMMIT; 保存更改, 删除的数据就彻底删除了.
> END; 结束事件, 如果执行了COMMIT命令可以不用输入该命令.
匹配字符: select * from LIST_NAME where CLASS like 'A_%'; CLASS 表示类别, '匹配符'
百分号(%)代表零个、一个或多个数字或字符。下划线(_)代表一个单一的数字或字符。这些符号可以被组合使用。
匹配字符: select * from LIST_NAME where CLASS GLOB 'A_%'; CLASS 表示类别, GLOB 关键字需要大写 '匹配符'
星号(*)代表零个、一个或多个数字或字符。问号(?)代表一个单一的数字或字符。这些符号可以被组合使用。
限定显示 select * from LIST_NAME limit 3 offset 2; 表示从第2行开始显示, 最多显示3行
select * from LIST_NAME limit 3 ; 表示最多显示三行.
select * from LIST_NAME where CLASS > VALUE limit 3; 检索数据再限定显示
排序显示 select * from LIST_NAME order by CLASS asc; 数值从小到大排序
select * from LIST_NAME order by CLASS desc; 数值从大到小排序
重命名表 alter table DATA_BASE.OLD_LIST_NAME rename to NEW_LIST_NAME...;
增加新类别 alter table LIST_NAME ADD COLUMN CLASS char(1);
删除类别 alter table LIST_NAME drop column CLASS;
修改类别 alter table LIST_NAME alter column CLASS;
添加时间
select time('now'); 显示当前计算机时间
select date('now''); 显示计算机日期
select datetime('now''); 显示当前计算机日期和时间
insert into LIST_NAME values(...datetime('now')); 添加时间到值
[内关联] select CLASS1, CLASS2 from LIST1 INNER JOIN LIST2 on LIST1.ID = LIST2.ID;
说明: 先搜寻类别, 然后添加关键字INNER JOIN 将LIST1 和 LIST2 关联起来 on 关联类别;
[类型]
NULL 值是一个 NULL 值。
INTEGER 值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。
INT 整数类型
INT2 长整数类型
INT8 超长整数类型
INTEGER
TINYINT
SMALLINT
MEDIUMINT
BIGINT
UNSIGNED BIG INT
REAL 值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。
DOUBLE
DOUBLE PRECISION
FLOAT
TEXT 值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。
CHARACTER(20)
VARCHAR(255)
VARYING CHARACTER(255)
NCHAR(55)
NATIVE CHARACTER(70)
NVARCHAR(100)
TEXT
CLOB
BLOB 值是一个 blob 数据,完全根据它的输入存储。
char(1) 字符类型, 括号类约束限定字符
utf8 字符格式为utf-8
NUMERIC 时间类型
BOOLEAN
DATE
DATETIME
[关键字: 约束] 新建表的时候添加约束
NOT NULL 约束:确保某列不能有 NULL 值。
create table LIST_NAME(...not null);
DEFAULT 约束:当某列没有指定值时,为该列提供默认值。
create table LIST_NAME(...default "NULL"); 如果设定的类别当中没有填入值, 则使用该默认值NULL
UNIQUE 约束:确保某列中的所有值是不同的。
create table LIST_NAME(...unique...);
PRIMARY Key 约束:唯一标识数据库表中的各行/记录。
create table LIST_NAME(...primary key...);
CHECK 约束:CHECK 约束确保某列中的所有值满足一定条件。CHECK 约束启用输入一条记录要检查值的条件。如果条件值为 false,则记录违反了约束,且不能输入到表。
create table LIST_NAME(...check(运算符));
[关键字: 自动递增]
AUTOINCREMENT 只能用于整型(INT)字段, 常用于 ID 类别
[常用函数]
1 SQLite COUNT 函数
SQLite COUNT 聚集函数是用来计算一个数据库表中的行数。
2 SQLite MAX 函数
SQLite MAX 聚合函数允许我们选择某列的最大值。
3 SQLite MIN 函数
SQLite MIN 聚合函数允许我们选择某列的最小值。
4 SQLite AVG 函数
SQLite AVG 聚合函数计算某列的平均值。
5 SQLite SUM 函数
SQLite SUM 聚合函数允许为一个数值列计算总和。
6 SQLite RANDOM 函数
SQLite RANDOM 函数返回一个介于 -9223372036854775808 和 +9223372036854775807 之间的伪随机整数。
7 SQLite ABS 函数
SQLite ABS 函数返回数值参数的绝对值。
8 SQLite UPPER 函数
SQLite UPPER 函数把字符串转换为大写字母。
9 SQLite LOWER 函数
SQLite LOWER 函数把字符串转换为小写字母。
10 SQLite LENGTH 函数
SQLite LENGTH 函数返回字符串的长度。
11 SQLite sqlite_version 函数
SQLite sqlite_version 函数返回 SQLite 库的版本。
[显示方式]
.width 列宽
.mode markdown 显示模式
.header on 显示头部
.mode column 格式化
.mode csv 表格格式, 它适合文件导出
.mode box 方盒子模式
.mode insert 语句格式化
.mode line 顺序(行)格式化
.mode table 常规显示
.mode MODEL --wrap N 设定列宽(N为整数,表示字符), MODEL表示显示模式
ascii box column csv html insert json line list markdown qbox quote table tabs tcl
[常用命令]
.databases 列出当前打开的数据库
.tables 列出表
.import FILE TABLE 将数据从 FILE 导入到 TABLE
.import --csv --skip 1 --schema temp C:/work/somedata.csv tab1
.read FILE 从 FILE 中读取输入
.schema 查看数据表(类)
.shell 运行shell命令
.show 显示当前默认的设置
.system 运行系统中的程序
.once 导出文件, 但是要先设置模式为csv格式, 再导出.
sqlite> .headers on
sqlite> .mode csv
sqlite> .once c:/work/dataout.csv
sqlite> SELECT * FROM tab1; 执行这个命令不会返回 而是将信息存入到文件.
sqlite> .system c:/work/dataout.csv
.selftest 数据库自检