1.简介
sqLite是轻量级的,嵌入式的,关系型数据库,已经在iPhone,Android等手机系统中使用,其可移植性好,高效和可靠性得到了广泛使用。
2.使用
使用命令创建数据库文件: sqlite3 数据库文件名 //如果有就打开,如果没有就会在将来创建
使用命令查看已附加的数据库文件: .databases
help 查看常用命令 使用数据库:sqlite3 db_name
进行数据库操作 SQLite3中数据了类型: 严格地说,SQLite 没有数据类型。SQLite 使用动态数据类型,即:数据的类型取决于数据本身,而不是它的容器(字段) 存储类型(Storage Class): 数据保存到文件后的表现形式。
包括:
NULL - 空值
INTERGER - 有符号整数类型(***)
REAL - 浮点数类型(***)
TEXT - 字符串(其编码取决于DB的编码)(***)
BLOB - 二进制表示VS
DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;(定义数据库对象,增加表、删除表、更改表结构等) DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);(增删改)
DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;
DQL(Data Query Language):数据查询语言,用来查询记录(数据)。
-- 向student表中添加一列性别gender
ALTER TABLE student ADD COLUMN gender text;
-- 查看所有学生SELECT * FROM student;
-- 插入一批数据INSERT INTO student (id,name,age,gender) VALUES(10010,'法海','23','男');
当不指定列明时:默认向数据库全部字段插入
-- 修改 盘古的性别改为男
UPDATE student SET gender='男' WHERE name='盘古';
-- 删除 id=10024
DELETE FROM student WHERE id=10024;
-- SELECT 列名 from 表名 where 条件-- 查询
select * from student;
-- 查询前3条数据
select * from student limit 3;
-- 查询所有学生 按照年龄升序排序
select * from student order by age asc;
-- 查询所有学生 按照年龄降序,如果年龄相同再按照学号升序排序
select * from student order by age desc,id asc;
-- 查询年龄最大的学生姓名
select name from student order by age desc limit 1;
-- 聚合函数 sum() avg() max() min() count()
-- 求所有的学生人数
select count(id) "班级人数" from student;
select count(id) as "班级人数" from student;
...............................................................
-- 求所有学生年龄总和
select sum(age) from student;
-- 查询男生和女生个数
select gender,count(gender) from student group by gender;
-- 查询年龄大于平均年龄的学生信息 子查询
select * from student age > (select avg(age) from student);
-- 设计 班级表 class
CREATE TABLE class ( id integer,
name text);
-- 给学生表添加一列cid (所在班级的id)
alter table student add column cid integer;
-- 给班级表添加若干条数据
insert into class values(10086, 'Android');
insert into class values(10010, 'IOS');
insert into class values(10000, 'HTML5');
-- 查询学生姓名和所在班级名称
select student.name 学生姓名, class.name 班级名称 from student,class where student.cid=class.id;