专业java、php、iOS、C++、网页设计、平面设计、网络营销、游戏开发、前端与移动开发培训机构
简单约束
- 建表时可以给特定的字段设置一些约束条件,常见的约束有
NOT NULL
:规定字段的值不能为nullUNIQUE
:规定字段的值必须唯一DEFAULT
:指定字段的默认值 (建议:尽量给字段设定严格的约束,以保证数据的规范性)示例
- CREATE TABLE T_Person (id INTEGER, name TEXT
NOT NULL
UNIQUE
, age INTEGER NOT NULL DEFAULT 1) ; name
字段不能为NULL
,并且唯一age
字段不能为NULL
,并且默认为1
- CREATE TABLE T_Person (id INTEGER, name TEXT
主键约束
- 如果
T_Person
表中就name
和age
两个字段,而且有些记录的name
和age
字段的值都一样时,那么就没法区分这些数据,造成数据库的记录不唯一,这样就不方便管理数据 - 良好的数据库编程规范应该要保证每条记录的
唯一性
,为此,增加主键约束
- 每张表都必须有一个主键,用来标识记录的唯一性
- 主键(Primary Key,简称PK)用来
唯一
地标识某一条记录
- 例如t_student可以增加一个id字段作为主键,相当于人的身份证
外键约束
- 利用
外键约束
可以用来建立表与表之间
的联系 - 外键的一般情况是:一张表的某个字段,引用着另一张表的主键字段
- 新建一个外键
CREATE TABLE T_Student (id INTEGER primary key autoincrement, name TEXT, age INTEGER, class_id INTEGER, constraint fk_student_class foreign key (class_id) references t_class (id));
T_Student
表中有一个叫做fk_t_student_class_id_t_class_id
的外键
- 这个外键的作用是用
T_Student
表中的class_id
字段引用T_Class
表的id
字段 - 数据库语句
CREATE TABLE T_Student (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, class_id INTEGER); INSERT INTO T_Student (name, age) VALUES ('凤姐', 20); INSERT INTO T_Student (name, age) VALUES ('冰冰', 20); INSERT INTO T_Student (name, age) VALUES ('刘德华', 30); INSERT INTO T_Student (name, age) VALUES ('老王', 30);
CREATE TABLE T_Class (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, room INTEGER); INSERT INTO T_Class (name, room) VALUES ('iOS', 110); INSERT INTO T_Class (name, room) VALUES ('Android', 119); INSERT INTO T_Class (name, room) VALUES ('UI', 120);