美文网首页
MySQL Demo 06

MySQL Demo 06

作者: GeekGray | 来源:发表于2018-10-04 16:41 被阅读4次

    阅读原文

    MySQL Demo 06

    1. 常见约束

    1.向表emp2的id列中添加PRIMARY KEY约束(my_emp_id_pk)

    ALTER TABLE emp2 MODIFY COLUMN id INT PRIMARY KEY;
    ALTER TABLE emp2 ADD CONSTRAINT my_emp_id_pk PRIMARY KEY(id);
    

    2. 向表dept2的id列中添加PRIMARY KEY约束(my_dept_id_pk)

    3. 向表emp2中添加列dept_id,并在其中定义FOREIGN KEY约束,与之相关联的列是dept2表中的id列。

    ALTER TABLE emp2 ADD COLUMN dept_id INT;
    ALTER TABLE emp2 ADD CONSTRAINT fk_emp2_dept2 FOREIGN KEY(dept_id) REFERENCES dept2(id);
    
    位置 支持的约束类型 是否可以起约束名
    列级约束: 列的后面 语法都支持 但外键没有效果 不可以
    表级约束: 所有列的下面 默认和非空不支持 其他支持 可以(主键没有效果)

    2. 视图

    一、创建视图emp_v1,要求查询电话号码以‘011’开头的员工姓名和工资、邮箱

    CREATE OR REPLACE VIEW emp_v1
    AS
    SELECT last_name,salary,email
    FROM employees
    WHERE phone_number LIKE '011%';
    

    二、创建视图emp_v2,要求查询部门的最高工资高于12000的部门信息

    CREATE OR REPLACE VIEW emp_v2
    AS
    SELECT MAX(salary) mx_dep,department_id
    FROM employees
    GROUP BY department_id
    HAVING MAX(salary)>12000;
    
    
    SELECT d.*,m.mx_dep
    FROM departments d
    JOIN emp_v2 m
    ON m.department_id = d.`department_id`;
    

    相关文章

      网友评论

          本文标题:MySQL Demo 06

          本文链接:https://www.haomeiwen.com/subject/qnvxaftx.html