sharebike_create_and_init.sql 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. drop database if exists sharebike;
  2. create database sharebike default charset utf8;
  3. use sharebike;
  4. create table tb_city
  5. (
  6. cityid integer not null auto_increment,
  7. cityname varchar(20) not null,
  8. primary key (cityid)
  9. );
  10. create table tb_user
  11. (
  12. userid integer not null auto_increment,
  13. nickname varchar(50) not null,
  14. tel char(11) not null,
  15. cityid integer not null,
  16. regdate date,
  17. primary key (userid)
  18. );
  19. create table tb_bike
  20. (
  21. bikeid integer not null auto_increment,
  22. statecode integer default 0,
  23. broken bit default 0,
  24. primary key (bikeid)
  25. );
  26. create table tb_record
  27. (
  28. recordid integer not null auto_increment,
  29. userid integer not null,
  30. bikeid integer not null,
  31. begintime datetime not null,
  32. endtime datetime,
  33. payway integer,
  34. cost float,
  35. primary key (recordid)
  36. );
  37. alter table tb_record add constraint fk_record_userid foreign key (userid) references tb_user (userid);
  38. alter table tb_record add constraint fk_record_bikeid foreign key (bikeid) references tb_bike (bikeid);
  39. select cityname, total from (select cityid, count(cityid) as total from tb_user group by cityid) t1 inner join tb_city t2 on t1.cityid=t2.cityid;
  40. select max(total) from (select userid, count(userid) as total from tb_record group by userid) t1
  41. select nickname, cityname from (select userid, count(userid) as total from tb_record group by userid having total=(select max(total) from (select userid, count(userid) as total from tb_record group by userid) t1)) t2 inner join tb_user as t3 on t2.userid=t3.userid inner join tb_city as t4 on t3.cityid=t4.cityid;
  42. select bikeid, broken from tb_bike