数据库软件:
关系型数据库:Mysql Oracle SqlServer Sqlite
非关系型数据库:Redis NoSQL
1.数组,链表,文件,数据库
数组,链表:内存存放数据的方式(代码运行结束,关机数据丢失)
文件,数据库:外存存放数据的方式(代码运行结束,关机数据不会丢失)
文件:数据量很小,处理效率很低}
数据库:数据量很大 , 处理数据(增删改查)效率高
2.安装sqlite数据库:
1.让虚拟机能够上网
2.apt-get工具集配置好
3.sudo apt-get install sqlite3
4.启动sqlite3
sqlite3
5.输入.quit退出
3.SQL命令:
1. .headers on/off 打开/关闭 数据库中列名称
2. .mode csv/column/html/insert/line/list/tabs/tcl
3. .schema 表名称 查看表名称对应的表的格式(有哪几列?每一列类型?)
4. .width 宽度 设置显示时的数据宽度
5..tables 查看数据库文件中的所有表
4.SQL语言(所有的数据库都支持这种语言)
据的:增、删、改、查
1.使用sqlite3打开数据库文件
sqlite3 数据库文件名
sqlite3 ./student.db
2.创建表
create table
示例:
sqlite> create table student (id integer, name varchar(255), sex varchar(32), age integer, score integer);
3.插入数据
insert into
示例:
sqlite> insert into student values (1001, "张三", "男", 19, 80);
sqlite> insert into student (id, name, score) values (1002, "李四", 100);
sqlite> insert into student values (1002, "王二", "女", 18, NULL);
4.查找数据
select
select * from 加 名字 --- 查看名字列表所有内容
select * from 列表名 where 指定列表 = "指定内容 and 指定列表 = “指定内容" --- 筛选内容打印
select *from 列表名 where 指定列 like “%大致内容%” --- 查看包含指定内容的列
示例:
sqlite> select * from student;
sqlite> select name, score from student;
5.内容匹配
where
示例:
sqlite> select * from student where name like "%张%";
.mode column --- 让内容对齐
.headers on --- 显示表头
.width --- 设置每个内容的宽度
6.主键:
key:键值
内键:在表中唯一标识一条数据称为内键
外键:与外部表进行标识的数据称为外键
示例:creat tables 列表名 (id integer primary key asc) --- 以不能重复命名的方式进行自增
7.删除
delete from
示例:
delete from student where name="李四";
8.修改
update
示例:
update student set sex="男",age=19 where name="王二";
9.排序
order by
示例:
select * from order_manager order by ordertime desc;
多表联合查询:
1.交叉连接
cross join
示例:
sqlite> select student.name as 学生姓名, lesson.name as 课程名
...> from student cross join lesson;
2.内连接
inner join
示例:
sqlite> select score.id as 成绩编号, student.name as 学生姓名, score.score as 成绩
...> from score inner join student on score.stuid=student.id;
3.外连接
outer join
示例:
sqlite> select score.id as 成绩编号, student.name as 学生姓名, score.score as 成绩
...> from student left outer join score on score.stuid=student.id;
示例:
sqlite> select score.id as 成绩编号, student.name as 学生姓名, score.score as 成绩
...> from student left outer join score on score.stuid=student.id
...> where name="张三"
...> order by 成绩 desc;