1. 表设计
-
前提
设计表首先应该按需遵循三范式。三范式: 1NF-->列不可再分最小原子(避免重复);在第一范式(1NF)中表的每一行只包含一个实例的信息。 2NF-->主键依赖(确定唯一);第二范式(2NF)就是非主属性非部分依赖于主键。 3NF-->消除传递依赖(建立主外键关联,拆分表);第三范式(3NF)就是属性不依赖于其它非主属性。 目的:避免数据重复冗余。
-
表的设计
1.确定表名 。 2.确定字段名,类型 +约束(主键 外键 非空 默 检查认 唯一)。 字段类型: number char varchar2 date 其中char(n): 不可变字符,字符数必须为n个。 varchar2(n): 可变字符,字符数<=n; 约束:constraints 主键:唯一标识一条记录(唯一并且非空)。 唯一:唯一。 非空:不能为空。 默认:当没给值时使用给定一个默认值。 检查:自定义的规则。 外键:参考其他表(自己)的某个(某些)字段。 涉及到两张表: 1.父表|主表 。 2.子表|从表: 子表中添加一个外键字段,关联主表的主键字段。 注意:外键字段的值只能为主表中主键字段已有的值。
-
表与表之间的关系
一对一关系: (例如:用户表 身份证信息表) 主外键关联关系 一对多|多对一: (例如:班级表 学生表) 主外键关联关系: 在多的一方设置外键,关联一的一方的主键。 多对多: (例如:订单与商品 学生与选课) 中间表: 定义两张表的关联关系。
2. DDL
数据定义语言。
create表创建
drop删除表
alter修改表结构
-
表创建
表名必须唯一,如果存在 ,必须删除。语法: create table 表名( 字段名 类型(长度) 约束, ...其他字段.... ..约束........ ); 创建: 1.创建表(不加约束)。 2.创建表(同时创建约束+默认名称)。 3.创建表(同时创建约束+指定名称):在字段的后面指定约束名直接添加。 4.创建表(同时创建约束+指定名称):在结构结束之前为当前表中指定字段添加约束。