SQLite如何使用PRIMARY KEY?SQLite 是一个数据库管理系统,它和 MySQL 一样用于管理关系型数据库的数据,它也像其他数据库一样包含许多约束,如 UNIQUE、PRIMARY KEY 和 FOREIGN KEY。
SQLite中使用PRIMARY KEY:那么什么是约束以及它们如何在 SQLite 中工作?这篇文章是关于约束以及如何在 SQLite 中使用 PRIMARY 键约束的综合指南。
SQLite 中的约束是什么约束是指将相同数据类型的数据插入到表中的原则,它组织了列的结构,也保证了存储在表中的数据的可靠性。有很多限制,其中一些是:
- 首要的关键
- 外键
- 唯一约束
- 默认约束
- 检查约束
主键必须遵循以下规则:
- 主键的列不能定义为 NULL 值
- 插入到主键列的行中的数据应该是唯一的
- 主键应该被称为另一个表的特定外键
- 该表只能包含一个主键
一张表应该只有一个主键,但是一个主键可以定义多个列,当多个列被用作一个主键时,称为复合主键。
SQLite中给任意表添加主键的几种方式创建表时分配主键有两种方式,分别是:
- 到表的单列
- 到一个表的多列
CREATE TABLE TABLE_NAME (column_name1 <
datatype> PRIMARY KEY NOT NULL, column_name2 <
datatype>);
此语法的解释如下:
- CREATE TABLE 的子句用于创建表
- 键入表名而不是 table_name
- 键入列名而不是 column_name1,并写入其数据类型
- 使用 PRIMARY KEY 子句,如果你将列分配为主键,并将其定义为 NULL 或 NOT NULL
- 键入名称第二列替换 column_name2
CREATE TABLE school_students (std_id INTEGER PRIMARY KEY NOT NULL, std_names);
文章图片
已经创建了 school_students 表,有一个单列作为主键。
如何创建一个表,将主键分配给 SQLite 中的多个列SQLite如何使用PRIMARY KEY?我们可以通过为多列分配一个主键来创建一个表,它的一般语法是:
CREATE TABLE TABLE_NAME (column_name1 <
datatype> , column_name2 <
datatype>, column_name3 <
datatype>, PRIMARY KEY(column_name1, column_name2));
在上面的语法中,我们在语句的末尾定义了主键,括号中是要包含在主键中的列名。
再次理解这一点,我们考虑一个表employees_data的例子,我们将用emp_id、emp_name和emp_dep三列创建它,然后我们将emp_id和emp_name分配为PRIMARY KEY:
CREATE TABLE employees_data (emp_id INTEGER, emp_name TEXT, emp_dep TEXT,emp_name PRIMARY KEY(emp_id, emp_email));
文章图片
该表已创建,主键中有两列。
如何在SQLite中向现有表添加主键SQLite中使用PRIMARY KEY:我们不能使用 ALTER 子句向 SQLite 中的现有表添加主键,但要为 SQLite 中的表分配主键,我们将按照以下步骤操作:
- 应检查外键约束
- 将表重命名为其他名称
- 创建一个与之前创建的结构相同的新表
- 将数据从该表复制到该表
- 删除重命名的表
- 最后,开启外键约束
SELECT * FROM students_data;
文章图片
【如何在SQLite中使用PRIMARY KEY主键(详细介绍)】要为“id”分配主键,我们将运行以下命令:
PRAGMA foreign_keys=off;
BEGIN TRANSACTION;
ALTER TABLE students_data RENAME TO new_students_data;
CREATE TABLE students_data (id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, attendance INTEGER NOT NULL);
INSERT INTO students_dataSELECT * FROM new_students_data;
DROP TABLE new_students_data;
COMMIT;
PRAGMA foreign_keys=ON;
文章图片
要检查主键是否分配给名为 id 的列,请运行以下命令:
PRAGMA table_info([
students_data]);
文章图片
如何删除SQLite中的主键约束SQLite如何使用PRIMARY KEY?像其他数据库一样,我们不能使用 DROP 和 ALTER 命令删除约束,要删除 PRIMARY KEY 约束,我们应该遵循相同的过程,我们选择将约束添加到现有表并重新定义表的结构而不定义主键任何列的键。让我们再次考虑上面添加主键的示例,我们将主键删除为:
PRAGMA foreign_keys=off;
BEGIN TRANSACTION;
ALTER TABLE students_data RENAME TO new_students_data;
CREATE TABLE students_data (id INTEGER NOT NULL, name TEXT NOT NULL, attendance INTEGER NOT NULL);
INSERT INTO students_dataSELECT * FROM new_students_data;
DROP TABLE new_students_data;
COMMIT;
PRAGMA foreign_keys=ON;
文章图片
推荐阅读
- SQLite中的日期和时间类型和函数是什么()
- 如何在Linux上安装Microsoft Office(详细指南)
- 如何在Windows 10上使用Kali Linux应用程序()
- 如何使用 WSL 在 Windows 10 中启动 Debian GUI()
- 如何从 Windows 10 中删除 Ubuntu Dual Boot()
- 本文教你windows10图标设置
- 本文教你安装激活win10 msdn
- 本文教你升级安装win10
- 本文教你win10如何取得推送修好补丁