MySQL多表查询

MySQL多表查询

多表查询就是从多张表查询数据

  • 若不加限制条件,直接使用select语句进行多表查询,将会产生笛卡尔积
  • 笛卡尔积就是把所有集合元素的所有组合都列举出来,即A的元素个数乘上B的元素个数
-- 删除表
DROP TABLE IF EXISTS emp;
DROP TABLE IF EXISTS dept;
-- 部门表
CREATE TABLE dept
(
    id       INT PRIMARY KEY auto_increment, -- 部门编号,主键自增
    dep_name VARCHAR(20) NOT NULL UNIQUE     -- 部门名称
);
-- 员工表
create table emp
(
    id        int auto_increment comment '编号'
        primary key,
    name      varchar(20) not null comment '姓名',
    age       int check ( age > 0 && age <= 120 ) comment '年龄',
    gender    char(1)     not null default '男' comment '性别',
    salary    double      not null default 5000 comment '薪资',
    join_date date        null comment '入职时间',
    dep_id    int         null comment '所属部门编号',
    constraint name
        unique (name),
    constraint fk_emp_dept
        foreign key (dep_id) references dept (id)
);
-- ALTER TABLE emp DROP FOREIGN KEY fk_emp_dept;-- 建完表之后再添加外键
-- ALTER TABLE emp ADD CONSTRAINT fk_emp_dept FOREIGN KEY emp ( dep_id ) REFERENCES dept ( id );
INSERT INTO dept (dep_name)
VALUES ('市场部'),
       ('销售部'),
       ('清洁部'),
       ('研发部'),
       ('行政部'),
       ('人力资源部'),
       ('财务部');
INSERT INTO emp(name, age, gender, salary, join_date, dep_id)
VALUES ('张三丰', 20, '男', 8000, '2002-01-01', 1),
       ('风清扬', 21, '男', 8800, 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值