回顾
1 SQL语句的分类
2创建表的语法
create table 表名(
列名 数据类型 not null,
列名 数据类型
);
3 删除表
drop table 表名;
数据完整性分类
1实体完整性 (表中每条记录唯一)
2域完整性
3引用完整性
数据完整性约束
实体完整性约束
主键约束
表中唯一标识每条记录的一列或多列
非空,唯一 ,一张表有且仅有一个主键
选择逐渐:最少性,稳定性
设置方式
在创建表时设置
stu_id int primary key,
图形化界面创建时,选择主键
在已创建的表中修改表添加主键
alter table 表名
add constraint pk_stu_id primary key(字段名);
或者
alter table 表名
add primary key(stu_id);
唯一约束
唯一,可空,一张表可以有多个唯一约束的列
设置方式:
创建表时设置关键词
phone char(11) unique,
图形化创建表时 设置唯一
已存在的表列添加唯一约束
alter table 表名
add unique index uk_phone(列名);
或者
alter table 表名
add constraint uk_phone unique(列名);
域完整性约束
数据类型 非空约束 默认值约束 检查约束
非空约束,默认值约束
1在创建表时设置
stu_name varchar(50) not null,
stu_sex char(1) defaule('男') not null
2在图形化界面时设置
3给已存在的表添加默认值约束
alter table 表名
modify column stu_sex char(1) default('男');
检查约束 check约束
已存在表添加检查约束
alter table 表名
add constraint ck_stu_sex check(stu_sex = '男' or stu_sex = '女');
或者
alter table 表名
add constraint ck_stu_sex check(stu_sex in ('男', '女'));
alter table 表名
add constraint ck_stu_sex check(stu_age between 18 and 89 );
或者
alter table 表名
add constraint ck_stu_sex check(stu_age >= 16 and stu_age <= 30 );
%任意长度字符 , _任意单个字符
alter table student
add constraint ck_email check(email like '%_@_%');
引用完整性约束
外键引用:表中列引用另一张表中主键列或唯一值
表与表之间有引用关系 主表被引用的表 子表引用表
外键列:一张表中可以有多个外键,外键列值可以重复
设置方式
通过图形化在创建子表时设置
通过E-R图设置
通过代码设置
alter table 子表名
add constraint fk_stuid foreign key(外键列名) references 主表名(主键列名)
数据表设计 三范式
原子性
每张表仅描述同一类实体信息 保证与主键字段直接相关,
非主键列与主键列是直接依赖,不能产生传递依赖
E-R图
有几个工程 , 每个工程都有几个人参与,每个人可以参与几个工程,工时由工程和职务共同决定
增删改查
添加语句
值列表的个数 数据与列名列表一致
insert每次添加一条记录
除数值类型,其他类型都要使用‘ ’
给可为null的列赋值
1) 不写此列,默认值为null
2) 写列,关键词用null
给有默认值的列赋值
1)不写此列,默认值为null
2)写列,赋值为default
有自增列,不写此列
列名列表省略不写时,值的顺序必须与表定义的顺序一致
jdbc连接数据库
在官网上下载jdbc的jar包
Maven Repository: Search/Browse/Explore (mvnrepository.com)