SQLite3-约束
约束的定义约束是在表的数据列上强制执行的规则,这些是用来限制可以插入到表中的数据类型,这确保了数据库中数据的准确性和可靠性。
约束可以是列级或表级。列级约束仅适用于列,表级约束被应用到整个表。
以下是在 SQLite 中常用的约束。
NOT NULL 约束:确保某列不能有 NULL 值。
DEFAULT 约束:当某列没有指定值时,为该列提供默认值。
UNIQUE 约束:确保某列中的所有值是不同的。
PRIMARY Key 约束:唯一标识数据库表中的各行/记录。
CHECK 约束:CHECK 约束确保某列中的所有值满足一定条件。
NOT NULL约束默认情况下,列可以保存 NULL 值。如果您不想某列有 NULL 值,那么需要在该列上定义此约束,指定在该列上不允许 NULL 值。NULL 与没有数据是不一样的,它代表着未知的数据。
1234567CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT N ...
SQLite3-DQL基本查询
SELECT语句语句定义SQLite 的 SELECT 语句用于从 SQLite 数据库表中获取数据,以结果表的形式返回数据。这些结果表也被称为结果集。
代码示例语法如下:
1SELECT column1, column2, columnN FROM table_name;
1)查询某些列的内容
1sqlite> SELECT ID, NAME, SALARY FROM COMPANY;
2)查询全部列的内容
1SELECT * FROM COMPANY;
LIKE语句语句定义SQLite 的 LIKE 运算符是用来匹配通配符指定模式的文本值。如果搜索表达式与模式表达式匹配,LIKE 运算符将返回真(true),也就是 1。这里有两个通配符与 LIKE 运算符一起使用:百分号 (%)下划线 (_)百分号(%)代表零个、一个或多个数字或字符。下划线(_)代表一个单一的数字或字符。这些符号可以被组合使用。
代码示例AGE以2开头:
1sqlite> SELECT * FROM COMPANY WHERE AGE LIKE '2%';
COMPANY ...
SQLite3-DML语句基本使用
INSERT 语句-插入数据语句定义SQLite 的 INSERT INTO 语句用于向数据库的某个表中添加新的数据行。
代码示例语法如下:
12INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]VALUES (value1, value2, value3,...valueN);
如果不指定列名则按列的顺序给数据赋值。可以通过在一个有一组字段的表上使用 select 语句,填充数据到另一个表中。下面是语法:
1234INSERT INTO first_table_name [(column1, column2, ... columnN)] SELECT column1, column2, ...columnN FROM second_table_name [WHERE condition];
UPDATE 语句-修改数据语句定义SQLite 的 UPDATE 查询用于修改表中已有的记录。可以使用带有 WHERE 子句的 UPDATE 查询来更新选定行,否则所有的行都会被更新。
代码示例语法如下: ...
SQLite3-DDL语句基本使用
数据库操作创建数据库创建数据库可以在命令行中使用以下命令:1)创建数据库
1$ sqlite3 DatabaseName.db
2)使用.open 命令,有则打开无则创建并打开
1sqlite>.open test.db
.dump 导出数据库你可以使用.dump 命令将一个数据库完全导出到一个文本文件:
1$sqlite3 testDB.db .dump > testDB.sql
上面的命令将转换整个 testDB.db 数据库的内容到 SQLite 的语句中,并将其转储到 ASCII 文本文件 testDB.sql 中。您可以通过简单的方式从生成的 testDB.sql 恢复,如下所示:
1$sqlite3 testDB.db < testDB.sql
ATTACH 语句-附加数据库假设这样一种情况,当在同一时间有多个数据库可用,您想使用其中的任何一个。SQLite 的 ATTACH DATABASE 语句是用来选择一个特定的数据库,使用该命令后,所有的 SQLite 语句将在附加的数据库下执行。如果数据库尚未被创建,上面的命令将创建一个数据库,如果数据库 ...
SQLite3-基本操作
SQLite 的特点SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是一个增长最快的数据库引擎,这是在普及方面的增长,与它的尺寸大小无关。SQLite 源代码不受版权限制。SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。SQLite 不需要一个单独的服务器进程或操作的系统(无服务器的)。SQLite 不需要配置,这意味着不需要安装或管理。一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于 250KiB。SQLite 是自给自足的,这意味着不需要任何外部的依赖。SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问。SQLite 支持 SQL92(SQL2)标准的大多数查询语言的功能。SQLite 使用 ANSI-C 编写的,并提供了简单和易于使用的 API。SQLite 可在 UNIX(Linux, Mac OS-X, Android, ...
Python-网络请求
requests 模块基本理论Python requests 是一个常用的 HTTP 请求库,可以方便地向网站发送 HTTP 请求,并获取响应结果。requests 模块比 urllib 模块更简洁。如同 JavaScript 的 AJAX 与 C#的 HttpClient 一样,requests 模块用于请求网络接口,发送 get、post、put 等 http 请求。
代码示例发送 Get 网络请求:
123456# 导入 requests 包import requests# 发送请求res = requests.get('https://www.baidu.com/')# 返回网页内容print(res.text)
常用方法requests 模块有以下常用方法:
方法
描述
delete(url, args)
发送 DELETE 请求到指定 url
get(url, params, args)
发送 GET 请求到指定 url
head(url, args)
发送 HEAD 请求到指定 url
patch(url, data, arg ...
Python-多线程
多线程多线程的概念与 Python 实现每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。每个线程都有他自己的一组 CPU 寄存器,称为线程的上下文,该上下文反映了线程上次运行该线程的 CPU 寄存器的状态。指令指针和堆栈指针寄存器是线程上下文中两个最重要的寄存器,线程总是在进程得到上下文中运行的,这些地址都用于标志拥有线程的进程地址空间中的内存。线程可以被抢占(中断)。在其他线程正在运行时,线程可以暂时搁置(也称为睡眠) – 这就是线程的退让。线程可以分为:内核线程:由操作系统内核创建和撤销。用户线程:不需要内核支持而在用户程序中实现的线程。Python3 线程中常用的两个模块为:_threadthreading(推荐使用)thread 模块已被废弃。用户可以使用 threading 模块代替。所以,在 Python3 中不能再使用”thread” 模块。为了兼容性,Python3 将 thread 重命名为 “_thread”。
_thread 模块_thread 提供了低级别的、原始的线程以 ...
Python-面向对象
类 class定义一个类使用 class 关键字定义一个类。
12345678class People: name=None age=None def eat(self): print("吃东西")p = People() # 实例化p.eat()
构造函数众所周知,js 的构造函数是 constructor,c#的构造函数是与类名同名的不带返回值的方法。而在 python 中构造函数是__init__()。
1234class People: def __init__(self,a,b): self.a=a self.b=b
注意实例化的时候要给构造函数传参。
self类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。有点类似 js 和 c#的 this。当你定义一个类,并在类中定义方法时,第一个参数通常被命名为 self,尽管你可以使用其他名称,但强烈建议使用 self,以保持代码的一致性和可读性。
类的继承基本理论在定义类的时候使用 ...
Python-错误与异常
异常捕获基本理论1、python 的错误捕获使用 try/except 语法。2、工作方式如下:首先,执行 try 子句(在关键字 try 和关键字 except 之间的语句)。如果没有异常发生,忽略 except 子句,try 子句执行后结束。如果在执行 try 子句的过程中发生了异常,那么 try 子句余下的部分将被忽略。如果异常的类型和 except 之后的名称相符,那么对应的 except 子句将被执行。如果一个异常没有与任何的 except 匹配,那么这个异常将会传递给上层的 try 中。3、一个 try 语句可能包含多个 except 子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。4、处理程序将只针对对应的 try 子句中的异常进行处理,而不是其他的 try 的处理程序中的异常。
代码示例数值错误:
12345while True: try: x = int(input("请输入一个数字: ")) except ValueError: print("您输入的不是数字,请再次尝试输入 ...
Python-模块化
模块化基本概念需在另一个源文件里执行 import 语句,js 中为”import {xxx} from ‘xxx’ “,c#中为”using namespace xxx”,python 中为”from xxx import xxx”。需要把引入命令放在脚本的顶端。一个模块只会被导入一次,不管你执行了多少次 import。这样可以防止导入模块被一遍又一遍地执行。模块搜索路径:Python 解释器依次从搜索路径中去寻找所引入的模块,可以通过 sys.path 查看搜索路径。
代码示例1、导入 sys 模块:
1234567import sysprint('命令行参数如下:')for i in sys.argv: print(i)print('\n\nPython 路径为:', sys.path, '\n')
2、导入同目录下某个模块的某个函数或变量目录结构:
123project/ main.py package.py
package.py:
1234def fun1(): passdef fun2() ...














