我要成为嵌入式高手之3月12日Linux高编第二十天!!
数据库软件
关系型数据库:
Mysql
Oracle
SqlServer
Sqlite
非关系型数据库(相当于在内存中搞了一块空间),能够快速完成对用户的响应
Redis
NoSQL
一、数组、链表、文件、数据库
数组、链表:内存存放数据(程序结束数据丢失)
文件、数据库:外存存放数据的方式(程序结束数据不会丢失)
文件:数据量很小 处理效率很低
数据库:数据量很大 处理数据(增删改查)效率高
二、安装sqlite数据库
1、让虚拟机上网
2、apt---get工具集配置好
3、sudo apt-get install sqlite3
4、启动sqlite3
5、输入.quit退出
三、SQL命令
1、.header(s) ON|OFF 打开/关闭 数据库中列名称
2、.mode MODE设置输出格式
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| * csv 逗号分隔的值 * column 左对齐的列 * html HTML 的 <table> 代码 * insert TABLE 表的 SQL 插入(insert)语句 * line 每行一个值 * list 由 .separator 字符串分隔的值 * tabs 由 Tab 分隔的值 * tcl TCL 列表元素 |
3、.schema 表名称 ---查看表名称对应的表的格式(有哪几列?每一列类型?)
4、.width 宽度---设置显示时的数据宽度
5、.tables 查看数据库当中的所有表
四、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
示例:
sqlite> select * from student;
sqlite> select name, score from student;
5、内容匹配
where
示例:
sqlite> select * from student where name like "%张%";
6、主键
key:键值
primary key:设置为键值
primary key asc:id自动增长
内键:在表中唯一标识一条数据称为内键
外键:与外部表进行标识的数据称为外键
7、删除
delete from
示例:
delete from 表名字 where 信息
8、修改
update
- UPDATE table_name
- SET column1 = value1, column2 = value2...., columnN = valueN
- WHERE [condition];
示例:
update buyorder set contact="王五",produce="华为" where id=10;
9、排序
order by
asc升序、desc降序
select * from buyorder order by time desc;
select * from buyorder order by time asc;
多表联合查询:
1、交叉连接
cross join
A∪B(A表当中每一项和B表当中每一项做连接)
2、内连接
inner join
A∩B(AB共同部分)
3、外连接
outer join
A∪(A∩B)