#实体的完整性
概述: 实体:即表中的一行(一条记录)代表一个实体(entity) 实体完整性的作用:标识每一行 数据不重复
约束类型有:主键约束 primary key 唯一约束 unique 自动增长列 auto_increment
*主键约束
注:每个表中要有一个主键。特点:数据唯一,且不能为null。
第一种添加方式:
CREATE TABLE student( id int primary key, name varchar(50));
第二种添加方式:此种方式优势在于,可以创建联合主键
CREATE TABLE student(id int,name varchar(50),primary key(id));
CREATE TABLE student(classid int,stuid int,name varchar(50),primary key(classid ,stuid));
第三种添加方式:
CREATE TABLE student(id int,name varchar(50));
ALTER TABLE student ADD PRIMARY KEY (id);
*唯一约束
特点是不能重复
create table student(id int primary key,name varchar(255) unique);
*自动增长列
sqlserver数据库(identity) oracle数据库( sequence)��
给主键添加自动增长的数值,列只能是整数类型
create table student(id int primary key auto_increment,name varchar(255));
#域完整性
域完整性的作用:限制此单元格的数据正确,不对照此列的其它单元格比较 域代表当前单元 格 域完整性约束:数据类型 非空约束(notnull) 默认值约束(default) check约束(mysql不支 持)check(sex='男'orsex='女')
*数据类型
数值类型、日期类型、字符串类型
*非空约束 not null
CREATE TABLE student( Id int pirmary key, Name varchar(50) not null, Sex varchar(10));
INSERT INTO student values(1,’tom’,null);
*默认值约束
CREATE TABLE student(Id int pirmary key,Name varchar(50) not null,Sex varchar(10) default ‘男’);
insert into student1 values(1,'tom','女');
insert into student1 values(2,'jerry',default);
#引用完整性(参照完整性)
外键约束: foreing key
分清主次关系 外键依赖主键 先有主键 再有外键
语法
CONSTRAINT 约束的名字 FOREIGN KEY(约束的字段) REFERENCES 主表(约束字段)
ALTER TABLE 次表名称 ADD CONSTRAINT 约束的名字 FOREIGN KEY(约束的字段) REFERENCES 主表(约束的字段);
例:
CREATE TABLE student(sid int pirmary key,name varchar(50) not null,sex varchar(10) default‘男’);
create table score(id int,score int,sid int , --外键列的数据类型一定要与主键的类型一致
CONSTRAINT fk_score_sid foreign key (sid) references student(id));
第二种添加外键方式。
ALTER TABLE score1 ADD CONSTRAINT fk_stu_score FOREIGN KEY(sid) REFERENCES stu(id);