day46---数据库练习

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

  1. 新建用户表
# 新建用户表
create table user(
    id int not null unique auto_increment,
    username varchar(20) not null,
    password varchar(50) not null,
    primary key(username,password)
);

day46---数据库练习

  1. 用户组表
# 用户组表
create table usergroup(
    id int primary key auto_increment,
    groupname varchar(20) not null unique
);

day46---数据库练习

  1. 主机表
# 主机表
create table host(
    id int primary key auto_increment,
    ip char(15) not null unique default '127.0.0.1'
);

day46---数据库练习

  1. 业务线表
create table business(
    id int primary key auto_increment,
    business varchar(20) not null unique
);

day46---数据库练习

  1. 建关系: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)
);

day46---数据库练习

  1. 建关系: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)
);

day46---数据库练习

  1. 建关系: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)
);

day46---数据库练习

练习

# 班级表
create table class(
    cid int primary key auto_increment,
    caption varchar(20) not null unique
);

# 学生表
create table student(
    sid int not null unique auto_increment,
    sname varchar(20) not null,
    gender enum('female','male') default 'male',
    class_id int not null,
    primary key(sid,sname),
    foreign key(class_id) references class(cid)
    on update cascade
    on delete cascade
);

# 老师表
create table teacher(
    tid int not null unique auto_increment,
    tname varchar(20) not null,
    primary key(tid,tname)
);

# 课程表
create table course(
    cid int not null unique auto_increment,
    cname varchar(20) not null unique,
    teacher_id int not null,
    primary key(cid,cname),
    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 not null,
    course_id int not null unique,
    number int not null,
    foreign key(student_id) references student(sid)
    on update cascade
    on delete cascade,
    foreign key(course_id) references course(cid)
    on update cascade
    on delete cascade
);