范式、数据库表的创建、修改和约束设置
程序员文章站
2022-05-30 18:16:41
...
数据库设计三范式
解决数据冗余的问题
第一范式
确保每列保持原子性
如果数据库表中的所有字段值都是不可分解的原子值,就满足了第一范式。
第二范式
确保表中的每列都和主键相关,而不能只于主键的某一部分相关。
主要是在联合主键的情况下。
第三范式
每一列都与主键直接相关,而不能与主键简介相关。
创建表
新建表时,指定的表名必须不存在,否则出错。
/**
CREATE TABLE [schema.]table
(column datatype [DEFAULT expr] , …
);
**/
create table student(
stu_id number(10),
name varchar2(20),
age number(3),
hiredate date,
grade varchar2(10) default 1,
classes varchar2(10),
email varchar2(50));
-- 插入数据
insert into student values(20191109,'zhangsan',22,to_date('2019-11-09','yyyy-mm-dd'),'2','1','[email protected]');
修改表结构
添加列
--再添加表的列的时候,不能允许设置成not null
alter table student add address varchar2(100);
删除列
alter table student drop column address;
修改字段
alter table student modify(email varchar2(100));
重新命名表
rename student to stu;
删除表
drop table stu;
添加外键
-- add constraint 添加约数 (名称)
alter table student add constraint fk_0001 foreign key(deptno) references dept(deptno);
外键删除
有三个方式:
RESTRICT:只有当依赖表中没有一个外键与要删除的主表中的主键值相对应是,才能删除。
CASADE:将依赖表中所有与外键值与主表中眼删除的主键值相对应的记录一起删除
SET NULL:将依赖表中所有与主表中被删除的主键值相对应的外键值设为空值。
约束constraint
分为五大类:
not null: 非空约束,插入数据的时候某些列不允许为空
unique key:唯一键约束,可以限定某一个列的值是唯一的,唯一键的列一般被用作索引列。
primary key:主键:非空且唯一,任何一张表一般情况下最好有主键,用来唯一的标识一行记录,
foreign key:外键,当多个表之间有关联关系(一个表的某个列的值依赖与另一张表的某个值)的时候,需要使用外键
check约束:可以根据用户自己的需求去限定某些列的值
下一篇: java中list快速创建
推荐阅读
-
MSSQL监控数据库的DDL操作(创建,修改,删除存储过程,创建,修改,删除表等)
-
SQL Server创建数据库和数据表的相关约束实现方法
-
Oracle数据库之序列的创建、修改和删除操作
-
荐 2.3 数据库表结构的创建和修改|数据库索引、默认值、计算列|聚集索引、非聚集索引
-
Jpa 实现自动更新表中的创建日期和修改时间
-
Oracle数据库学习之约束的创建与管理(修改约束)实例讲解
-
SQL查询出表、存储过程、触发器的创建时间和最后修改时间示例
-
Oracle数据库学习之表的创建与使用(修改表结构)不建议使用
-
mysql修改数据库编码(数据库字符集)和表的字符编码的方法_MySQL
-
MySQL查看数据表的创建时间和最后修改时间