• mysqlx小练习


    作业(一)

    练习:账号信息表,用户组,主机表,主机组

    #用户表
    create table user(
    id int not null unique auto_increment,
    username varchar(20) not null,
    password varchar(50) not null,
    primary key(username,password)
    );
    
    #用户组表
    create table usergroup(
    id int primary key auto_increment,
    groupname varchar(20) not null unique
    );
    
    #主机表
    create table host(
    id int primary key auto_increment,
    ip char(15) not null unique default '127.0.0.1'
    );
    
    #业务线表
    create table business(
    id int primary key auto_increment,
    business varchar(20) not null unique
    );
    
    #建关系:user与usergroup
    
    create table user2usergroup(
    id int not null unique auto_increment,
    user_id int not null,
    group_id int not null,
    primary key(user_id,group_id),
    foreign key(user_id) references user(id),
    foreign key(group_id) references usergroup(id)
    );
    
    #建关系:host与business
    create table host2business(
    id int not null unique auto_increment,
    host_id int not null,
    business_id int not null,
    primary key(host_id,business_id),
    foreign key(host_id) references host(id),
    foreign key(business_id) references business(id)
    );
    
    #建关系:user与host
    create table user2host(
    id int not null unique auto_increment,
    user_id int not null,
    host_id int not null,
    primary key(user_id,host_id),
    foreign key(user_id) references user(id),
    foreign key(host_id) references host(id)
    );
    

    练习:

    # 班级表
    cid	caption
    # 学生表
    sid sname gender class_id
    # 老师表
    tid	tname
    # 课程表
    cid	cname	teacher_id
    # 成绩表
    sid	student_id course_id number
    
    # 班级表
    create table class(
    cid int primary key auto_increment, 
    caption char(16) not null
    );
    
    # 老师表
    create table teacher(
    tid int primary key auto_increment, 
    tname char(16) not null
    );
    
    # 学生表
    create table student(
    sid int primary key auto_increment, 
    aname char(16) not null, 
    gender enum('female','male') default 'male', 
    class_id int,
    foreign key(class_id) references class(cid) 
    on update cascade 
    on delete cascade
    );
    
    # 课程表
    create table course(
    cid int primary key auto_increment, 
    cname char(16) not null, 
    teacher_id int, 
    foreign key(teacher_id) references teacher(tid) 
    on update cascade 
    on delete cascade
    );
    
    # 成绩表
    create table score(
    sid int primary key auto_increment, 
    student_id int, 
    foreign key(student_id) references student(sid) 
    on update cascade 
    on delete cascade, 
    course_id int, 
    foreign key(course_id) references course(cid) 
    on update cascade 
    on delete cascade, 
    number int
    );
    

    作业(二)

    完成下列分组查询练习题(以课上建表代码为参考)
    create table emp(
      id int not null unique auto_increment,
      name varchar(20) not null,
      sex enum('male','female') not null default 'male', #大部分是男的
      age int(3) unsigned not null default 28,
      hire_date date not null,
      post varchar(50),
      post_comment varchar(100),
      salary double(15,2),
      office int, #一个部门一个屋子
      depart_id int
    );
    
    #插入记录
    #三个部门:教学,销售,运营
    insert into emp(name,sex,age,hire_date,post,salary,office,depart_id) values
    ('jason','male',18,'20170301','张江第一帅形象代言',7300.33,401,1), #以下是教学部
    ('tom','male',78,'20150302','teacher',1000000.31,401,1),
    ('kevin','male',81,'20130305','teacher',8300,401,1),
    ('tony','male',73,'20140701','teacher',3500,401,1),
    ('owen','male',28,'20121101','teacher',2100,401,1),
    ('jack','female',18,'20110211','teacher',9000,401,1),
    ('jenny','male',18,'19000301','teacher',30000,401,1),
    ('sank','male',48,'20101111','teacher',10000,401,1),
    ('哈哈','female',48,'20150311','sale',3000.13,402,2),#以下是销售部门
    ('呵呵','female',38,'20101101','sale',2000.35,402,2),
    ('西西','female',18,'20110312','sale',1000.37,402,2),
    ('乐乐','female',18,'20160513','sale',3000.29,402,2),
    ('拉拉','female',28,'20170127','sale',4000.33,402,2),
    ('僧龙','male',28,'20160311','operation',10000.13,403,3), #以下是运营部门
    ('程咬金','male',18,'19970312','operation',20000,403,3),
    ('程咬银','female',18,'20130311','operation',19000,403,3),
    ('程咬铜','male',18,'20150411','operation',18000,403,3),
    ('程咬铁','female',18,'20140512','operation',17000,403,3);
    
    1. 查询岗位名以及岗位包含的所有员工名字
        select post,group_concat(name) from emp group by post;
    
    2. 查询岗位名以及各岗位内包含的员工个数
        select post,count(id) from emp group by post;
    
    3. 查询公司内男员工和女员工的个数
        select sex,count(id) from employee group by sex;
    
    4. 查询岗位名以及各岗位的平均薪资
        select post,avg(salary) from emp group by post;
    
    5. 查询岗位名以及各岗位的最高薪资
        select post,max(salary) from emp group by post;
    
    6. 查询岗位名以及各岗位的最低薪资
        select post,min(salary) from emp group by post;
    
    7. 查询男员工与男员工的平均薪资,女员工与女员工的平均薪资
        select sex,avg(salary) from emp group by sex;
    
  • 相关阅读:
    数据分析必须掌握的统计学知识!
    数据分析常用指标大全,熟记!
    Java编程基础阶段笔记 day 07 面向对象编程(上)
    Java编程基础阶段笔记 day04 Java基础语法(下)
    Java编程基础阶段笔记 day06 二维数组
    Java编程基础阶段笔记 day05 数组
    Java编程基础阶段笔记 day04 Java基础语法(下)
    Java编程基础阶段笔记 day03 Java基本语法(中)
    啥?虚拟现实技术已经应用到自动化仓库? | 基于unity实现的自动化仓库模拟监控系统
    交互设计书单--西南交大课程推荐
  • 原文地址:https://www.cnblogs.com/Lance-WJ/p/12832087.html
Copyright © 2020-2023  润新知