sqlite数据库详解

一.sqlite数据库安装

去www.sqlite.org官网下载本地数据库sqlite(根据系统下载windows);

下载好后添加环境变量,在设置中输入高级系统设置,找到环境变量,找到path这个选项单击编辑将sqlite的路径添加到其中,点击三个确定,这样就可以使用sqlite数据库了。

二.sqlite操作

.help--sqlite使用帮助,里面有对sqlite数据库操作的解释,自行解读

.schema sqlite_master--(sqlite数据库中的主表保存数据表的关键信息,命名为sqlite_master)

.databases--打开数据库

.open 数据库名称.db--打开并创建数据库

.tables--显示数据表

        create table 表名称(字段1,字段2,....);--创建数据表

        insert into 表名称(字段1,字段2,....);--向数据表中插入数据

        select *from 表名称;--查询数据表中的数据

三.附加数据库与分离数据库

1.附加数据库语句

        attach database 文件名称 as 数据库名称

sqlite> .databases
main: "" r/w
sqlite> attach database "db1.db" as "dbtest1";
sqlite> .databases
main: "" r/w
dbtest1: D:\sqlite\db1.db r/w
sqlite>

2.分离数据库语句

        detach database 数据库名称

sqlite> .databases
main: "" r/w
dbtest1: D:\sqlite\db1.db r/w
sqlite> detach database dbtest1;
sqlite> .databases
main: "" r/w
sqlite>

四,创建数据表和删除数据表

1.创建数据表

        create table 数据表名称(字段1 数据类型1 约束类型,字段2 数据类型2 约束类型,...)

数据类型:整型(int)、长整型(bigint)、单精度、双精度、短日期(data)、长日期(datatime)、可变长度字符串(varchar)、定长字符串(char)。

约束类型:主键约束(primary key)、唯一约束(unique key)、默认约束(default)、非空约束(notnulll)、外键约束。

例:

--创建数据表
-- 学生表
create table student(
sno int primary key not null, --学号
sname text not null, --姓名
ssex text not null, --性别
sage int , --年龄
sdept text --所在系,学院
);

2.删除数据表

        drop table 数据表名称

五.insert into语句

select *from 数据表名称; 查询数据表

1.insert into 数据表名称(字段名1,2,3,4...) values(对应的数据)

指定字段名插入数据

2.insert into 数据表名称 values(与字段对应的数据)

未指定字段的插入数据

六.语句实例

--创建员工数据表 staff
create table staff(
sid int PRIMARY key NOT NULL, --员工编号
sname text not null, --员工姓名
sage int not null, --员工年龄
sdepartment varchar(15), --员工所在部门
spost varchar(15), --员工职务
ssalary rel --员工工资
);

--查询数据表:staff
select *from staff;

--插入数据
insert into staff values();

--通过DISTINCT关键字,消除重复字段
select distinct sname from staff;

--通过Order by ASC|DESC ,实现升序和降序
select *from staff order by sname; //默认为升序
select *from staff order by sname ASC; //指定升序
select *from staff order by sname DESC; //指定降序

--相同数据进行分组
select sid,sname,sage,sdepartment,spost,ssalary from staff GROUP BY sname order by sname;

--having子句过滤数据
select *from staff GROUP BY sname having count(sname)<2; --显示名字少于2个的

七.触发器
--查询数据表:staff
select *from staff;
select *from staff_log;

--创建staff员工表对应的日志表
create table staff_log(
staff_sid int not null,
staff_date text not null
);

--创建触发器staff数据表-->监控此表插入记录事件
create trigger staff_logtrigger after insert on staff
begin
    insert into staff_log(staff_sid,staff_date) values(new.sid,datetime('now'));
end

--查询刚刚创建的触发器
select name from sqlite_master where type='trigger';

--测试数据
insert into staff values();

--删除触发器
drop trigger staff_logtrigger;

八.索引
--查询数据表:staff
select *from staff;

--创建索引
create index staff_ssalary_index on staff(ssalary);

--查询索引
select *from sqlite_master where type='index';

--通过索引查询数据
select *from staff INDEXED by staff_ssalary_index where ssalary >=50000;

--删除索引
drop index staff_ssalary_index;

--索引的优缺点:

           建立索引可以提高在数据库中获取所需要信息的速度,
           同时还能够提高服务期处理相关搜索请求的效率。

 --什么时候避免使用?
           数据表较小;不应该出现在频繁操作的列中;应该使用在有大量null值列上;
           有频繁大批数据实现更新、增加、删除操作的

九.视图

select *from student;
select *from course;
select *from sc;

--创建视图
create view student_course_sc_view as 
select student.sno,student.sage,student.sname,student.ssex,student.sdept,course.ccredit,course.cname,course.cno,sc.score
from student,course,sc
where student.sno=sc.sno and course.cno=sc.cno;

--通过视图查询数据
select *from student_course_sc_view;

--删除视图
drop view student_course_sc_view;

十.事务

事务处理

事务提交

事务回滚:提交后不能回滚

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值