1. 程式人生 > >4.4 - 數據庫 - 表操作練習題

4.4 - 數據庫 - 表操作練習題

nan arch ESS 5.4 des field delet 1.10 mysql

表操作練習題:
練習:用戶表,用戶組表,主機表,業務線表
關聯:用戶與用戶組 主機與業務線 用戶與主機

# 用戶表
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)




4.4 - 數據庫 - 表操作練習題