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

Posted Alice的小屋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)




以上是关于4.4 - 数据库 - 表操作练习题的主要内容,如果未能解决你的问题,请参考以下文章

十二创建和管理表

十二创建和管理表

SQL数据库-基本操作

loj #10134. 「一本通 4.4 练习 1」Dis

MySQL-注释-Navicat基本使用-复杂查询练习题-解题思路-pymysql操作数据库-SQL注入-05

数据库表操作练习