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, 值2,....)
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 子句中使用:
操作符 描述
= 等于
<> 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
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语句, 并执行。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值