MST
星途 面试题库

面试题:SQLite数据完整性约束之主键约束

在SQLite中,如何创建一个包含主键约束的表?主键约束在数据完整性方面起到什么作用?如果插入违反主键约束的数据,SQLite默认如何处理?
28.4万 热度难度
数据库SQLite

知识考点

AI 面试

面试题答案

一键面试
  1. 在SQLite中创建包含主键约束的表
    • 方式一:在创建表时直接指定主键列,语法如下:
    CREATE TABLE your_table_name (
        column1 data_type PRIMARY KEY,
        column2 data_type,
        ...
    );
    
    例如创建一个students表,以student_id作为主键:
    CREATE TABLE students (
        student_id INTEGER PRIMARY KEY,
        student_name TEXT,
        age INTEGER
    );
    
    • 方式二:在创建表时使用CONSTRAINT关键字定义主键约束,语法如下:
    CREATE TABLE your_table_name (
        column1 data_type,
        column2 data_type,
       ...,
        CONSTRAINT constraint_name PRIMARY KEY (column1)
    );
    
    例如:
    CREATE TABLE students (
        student_id INTEGER,
        student_name TEXT,
        age INTEGER,
        CONSTRAINT pk_students PRIMARY KEY (student_id)
    );
    
  2. 主键约束在数据完整性方面的作用
    • 唯一性保证:主键约束确保表中每一行数据在主键列上的值是唯一的。这可以防止在表中插入重复的数据行,比如在students表中,每个学生的student_id必须是唯一的,避免出现两个学生有相同的student_id
    • 标识特定行:主键可以作为表中每一行数据的唯一标识。通过主键,可以方便地定位和操作特定的行数据,比如查询、更新或删除某一个特定学生的记录。
    • 外键关联基础:主键经常被用作其他表中外键关联的基础。例如有一个scores表记录学生的成绩,其中可能会有一个student_id外键关联到students表的student_id主键,保证成绩数据与学生数据的正确关联。
  3. 如果插入违反主键约束的数据,SQLite默认如何处理
    • SQLite默认会抛出一个错误,阻止插入操作。例如在上述students表中,如果尝试插入一个student_id已经存在的记录,SQLite会返回一个类似SQLITE_CONSTRAINT_PRIMARYKEY的错误,表明违反了主键约束,插入操作失败。