Structured Query Language 结构化查询语言
数组在内存:连续,空间受到限制
链表在内存:不连续,只要堆空间有空闲内存,无线延伸下去
数据库:一个文件(xxxxx.db),处理数据速度非常快
kamin@Ubuntu:~$ sqlite3 //启动数据库
sqlite> //数据库的命令行提示符
// (1)以"."开头,sqlite3内部的命令,后面没有 ; 分号作为标志
// (2)不是以"."开头的,数据库执行语句,后面需要 ; 分号作为结束标志
kamin@ubuntu:~$ sqlite3 roster.db //roster.db 数据库的名字
kamin@ubuntu:~$ ls
kamin@ubuntu:~$ //当前目录下并没有创建 roster.db文件
指令: .table
sqlite> .table
sqlite> //当前数据库中没有任何的表
关键字: create
公式: create table 表的名字(变量1名字 变量1的数据类型 变量1的约束条件, 变量2的名字 变量2的数据类型 变量2的约束条件 , …);
//表中有且仅有一个主键
sqlite> create table Student(StudentId integer primary key not null,StudentName text);
sqlite> .table
Student //当前数据库中已经创建了一个名字为 Student 的表
sqlite>
指令: .schema
sqlite> .schema //查看所有的表
CREATE TABLE Student(StudentId integer primary key not null,StudentName text);
sqlite> .schema Student //指定查看某个表
CREATE TABLE Student(StudentId integer primary key not null,StudentName text);
关键字:insert into
公式1: insert into 表的名字 values(赋值给变量1的值,赋值给变量2的值,…);
sqlite> insert into Student values(10,'XiaoMin');
公式2: insert into 表的名字(变量x的名字) values(赋值给变量x的值);
//由于变量1约束条件是主键,所以在没有赋值的情况下,会默认在上一个数据的基础上+1
sqlite> insert into Student(StudentName) values('XiaoHong');
关键字:select … from …
公式: select 需要查看的数据的变量 from 表的名字 [where 特征值变量 like ‘特征值’];
1) 查看所有的信息
sqlite> select * from Student; // * 代表所有的变量, StudentId 与 StudentName 都查看
10|XiaoMin
11|XiaoHong
2)只想查看学生名字
sqlite> select StudentName from Student;
XiaoMin
XiaoHong
3)只想看某个学生名字的对应的ID
sqlite> select StudentId from Student where StudentName like 'XiaoMin';
10
4)根据特征值来匹配寻找
sqlite> select StudentId from Student where StudentName like 'Xiao%';
10
11
关键字:delete from
公式:delete from 表的名字 [where 特征值变量 like ‘特征值’];
//删除 学生名字叫 “XiaoHong” 的,删除没有返回值
sqlite> delete from Student where StudentName like 'XiaoHong';
//查询 学生名字,删除成功
sqlite> select StudentName from Student;
XiaoMin
关键字:update
公式:update 表的名字 set 变量x=新值 where 变量x=旧值;
//修改 学生名字叫 “XiaoMin” 的,更改为 “XiaoDong”
sqlite> update Student set StudentName='XiaoDong' where StudentName='XiaoMin';
//查询 学生名字,修改成功
sqlite> select StudentName from Student;
XiaoDong