数据库基础07视图、约束、索引

视图

  • 视图的概念

视图的概念——虚表,本质就是查询的SQL

  • 视图的作用

视图的作用——用来存储我们的SQL

  • 视图的创建

CREATE VIEW V_EMP AS 
SELECT EMPNO,ENAME,JOB,MGR,DEPTNO,HIREDATE FROM EMP;
  • 视图的查询

通过视图获取员工的信息

SELECT * FROM V_EMP;
  • 视图的分类

(简单视图、复杂视图、关联视图)
V_EMP 简单视图 映射的是一张真实的表 基表EMP

  • 视图的更新

ALTER VIEW V_EMP AS 
SELECT EMPNO,ENAME,JOB,MGR,DEPTNO FROM EMP;

SELECT * FROM V_EMP;
  • 对视图进行增、删、改记录

对V_EMP视图执行INSERT操作

INSERT INTO V_EMP (EMPNO,ENAME,JOB,MGR,DEPTNO) 
VALUES (9001,'ZHANGSAN','MANAGER',7369,10);

SELECT * FROM EMP;

设计一个视图用来获取10号部门的员工信息

CREATE VIEW V_EMP_10 AS 
SELECT EMPNO,ENAME,JOB,MGR,DEPTNO FROM EMP WHERE DEPTNO=10;

删除视图

DROP VIEW V_EMP;

约束

什么是约束?

可以理解为限制条件,规则

  • 空值约束--- NULL 表示允许为空

    CREATE TABLE EMP(
        EMPNO NUMERIC(4) NULL,
        ENAME VARCHAR(50) NULL
    );
  • 唯一性约束--- UNIQUE 表示值必须是唯一的

CREATE TABLE EMP(
    EMPNO NUMERIC(4) UNIQUE,
    ENAME VARCHAR(50) NULL
);
  • 非空约束--- NOT NULL表示不允许为空

CREATE TABLE EMP(
    EMPNO NUMERIC(4) UNIQUE,
    ENAME VARCHAR(50) NOT NULL
);
  • 主键约束--- PRIMARY KEY 表示值必须是唯一的,并且不允许为空

CREATE TABLE EMP(
    EMPNO NUMERIC(4) PRIMARY KEY,
    ENAME VARCHAR(50) NOT NULL
);

添加主键约束

ALTER TABLE DEPT ADD CONSTRAINT PK_ID PRIMARY KEY (ID);

删除主键约束

ALTER TABLE DEPT DROP CONSTRAINT PK_ID;
  • 主键自增

CREATE TABLE EMP(
    EMPNO NUMERIC(4) PRIMARY KEY IDENTITY(1000,1),
    ENAME VARCHAR(50) NOT NULL
);
  • 外键约束---FOREIGN KEY 表示外键字段的值必须与主表中的主键值一致

CREATE TABLE EMP(
    EMPNO NUMERIC(4) PRIMARY KEY IDENTITY(1000,1),
    ENAME VARCHAR(50) NOT NULL
        EID NUMERIC(4) FOREIGN KEY REFERENCES EMP2(主表)
);

添加外键约束

ALTER TABLE EMP ADD CONSTRAINT FK_DEPTNO
 FOREIGN KEY (DEPTNO) REFERENCES DEPT(ID);
  • 默认值约束

CREATE TABLE EMP(
    EMPNO NUMERIC(4) PRIMARY KEY,
    ENAME VARCHAR(50) NOT NULL,
    ESAL NUMERIC(10) DEFAULT'5000'
);

为表中现有的字段添加默认值

ALTER TABLE EMP ADD CONSTRAINT DF_ESAL_EMP DEFAULT(5000) FOR ESAL;
  • 检查约束

CREATE TABLE EMP(
    EMPNO NUMERIC(4) PRIMARY KEY,
    ENAME VARCHAR(50) NOT NULL,
    ESAL NUMERIC(10) DEFAULT'5000'
    ESEX NVARCHAR(2)CHECK (ESEX='男' OR ESEX='女'),

);

索引

参考资料:

https://blog.csdn.net/jacke121/article/details/78268602

https://blog.csdn.net/zhaoliang831214/article/details/80782939

你可能感兴趣的:(数据库基础07视图、约束、索引)