4.4 - 数据库 - 表操作练习题

表操作练习题:
练习:用户表,用户组表,主机表,业务线表
关联:用户与用户组 主机与业务线 用户与主机

# 用户表
create table user(
    id int not null unique auto_increment,
    username varchar(20) not null,
    password varchar(50) not null,
    primary key(username,password)
);
insert into user(username,password) values
('root','123'),
('egon','456'),
('alex','alex3714')
;
mysql> desc user;
+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| id       | int(11)     | NO   | UNI | NULL    | auto_increment |
| username | varchar(20) | NO   | PRI | NULL    |                |
| password | varchar(50) | NO   | PRI | NULL    |                |
+----------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

mysql> select * from user;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
|  1 | root     | 123      |
|  2 | egon     | 456      |
|  3 | alex     | alex3714 |
+----+----------+----------+
3 rows in set (0.00 sec)


# 用户组表
create table usergroup(
    id int primary key auto_increment,
    groupname varchar(20) not null unique
);
insert into usergroup(groupname) values
('IT'),
('Sale'),
('Finance'),
('Boss')
;
mysql> desc usergroup;
+-----------+-------------+------+-----+---------+----------------+
| Field     | Type        | Null | Key | Default | Extra          |
+-----------+-------------+------+-----+---------+----------------+
| id        | int(11)     | NO   | PRI | NULL    | auto_increment |
| groupname | varchar(20) | NO   | UNI | NULL    |                |
+-----------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

mysql> select * from usergroup;
+----+-----------+
| id | groupname |
+----+-----------+
|  4 | Boss      |
|  3 | Finance   |
|  1 | IT        |
|  2 | Sale      |
+----+-----------+
4 rows in set (0.01 sec)

# 主机表
create table host(
    id int primary key auto_increment,
    ip char(15) not null unique default '127.0.0.1'
);
insert into host(ip) values
('172.16.45.2'),
('172.16.31.10'),
('172.16.45.3'),
('172.16.31.11'),
('172.10.45.3'),
('172.10.45.4'),
('172.10.45.5'),
('192.168.1.20'),
('192.168.1.21'),
('192.168.1.22'),
('192.168.2.23'),
('192.168.2.223'),
('192.168.2.24'),
('192.168.3.22'),
('192.168.3.23'),
('192.168.3.24')
;
mysql> desc host;
+-------+----------+------+-----+-----------+----------------+
| Field | Type     | Null | Key | Default   | Extra          |
+-------+----------+------+-----+-----------+----------------+
| id    | int(11)  | NO   | PRI | NULL      | auto_increment |
| ip    | char(15) | NO   | UNI | 127.0.0.1 |                |
+-------+----------+------+-----+-----------+----------------+
2 rows in set (0.00 sec)

mysql> select * from host;
+----+---------------+
| id | ip            |
+----+---------------+
|  5 | 172.10.45.3   |
|  6 | 172.10.45.4   |
|  7 | 172.10.45.5   |
|  2 | 172.16.31.10  |
|  4 | 172.16.31.11  |
|  1 | 172.16.45.2   |
|  3 | 172.16.45.3   |
|  8 | 192.168.1.20  |
|  9 | 192.168.1.21  |
| 10 | 192.168.1.22  |
| 12 | 192.168.2.223 |
| 11 | 192.168.2.23  |
| 13 | 192.168.2.24  |
| 14 | 192.168.3.22  |
| 15 | 192.168.3.23  |
| 16 | 192.168.3.24  |
+----+---------------+
16 rows in set (0.01 sec)

# 业务线表
create table business(
    id int primary key auto_increment,
    business varchar(20) not null unique
);
insert into business(business) values
('轻松贷'),
('随便花'),
('大富翁'),
('穷一生')
;
mysql> desc business;
+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| id       | int(11)     | NO   | PRI | NULL    | auto_increment |
| business | varchar(20) | NO   | UNI | NULL    |                |
+----------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

mysql> select * from business;
+----+-----------+
| id | business  |
+----+-----------+
|  3 | 大富翁    |
|  4 | 穷一生    |
|  1 | 轻松贷    |
|  2 | 随便花    |
+----+-----------+
4 rows in set (0.00 sec)


# 建关系 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)
    on delete cascade
    on update cascade,
    foreign key(group_id) references usergroup(id)
    on delete cascade
    on update cascade
);
insert into user2usergroup(user_id,group_id) values
(1,1),
(1,2),
(1,3),
(1,4),
(2,3),
(2,4),
(3,4)
;
mysql> desc user2usergroup;
+----------+---------+------+-----+---------+----------------+
| Field    | Type    | Null | Key | Default | Extra          |
+----------+---------+------+-----+---------+----------------+
| id       | int(11) | NO   | UNI | NULL    | auto_increment |
| user_id  | int(11) | NO   | PRI | NULL    |                |
| group_id | int(11) | NO   | PRI | NULL    |                |
+----------+---------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

mysql> select * from user2usergroup;
+----+---------+----------+
| id | user_id | group_id |
+----+---------+----------+
|  1 |       1 |        1 |
|  2 |       1 |        2 |
|  3 |       1 |        3 |
|  4 |       1 |        4 |
|  5 |       2 |        3 |
|  6 |       2 |        4 |
|  7 |       3 |        4 |
+----+---------+----------+
7 rows in set (0.00 sec)

# 建关系 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)
    on delete cascade
    on update cascade,
    foreign key(business_id) references business(id)
    on delete cascade
    on update cascade
);
insert into host2business(host_id,business_id) values
(1,1),
(1,2),
(1,3),
(2,2),
(2,3),
(3,4)
;
mysql> desc host2business;
+-------------+---------+------+-----+---------+----------------+
| Field       | Type    | Null | Key | Default | Extra          |
+-------------+---------+------+-----+---------+----------------+
| id          | int(11) | NO   | UNI | NULL    | auto_increment |
| host_id     | int(11) | NO   | PRI | NULL    |                |
| business_id | int(11) | NO   | PRI | NULL    |                |
+-------------+---------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

mysql> select * from host2business;
+----+---------+-------------+
| id | host_id | business_id |
+----+---------+-------------+
|  1 |       1 |           1 |
|  2 |       1 |           2 |
|  3 |       1 |           3 |
|  4 |       2 |           2 |
|  5 |       2 |           3 |
|  6 |       3 |           4 |
+----+---------+-------------+
6 rows in set (0.00 sec)


# 建关系 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)
    on delete cascade
    on update cascade,
    foreign key(host_id) references host(id)
    on delete cascade
    on update cascade
);
insert into user2host(user_id,host_id) values
(1,1),
(1,2),
(1,3),
(1,4),
(1,5),
(1,6),
(1,7),
(1,8),
(1,9),
(1,10),
(1,11),
(1,12),
(1,13),
(1,14),
(1,15),
(1,16),
(2,2),
(2,3),
(2,4),
(2,5),
(3,10),
(3,11),
(3,12)
;
mysql> desc user2host;
+---------+---------+------+-----+---------+----------------+
| Field   | Type    | Null | Key | Default | Extra          |
+---------+---------+------+-----+---------+----------------+
| id      | int(11) | NO   | UNI | NULL    | auto_increment |
| user_id | int(11) | NO   | PRI | NULL    |                |
| host_id | int(11) | NO   | PRI | NULL    |                |
+---------+---------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

mysql> select * from user2host;
+----+---------+---------+
| id | user_id | host_id |
+----+---------+---------+
|  1 |       1 |       1 |
|  2 |       1 |       2 |
|  3 |       1 |       3 |
|  4 |       1 |       4 |
|  5 |       1 |       5 |
|  6 |       1 |       6 |
|  7 |       1 |       7 |
|  8 |       1 |       8 |
|  9 |       1 |       9 |
| 10 |       1 |      10 |
| 11 |       1 |      11 |
| 12 |       1 |      12 |
| 13 |       1 |      13 |
| 14 |       1 |      14 |
| 15 |       1 |      15 |
| 16 |       1 |      16 |
| 17 |       2 |       2 |
| 18 |       2 |       3 |
| 19 |       2 |       4 |
| 20 |       2 |       5 |
| 21 |       3 |      10 |
| 22 |       3 |      11 |
| 23 |       3 |      12 |
+----+---------+---------+
23 rows in set (0.00 sec)

 




posted @ 2018-04-14 10:22  Alice的小屋  阅读(728)  评论(0编辑  收藏  举报