Oracle数据库——约束(constraint),job

什么是约束

束是表级的强制规定

有以下五种约束:
  • NOT NULL : 非空约束
  • UNIQUE :唯一约束
  • PRIMARY KEY:主键
  • FOREIGN KEY:外键
  • CHECK:检查条件

1、非空约束只能定义在列上。
例 :

CREATE TABLE employees(
    employee_id    NUMBER(6),
    last_name      VARCHAR2(25) NOT NULL,   //这使用的就是系统命名
    salary         NUMBER(8,2),
    commission_pct NUMBER(2,2),
    hire_date      DATE 
                   CONSTRAINT emp_hire_date_nn  //这里使用constraint 后面emp_hire_date_nn 这个就是自定义的命名
                   NOT NULL,
                   )
2、UNIQUE :唯一约束

列级约束:

CREATE TABLE emp3(
    employee_id      NUMBER(6),
    last_name        VARCHAR2(25) UNIQUE,
    email            VARCHAR2(25),
    salary           NUMBER(8,2),
    commission_pct   NUMBER(2,2),
    hire_date        DATE NOT NULL,
    )

表级约束:
在emp3表中 email 列加上唯一约束

CREATE TABLE emp3(
CONSTRAINT emp_email_uk UNIQUE(email));
)
3、PRIMARY KEY:主键
CREATE TABLE emp4(
    employee_id      NUMBER(6)    primary key,
    last_name        VARCHAR2(25) UNIQUE,
    email            VARCHAR2(25),
    salary           NUMBER(8,2),
    commission_pct   NUMBER(2,2),
    hire_date        DATE NOT NULL,
    )

表级约束:
在emp4表中 employee_id 列加上主键

CREATE TABLE emp4(
CONSTRAINT emp_email_uk primary key(employee_id);
)
4、FOREIGN KEY:外键约束
CREATE TABLE employees(
    CONSTRAINT emp_dept_fk FOREIGN KEY (department_id)
      REFERENCES departments(department_id),
)

emp_dept_fk:约束名
FOREIGN KEY:外键约束
作用在列:department_id 上
references: 联系另外一张表(父表)
departments:另一张表的表名
department_id:另一张表的主键

FOREIGN KEY 约束的关键字:

FOREIGN KEY: 在表级指定子表中的列
REFERENCES: 标示在父表中的列
ON DELETE CASCADE(级联删除): 当父表中的列被删除时,子表中相对应的列也被删除
ON DELETE SET NULL(级联置空): 子表中相应的列置空

5、CHECK: 约束
CREATE TABLE emp4(
    employee_id      NUMBER(6)    primary key,
    salary           NUMBER(8,2)  CHECK (salary > 2000),
    )

意思就是 salary 数值必须大于2000才可以。

6、添加约束

添加 NOT NULL 约束要使用 MODIFY 语句

例:把emp5表中salary 字段改为非空。

alert  table  emp5
modify (salary number(10,2)  not null)

添加别的用 add constraint

  ALTER TABLE	 emp5
  add  constraint  emp5_name_uk   unique(name);

emp5_name_uk :约束名
name:列名
emp5:表名

7、删除约束
ALTER TABLE      emp5
DROP CONSTRAINT  emp_manager_fk;

emp5是表名。
emp_manager_fk是约束名。

8、无效化约束

在ALTER TABLE 语句中使用 disable 子句将约束无效化

ALTER TABLE		emp5
disable  constraint  emp_emp_id_pk;

emp5:表名
emp_emp_id_pk:约束名

9、激活约束

enable子句可将当前无效的约束激活

ALTER TABLE		emp5
enable constraint   emp_emp_id_pk
10、job :定时任务

1、定时执行:

select sysdate+1/270  from dual;

这就是 每隔1/270天会执行。

2、定点执行:

select trunc(sysdate)+1+9/24  from dual

每天的9点执行。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值