配置环境
有两个数据库,mymy1和mymy2,这两个数据库分别使用。只有Q5不一样。需要定义不同的Q5。
cd /localstorage/YOUID
ls
code .
cp /home/cs3311/web/22T1/assignments/ass1/ass1.sql ass1.sql
dropdb mymy
source ./env
dropdb mymy
createdb mymy
bzcat /home/cs3311/web/22T1/assignments/ass1/mymy1.dump.bz2 | psql mymy
cp /web/cs3311/22T1/assignments/ass1/check1.sql .
psql mymy -f check1.sql
psql mymy
select * from dbpop();
tab_name | n_records
---------------------------+-----------
acad_object_groups | 17101
academic_standing | 8
affiliations | 12385
books | 0
buildings | 115
class_enrolment_waitlist | 0
class_enrolments | 0
class_teachers | 0
class_types | 16
classes | 163332
countries | 237
course_books | 0
course_enrolment_waitlist | 0
course_enrolments | 525688
course_quotas | 0
course_staff | 44083
courses | 73220
degree_types | 13
degrees_awarded | 0
external_subjects | 0
facilities | 26
orgunit_groups | 537
orgunit_types | 10
orgunits | 648
people | 55767
program_degrees | 1193
program_enrolments | 193456
program_group_members | 2360
program_rules | 1422
programs | 1324
public_holidays | 0
q10a_expected | 1
q10b_expected | 4
q10c_expected | 11
q1_expected | 16
q2_expected | 1
q3_expected | 1
q4_expected | 9
q5a_expected | 1
q6a_expected | 1
q6b_expected | 1
q6c_expected | 1
q7a_expected | 18
q7b_expected | 28
q7c_expected | 18
q8a_expected | 0
q8b_expected | 12
q8c_expected | 5
q9a_expected | 1
q9b_expected | 12
q9c_expected | 27
room_facilities | 1461
room_types | 8
rooms | 1100
rules | 9183
staff | 24405
staff_role_classes | 9
staff_role_types | 7
staff_roles | 884
stream_enrolments | 205068
stream_group_members | 3597
stream_rules | 1516
stream_types | 6
streams | 2077
student_groups | 0
students | 31361
subject_group_members | 32597
subject_prereqs | 6245
subjects | 17779
terms | 64
variations | 0
(72 rows)
理解数据和约束schema
很多信息可以通过通读一遍spec获得,不会也可以问老师。这里对一些老师忽略的东西做一些补充。
写query
写测试
psql mymy -f /web/cs3311/22T1/assignments/ass1/check1.sql
mymy=# select * from dbpop();查看所有表格
select check_q1();
select * from q2_expected;
select * from check_all();