数据库介绍之(sqlite)轻量级数据库基础语法

为什么使用数据库?

1.持久化。 内存中的变量当程序员当程序重启和电脑断电时丢失数据,而硬盘可以长时间、持久化的存储数据。数据存储到硬盘上的过程叫持久化。
2.数据库更加专业强大。
*纯文本文档、excel表格强大,增删改查和统计函数。

数据库基本概念

观察表格、excel表格、打开了学生列表.xls excel表格文档。类比引入数据库概念。
1.库schema;好像整个表格文档。
2.表table:对应excel表格里sheet1 sheet2 。有行内容和列组成。表描述一个类,每一行描述一个对象。
3.字段field:对应表格头部的序号、班级、姓名。好像类的属性。字段里存储的值得类型需要事先定义。
4.值value:表格每一行具体存储的信息。
5.主键 primary key:类似表格中 序号 这一列。数据库中这一列会自增并不会重复。
6.外键:foreign key:表1学员信息里里一个班级字段引用自另一个表班级信息表的的id列。优点易于维护,保持数据一致性。
7.范式:描述学校时,可以把全部信息字段定义到一张表上,也可以分为学员信息表、班级信息表、课程信息表、。划分维度、信息耦合度可高可低,具体结合业务逻辑分析。

常见数据库介绍

SQL(structured query language)结构化查询语言(关系型数据库)
关系型数据库:
1.sqlite:轻量级数据库。功能基础简单,在数据较少的情况下性能并不比重型数据库低。优点,python解释器内置驱动,无需安装直接使用,适合初学数据库。手机应用使用的就是sqlite。
2.mysql:最流行的数据库。中型。开源、php流行推动了mysql的流行。
** 3.PostgreSQL(自己课下学,老师不一定有时间讲);大象数据库,号称最先进的数据库。从大学兴起的开源数据库、架构优秀、功能前卫,数据量很大的时候,性能衰减不明显。消耗相同硬件资源的情况下性能和稳定性优于mysql数据库。django odoo等python框架官方推荐使用此数据库。但是目前市场占有率还不高。
4.oracle:地位很高的商用数据库。昂贵、稳定、功能强大,常与java配合使用。
5、DB2 sybase MSSQL等,其它的商用数据库.
6.access:微软office套件中包含,轻量,由于数据库门槛,使用者不多。

no-sql(no only sql非关系型数据库)型数据库:
7.mongodb 存储单位是文档,json(类似后端dict)结构整个存进去。数据常放在内存中以获得查询性能,定期把数据持久化到硬盘上。
8.redis 键值对 “name”=“小明” 。

参考网址点击这里

SQL

structured query language 结构化查询语言。专门对数据库进行查找、增加、修改、删除、统计的操作语言。
CURD 增删改查 (create update read delete)
书写风格,大小写都行,建议大写。表名大小写都行,但是在一些数据库中不区分大小写。

基本语法

1.创建表
CREATE TABLE 表名 {
字段类型 字段名 其它关键字(主键 备注),
INT id PRIMARY KEY,
VARCHAR(10) name ,
VARCHAR(10) age
}

2.查找
SELECT 字段1,字段2,字段3,…FROM 表名; python中返回值形如[(1, 502版, 小明, 男), (), ()]。
字段比较多时简写为 SELECT FROM 表名; 由于数据库执行时会把转换为字段再执行,性能极微小下降。
SELECT * FROM 表名 WHERE 字段1 = 过滤值,字典2=过滤值; where限定条件查找。
eg:从表student中查找所有字段 id,name,age,查找整张表

SELECT id,name,age FROM student;
SELECT * FROM student;

eg.从表student中查找id=1行的所有字段

SELECT * FROM student WHERE id=1;

3.添加add
INSERT 字段1、字段2,… INTO表名 VALUES(1, “小明”, “男”);
简写 INSERT INTO表名 VALUES(1, “小明”, “男”);
eg:在表格student 最后一行添加name=“小花”,age=“15”

INSERT INTO student(name,age) VALUES("小花",15)

4.修改
UPDATE FROM表名 SET 字段1=新值,字段2=新值 WHERE 字段1 = 过滤值;注意没有where条件限定行的话将会更新整张表。
eg:把student表中id=2的那行的name="小明"改为 name=“静静”;

UPDATE student SET name="静静" WHERE id=2;

5.删除
DELETE FROM 表名; 注意会删除整张表。
DELETE FROM WHERE 字段1 = 过滤值; 限定条件删除某些行。
eg:删除整张表;

DELETE FROM student;

eg:删除表中的id=2的那行;

DELETE FROM student WHERE id-2;

6 AND 和 OR 运算符
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

在这里插入图片描述
(1)AND 运算符实例
使用 AND 来显示所有姓为 “Carter” 并且名为 “Thomas” 的人从persons表格中:

SELECT * FROM persons WHERE LastName="Carter" AND FirstName= "Thomas";

显示结果如下:
在这里插入图片描述

(2)OR 运算符实例:
使用 OR 来显示所有姓为 “Carter” 或者名为 “Thomas” 的人:

SELECT * FROM persons WHERE WHERE LastName="Carter" OR FirstName= "Thomas";

显示结果如下:
在这里插入图片描述
(3)结合 AND 和 OR 运算符
我们也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式):

SELECT * FROM persons WHERE WHERE (FirstName="Carter" OR FirstName= "Thomas")  AND LastName="Carter" ;

如图所示:
在这里插入图片描述

SQL PRIMARY KEY 约束

PRIMARY KEY 约束唯一标识数据库表中的每条记录。

主键必须包含唯一的值。

主键列不能包含 NULL 值。

每个表都应该有一个主键,并且每个表只能有一个主键。

详细的语法还有更高级语法看这里

1.建立C:\sqlite 目录,将解压的文件放入此文件夹中; 文件列表:2017-02-13 23:26 450,048 sqldiff.exe 2017-02-13 23:27 4,963 sqlite3.def 2017-02-13 23:27 845,402 sqlite3.dll 2017-02-13 23:27 701,952 sqlite3.exe 2017-02-13 23:27 1,974,784 sqlite3_analyzer.exe 2015-04-18 10:02 95,137 sqlite3命令方式操作大全.docx 2.添加系统环境变量, 在Path变量值后面添加 C:\sqlite;(英文分号不要忘记了) 3.命令行环境下即可运行sqlite3,运行后出现sqlite> 提示符 压缩包中内含:SQLite3命令操作大全(学习好助手!) 如:创建表: create table 表名(元素名 类型,…); 删除表: drop table 表名; 插入数据: insert into 表名 values(, , ,) ; 创建索引: create [unique] index 索引名on 表名(col….); 删除索引: drop index 索引名(索引是不可更改的,想更改必须删除重新建) 删除数据: delete from 表名; 更新数据: update 表名 set 字段=’修改后的内容’ where 条件; 增加一个列: Alter table 表名 add column 字段 数据类型; 选择查询: select 字段(以”,”隔开) from 表名 where 条件; 日期和时间: Select datetime('now') 日期: select date('now'); 时间: select time('now'); 总数:select count(*) from table1; 求和:select sum(field1) from table1; 平均:select avg(field1) from table1; 最大:select max(field1) from table1; 最小:select min(field1) from table1; 排序:select 字段 from table1 order by 字段(desc或asc) ;(降序或升序) 分组:select 字段 from table1 group by 字段,字段… ; 限制输出:select 字段 from table1 limit x offset y; = select?字段?from?table1 limit y , x; ......
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值