创德科技面试题
一.
给出以下一个表
省份province
|
城市city
|
地区region
|
广东省
|
广州市
|
海珠区
|
广东省
|
广州市
|
天河区
|
广东省
|
海丰市
|
|
要求给出创建数据库给表的数据,要求输入城市名称后可以显示出该城市的省份以及要考虑到一些市并没有区
答案:
创建表:
create table province(pid int primary key,province varchar(25));省份表
create table city(cid int primary key,city varchar(25),pid int);城市表
create table region(rid int primary key,region varchar(25),cid int);地区表
插入相应的语句
得到三个表份别为下图所示:
pid
|
province
|
1
|
广东省
|
cid
|
city
|
pid
|
1
|
广州市
|
1
|
2
|
海丰市
|
1
|
rid
|
region
|
cid
|
1
|
天河区
|
1
|
2
|
海珠区
|
1
|
3
|
null
|
2
|
select p.province,r.region from province p,region r where p.pid=(select pid from city where city='广州市') and r.cid=(select cid from city where city='广州市');
查询结果:
province
|
region
|
广东省
|
海珠区
|
广东省
|
天河区
|
select p.province,r.region from province p,region r where p.pid=(select pid from city where city='海丰市') and r.cid=(select cid from city where city='海丰市');
province
|
region
|
广东省
|
null
|