cursor.execute(‘’‘CREATE TABLE TABLE1 # CREATE TABLE 表名 创建一张数据表
# 下面就是数据表的关键字段,就是说数据表包含哪些信息
# 字段名 数据类型 [其他设置]
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50));’‘’)
conn.commit() # 提交事务,就相当于提交工作,保存之前的操作
conn.close() # 关闭数据库连接
我们先来看一下execute()方法,它就是用来执行sql语句的的,里面的参数就是一个字符串,这个字符串就是sql语句;
创建数据表语句:CREATE TABLE 表名(字段名 数据类型)
字段名我们不用讲了,就相当于变量名,指明数据时有什么含义
数据类型:在sqlite里面,有五种数据的存储类:
| 存储类 | 说明 |
| --- | --- |
| NULL | 空值,没有保存数据 |
| INTEGER | 带符号的整数,会根据数值大小分配1、2、3、4、6或8字节的存储空间 |
| REAL | 浮点数(分配8个字节的存储空间) |
| TEXT | 文本字符串 |
| BLOB | 二进制文件的容器,可以将二进制图片等存储在这里 |
| 没有布尔类型 | 在这里表示逻辑值可用0或1代替 |
| 也没有日期类型 | 有三种存储方式,我这边还是以文本存储“YYYY-MM-DD HH:MM:SS.SSS”,分别对应年月日时分秒 |
但是SQLite支持列的亲和类型,就像攀亲戚,可以使用CHAR(n),定义定长字符串,这也是符合要求的,这边不做赘述,可以看[菜鸟教程的SQLite数据类型]( )相关内容了解;
下面把常见的几种亲和数据类型用法总结下,后续不断补充:
| 数据类型 | 说明 |
| --- | --- |
| VARCHAR(n) | 长度不固定,但是最大长度为n的字符串,最大长度不可超过4000 |
| CHAR(n) | 长度固定为n的字符串,最大长度不可超过254 |
PRIMARY KEY:主键,首先主键不是数据表的必选项,但是为了数据的完整性、冗余性方面考虑,主键是必要的,主键有着唯一性和非空性的特性,什么意思?
![](https://img-blog.csdnimg.cn/20191220135054838.png)
我们以上面基本信息表的栗子来说明:
1. 如果没有主键的话,只要符合数据类型,都可以添加进去,那么就有一种情况,同一个人的信息添加了两遍,这个添加没有任何错误,但是重复的数据就增加了数据的冗余性,确保每一条数据起码有信息是不一样