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)