关系数据库的几种设计范式介绍
1、第一范式(1NF)
在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。
所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。
2、第二范式(2NF)
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被唯一地区分。
3、第三范式(3NF)
满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。
insert into classes(class_name,class_address) values('j138',"红瓦寺") 选择插入某些列
insert into classes values(null,'j139',"红瓦寺") 插入所有列,自增粘以null占位
insert into className(class_name) select class_name from classes 从classes 表中查询所有的class_name 插入到className表中的(class_name) 字段
INSERT INTO t_student VALUES
(1,'张三',20,'男'),
(2,'李四',25,'男'),
(3,'王五',19,'女')
INSERT INTO t_student_bak SELECT * FROM t_student
CREATE TABLE t_student_bak SELECT * FROM t_student
删除
DELETE from classes where class_id=4
删除年龄在18-20
delete from student where age>=18 and age<=20
DELETE FROM t_student WHERE 年龄 BETWEEN 18 AND 20
UPDATE 表名 SET 列1=新值1,列2=新值2 WHERE 过滤条件
UPDATE classes set class_address='红瓦寺',class_name='hehe' where class_id=3
UPDATE classes set class_name=null where class_id=3
'' 和null 一样吗?? 严格意义不一样
String s='';
删除字段
alter table tableName drop column 列名
修改字段
alter table tableName change 原列名 新列名 类型
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。
创建索引
create index name_index on student(stu_No)
CREATE INDEX <索引名> ON <表名>(<列名一>,[<列名二>],…);
删除索引
alter table student drop index name_index
为什么要保证实体完整性
保证每行所代表的实体能互相区别,不能存在两条一模一样的记录
什么是实体完整性
表中的一行数据如果与它所代表的实体完全一致,则具备实体完整性。
create table student(
stu_id int PRIMARY key,
stu_name varchar(20)
)
主键(Primary Key)是表中的一到多个列,主键列不能为空,也不能重复。一个表中只能有一个主键。
唯一约束
create table student2(
stu_id int PRIMARY key,
stu_name varchar(20),
stu_No varchar(20) UNIQUE
)
为什么要域完整性
保证指定列的数据的有效性
什么叫域完整性
域完整性是指定列的输入有效性
create table student3(
stu_id int PRIMARY key,
stu_name varchar(20) not null, --保证stu_name这个列不能有空值
stu_No varchar(20) UNIQUE
)
--
默认约束
create table student4(
stu_id int PRIMARY key,
stu_name varchar(20) not null,
stu_No varchar(20) UNIQUE,
stu_address varchar(40) DEFAULT '郎沃学生宿舍楼' not null
)
check检查约束
create table student5(
stu_id int PRIMARY key,
stu_name varchar(20) not null,
stu_No varchar(20) UNIQUE,
stu_address varchar(40) DEFAULT '郎沃学生宿舍楼' not null,
stu_gender int CHECK(stu_gender=1 or stu_gender=0)
)
支持创建,但是没有功能