专业java、php、iOS、C++、网页设计、平面设计、网络营销、游戏开发、前端与移动开发培训机构
简单约束
- 建表时可以给特定的字段设置一些约束条件,常见的约束有
NOT NULL:规定字段的值不能为nullUNIQUE:规定字段的值必须唯一DEFAULT:指定字段的默认值 (建议:尽量给字段设定严格的约束,以保证数据的规范性)示例
- CREATE TABLE T_Person (id INTEGER, name TEXT
NOT NULLUNIQUE, 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);