文章目录

* 1. 常用的数据字段 <https://blog.csdn.net/Spectre_win/article/details/88397307#1__1>
* 2. 表的创建 <https://blog.csdn.net/Spectre_win/article/details/88397307#2__11>
* 3. 添加注释 <https://blog.csdn.net/Spectre_win/article/details/88397307#3__24>
* 4. 主键和外键 <https://blog.csdn.net/Spectre_win/article/details/88397307#4__42>
* 4.1 主表和子表
<https://blog.csdn.net/Spectre_win/article/details/88397307#41__43>
* 4.2 主键 <https://blog.csdn.net/Spectre_win/article/details/88397307#42__48>
* 4.3 外键 <https://blog.csdn.net/Spectre_win/article/details/88397307#43__56>


<>1. 常用的数据字段

数据类型 关键字 描述
字符串 VARCHAR2(n) 其中 n 表示的是字符串所能保存的最大长度,基本上保存 200 个左右的内容
整数 NUMBER(n) 表示最多为 n 位的整数,有时候也可以使用 INT 替代
小数 NUMBER(n,m) 其中 m 为小数位,n-m 位整数位,有时候也可以用FLOAT 代替
日期 DATE 存放日期-时间
大文本 CLOB 可以存储海量文字(4G),例如存储《三国演义》、《西游记》
大对象 BLOB 存放二进制数据,例如:电影,MP3,图片,文字
<>2. 表的创建


-- 创建表 create table Grade ( grade_Id integer not null, grade_Name
VARCHAR2(50) not null, primary key(grade_Id) -- 主键 );
<>3. 添加注释

*
表的注释

COMMENT ON TABLE 表名 IS ‘表的注释’;

*
列的注释

COMMENT ON COLUMN 表名.列名 IS ‘列的注释’;
-- Add comments to the table COMMENT ON TABLE Grade IS '年级表'; -- Add comments
to the columns COMMENT ON COLUMN Grade.grade_id IS '年级编号'; COMMENT ON COLUMN
Grade.grade_name IS '年级名称';
<>4. 主键和外键

<>4.1 主表和子表

* 主表:关联关系中,起主导作用的表(Grade),主表中必须有主键;
* 子表:关联关系中的附属表,子表中的外键引用主表中的主键;
<>4.2 主键

* 作用:唯一的标识表中的每一行数据
* 主键不能为空,不能重复
* 一张表中可以没有主键
* 作为主键的列可以是一列、也可以是多列(复合主键)
* PRIMARY KEY(Grade_Id)
<>4.3 外键

*
作用:在外键表中添加对主键表的引用

*
外键可以为空

*
FOREIGN KEY
FOREIGN KEY (Grade_Id) REFERENCES Grade(Grade_Id)
*
外键级联操作

* Cascade :级联
a. 父表delete、update的时候,子表会delete、update掉关联记录;
b. 年级表删除“一年级”,那么所有“一年级”的学生信息都被删除。
* Set Null:置空
a. 父表delete、update的时候,子表会将关联记录的外键字段所在列设为null,所以注意在设计子表时外键不能设为not null;
b. 年级表删除“一年级”,那么所有“一年级”的学生Grade_Id列的值为null。
c. 外键必须允许为空。
* Restrict:限定、约束(默认值)
a. 如果想要删除父表的记录时,而在子表中有关联该父表的记录,则不允许删除父表中的记录;
b. 年级表删除“一年级”,那么先检查“一年级”的有没有学生,如果有学生信息,报错,不做删除。如果没有学生信息,删除“一年级”。
* No Action:不作处理
a. 同 RESTRICT,也是首先先检查外键;
*
示例
在子表上添加外键约束(两张表都已经存在,额外添加主外键关系) ALTER TABLE student ADD CONSTRAINT
`FK_Student_Grade` FOREIGN KEY (`Grade_Id`) REFERENCES grade(Grade_Id) ON
UPDATE SET NULL ON DELETE SET NULL;

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信