CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
jackfrued

CoCalc provides the best real-time collaborative environment for Jupyter Notebooks, LaTeX documents, and SageMath, scalable from individual users to large groups and classes!

GitHub Repository: jackfrued/Python-100-Days
Path: blob/master/Day36-45/code/sharebike_create_and_init.sql
Views: 729
1
drop database if exists sharebike;
2
3
create database sharebike default charset utf8;
4
5
use sharebike;
6
7
create table tb_city
8
(
9
cityid integer not null auto_increment,
10
cityname varchar(20) not null,
11
primary key (cityid)
12
);
13
14
create table tb_user
15
(
16
userid integer not null auto_increment,
17
nickname varchar(50) not null,
18
tel char(11) not null,
19
cityid integer not null,
20
regdate date,
21
primary key (userid)
22
);
23
24
create table tb_bike
25
(
26
bikeid integer not null auto_increment,
27
statecode integer default 0,
28
broken bit default 0,
29
primary key (bikeid)
30
);
31
32
create table tb_record
33
(
34
recordid integer not null auto_increment,
35
userid integer not null,
36
bikeid integer not null,
37
begintime datetime not null,
38
endtime datetime,
39
payway integer,
40
cost float,
41
primary key (recordid)
42
);
43
44
alter table tb_record add constraint fk_record_userid foreign key (userid) references tb_user (userid);
45
46
alter table tb_record add constraint fk_record_bikeid foreign key (bikeid) references tb_bike (bikeid);
47
48
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;
49
50
select max(total) from (select userid, count(userid) as total from tb_record group by userid) t1
51
52
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;
53
54
select bikeid, broken from tb_bike
55