数据库
简介
数据库(Database)按照数据结构来组织、存储和管理数据的仓库,目前市面上常有的数据库有:SQL Server、Oracle、MySQL(小型数据库)、DB2(大型数据库)。
而我们的SQLITE它是一款非常轻量级别的关系数据库系统,SQLite在使用前不需要安装设置,不需要进程来启动、停止或者配置。主要使用于手机应用的数据库以及小型桌面软件的数据库。
SQLITE下载
SQLite命令功能简介
命令 | 作用 |
---|---|
.database | 列出数据库文件名 |
.tsbles %PATTERN% | 列出?PATTERN?匹配的表名 |
.import FILE TABLE | 将文件中的数据导入的文件中 |
.dump 需要被生成脚本的表名 | 生成形成数据库表的sql脚本 |
.output FILENAME | 将输出导入指定的文件中 |
.output stdout | 将输出打印到屏幕 |
.mode MODE 表名 | 设置数据输出模式(csv,html,tcl…) |
.nullvalue STRING | 用指定的字符串代替NULL串 |
.read FILENAME | 执行指定文件中的SQL语句 |
.schema 表名 | 打印创建数据库表的SQL语句 |
.separator STRING | 用指定的字符串代替字段分隔符 |
.show | 打印所有的SQLite环境变量的设置 |
.quit | 退出命令行接口 |
实际操作
- 数据库的建立
- 数据库进入
SQLite数据类型
数据类型 | 作用 | 例子 |
---|---|---|
NULL | 表示值为NULL | NULL |
INTEGER | 整型值 | 1或者300之类的 |
REAL | 浮点值 | 23.3之类 |
TEXT | 文本字符串,默认编码格式为:UTF-8、UTF-16BE、UTF-16LE | 23.3之类 |
布尔类型 | SQLite并没有提供专门的布尔存储类型,取而代之的是存储整型1表示true,0表示false | |
日期和时间 | 和布尔类型一样,SQLite也同样没有提供专门存储日期或者时间类型,而是以TEXT、REAL和INTEGER类型分别不同格式表示该类型,如:1、TEXT:”YYYY-MM-DD HH:MM:SS.SSS” 2、REAL 以Julian日期格式存储 3、INTEGER:以Unix时间形式保存数据值,即从1900-01-01 00:00:00到当前时间所流经的秒。 |
语法使用##
ALERT 不支持列的重命名,删除和修改
作用 | 语法 |
---|---|
增加列 | ALERT TABLE 表名 ADD column 列名 列的数据类型 |
修改表名 | ALERT TABLE 表名 RENAME TO 新表名 |
删除表 | DROP TABLE 表名 |
创建表 | CREATE TABLE 表名(列名1 数据类型,列明2 数据类); |
插入数据 | INSERT INTO TABLE 表名(列名1 数据类型,列明2 数据类) VALUESE(值1 数据类型符合列,’值2 字符串使用’); |
查询数据 | SELECT * FROM 表名 可追加条件查询,不带就是查所有 |
修改数据 | UPDATE 表名 SET 要修改的列名1=修改后的值 可加条件,不加修改所有 |
删除数据 | DELETE FROM 表名 可追加条件,不追加,删除全部 |
模糊查询 | SELECT * FROM 表名 WHERE 需要模糊查询的列 LIKE ‘e%’; 这里举例e字符打头的 |
删除列
本数据库没有,提供此方法。但是可以自己写代码删除。
- 建立一个新的表中的列和你要删除的表相同,但不包含要删除的列!!
- 把要删除的表中的数据复制到新表中,但是不包含要删除的表
删除老表,把新表的名字改成老表
代码实现
CREATE TABLE USETWO AS SELECT 要不复制的列 FROM 旧表名(
NUMBER INTEGER,
.............
);
DROP TABLE 旧表名;
ALERT TABLE USETWO RENAME TO 新表名
系统函数
函数 | 语法 |
---|---|
order by 被排序的列名 asc(默认降序)或者desc(升序) | SELECT * FROM 表名 order by 被排序的列 desc 根据需求升降 |
》 < 、 <= 、 >=、 = 、 <> | 大于、 小于 、大于(小于)等于 、不等于 |
BETWEEN 条件1 AND 条件二 | 取值这二个条件中的值,包含头尾 |
IN(值) | 匹配符合,括号里面的值 例:IN(200,100); |
LIKE ‘张%’ | 模糊查询 匹配此列第一个字符是张的 |
IS NULL | 判断是否为空 |
AND | 多个条件同时成立 |
OR | 多个条件,任意成立 |
NOT | 取不成立的 例子:WHERE NOT (0>100); |
表约束
一般约束
作用 | 约束 |
---|---|
定义唯一约束 | unique 唯一,只能有一个 |
定义非空约束 | not null 不能为空 |
定义范围约束 | check |
定义默认约束 | default 默认有值 |
其他约束
作用 | 约束 |
---|---|
主键约束 | PRIMARY KEY 加在那列,此列中的值就只能是唯一的 |
外键约束 | sqlite 默认关闭了外键,可通过PRAGMA foreign_keys=ON; 开启 |
外键,在建表时创建 | CREATE TABLE 从表名(列名 数据类型,FOREIGN KEY(从表的列)REFERENCES 主表(主标列) ); |