SQLite3 学习总结

前端之家收集整理的这篇文章主要介绍了SQLite3 学习总结前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
什么是 sqlite
sqlite 一款轻型的嵌入式数据库
它占用资源非常的低,在嵌入式设备中,可能只需要几百 K 的内存就够
它的处理 速度比 MysqL Postgresql 这两款著名的数据库 都还快

什么是数据库
数据库 Database )是按照数据结构来组织、存储和管理数据的仓库
数据库可以分为 2 大种类
关系型数据库 常用
对象型数据库

常用关系型数据库
PC 端: Oracle MysqL sql Server Access DB2 Sybase
嵌入式 \ 移动客户端 sqlite

数据库存储数据的步骤
新建一张表( table
添加多个字段( column ,列,属性
添加多行记录( row ,每行存放多个字段对应的值)
关于sql

在程序运行过程中,要想操作(增删改查,CRUD数据库中的数据,必须使用sql语句

DDL 数据定义语言

命令 描述
create 创建一个张新的表, 一个新的视图或者数据库里的其它对象
alter 修改数据库中的某个已有的数据库对象, 比如:可以修改一个表的结构
drop 删除整个表,删险视图,或者删除数据库中的其它数据库对象
DML 数据操作语言
命令 描述
insert 创建或者说是插入一条新的记录
update 修改表中的记录
delete 删除表中的记录
DQL 数据查询语言
命令 描术
select 从一个表或者是多个表中检索某些记录。

创建一张表:表名为Person
create table Person (id_P int,LastName varchar(255),FirstName varchar(255),Address varchar(255),City varchar(50));
创建表的时候生成主键,并且主键值自动增加
create table t_person (id integer primary key auto increment,LastName archer,)

向表Person插入一条数据
INSERT INTO 表名称 VALUES (值1,值2,....)
INSERT INTO table_name (列1,列2,...) VALUES (值1,....)
insert into Person values (100,'Gates','Bill','xuanwumen 10','beijing');
insert into Person (LastName,Address) values (’xiaosan’,‘beijing’);

从表Person中查询数据
select * from Person; //从表Peson里查询所有字段的所有数据
select LastName,FirstName from Person ; //从表Peron里查义字段为LastName,FirsName的所有记录的数据。
select * from Person where LastName = 'Gates'; //根据指定的条件,从表Person里查询相对应的数据,where后面跟的就是条件。
排序
select LastName,FirstName from Person where age >= 18 order by age asc;//(order by)排序 sac表示升序 desc表示降序
select LastName,FirstName from Person where age >= 18 order by age asc, num asc; //先按照age排序, 如果num相同, 则按照num排序
limit 常用来做分页查询
使用limit可以精确地控制查询结果的数量,格式
select * from 表名 limit 数值1, 数值2;
select *from person limit 4,8; 可以理解为, 跳过最前面的4条数据, 然后再取8条数据。

从表Person中删除行数据
delete from Person where LastName='san'; //指的是将表Peson里LastName等san的这一行数据删除
delete from Person //删表Person中的所有数据
delete * from Person //在标准sql语句也表示删除表Person的所有数据。 但是在**sqlite**里不能使用这个种语方法

删除表格
drop table Person;//功能删除整张表格

更新(更改)表Peson里的数据
update Person set Lastname='qingyun' where FirstName='Bill';//更新表Person FirstName='Bill' 这条数据的LastName为新值'qingyun'
update Person set LastName='henan',FirstName='zhengzhou' where id_P = 200; //按照条件,id_P=200,修改这条数据的两个字段值,FirstName改为zhengzhou,LastName 改为'henan'

sqlite数据库里, 更新表结构
alter table Person add Age int; //更新Person表结构, 功能添加新的一列
注意的是:标准sql里可以使用alert关键字来达到删除一列, 修改列名和列类型的功能。但是在sqlite环境里, 是不支持

条件语句:
where

下面的运算符可在 WHERE 子句中使用:
@H_166_403@ = @H_166_403@ <> @H_166_403@ > @H_166_403@ < @H_166_403@ >= @H_166_403@ <= @H_166_403@ BETWEEN @H_166_403@ LIKE
操作符 描述
等于
不等于
大于
小于
大于等于
小于等于
在某个范围内
搜索某种模式
注释:在某些版本的 sql 中,操作符 <> 可以写为 !=。
select count (*) from person; 查询表里一共有多少条数据;
select * from person limit 2; 限制每次查询的列数(即 条数)为2条;


简单约束
建表时可以给特定的字段设置一些约束条件,常见的约束有
not null:规定字段的值不能为null
unique:规定字段的值必须唯一
default:指定字段的默认值
(建议:尽量给字段设定严格的约束,以保证数据的规范性)
示例
createtablet_student(idinteger,nametextnotnullunique,ageintegernotnulldefault1) ;
name字段不能为null,并且唯一
age字段不能为null,并且默认为1

外键约束:

利用外键约束可以用来建立表与表之间的联系
外键的一般情况是:一张表的某个字段,引用着另一张表的主键字段
新建一个外键
create tablet_student (idinteger primary keyautoincrement, name text,age integer,class_id integer,constraint fk_t_student_class_id_t_class_idforeign key(class_id) (id)) ;referencest_class
t_student表中有一个叫做fk_t_student_class_id_t_class_id的外键
这个外键的作用是用t_student表中的class_id字段引用t_class表的id字段

sqlite3 终端简单操作:

.save + sql文件名, 保存到文件
.show 展现数据的状态
.shell + 终端命令, 可以查看当前位置, 文件等;
.mode 改变数据展现样式
.headers
.output 如果加个文件夹, 输出内容文件夹, 如果不加, 标准输出到屏幕;

TABLES 如果不指定表名, 则表示列出当前数据库里所有的表名, 如果指定了表名(可以使用通配符),则是列出当前数据库与指定的在模式匹配的表名。
schema 如果指定了表名,则可以列出创建此表的sql语句, 如果不指定表名, 则会列出当前数据库所有表的表结构(以sql语句形式列出)
read 后面跟文件名, 意思是读取文件里的sql语句, 并执行。

猜你在找的Sqlite相关文章