diff --git a/content/zh/post/z-qw/images/1.1.jpg b/content/zh/post/z-qw/images/1.1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f8f879c22c3dbfdeab604b18c9cd6a046906c474 Binary files /dev/null and b/content/zh/post/z-qw/images/1.1.jpg differ diff --git a/content/zh/post/z-qw/images/1.10.jpg b/content/zh/post/z-qw/images/1.10.jpg new file mode 100644 index 0000000000000000000000000000000000000000..63671f18211b9ef67620e6f6110f7abdcf9aa921 Binary files /dev/null and b/content/zh/post/z-qw/images/1.10.jpg differ diff --git a/content/zh/post/z-qw/images/1.11.jpg b/content/zh/post/z-qw/images/1.11.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bef7ef79a5b12cd71e7cd1200767e7774e88c650 Binary files /dev/null and b/content/zh/post/z-qw/images/1.11.jpg differ diff --git a/content/zh/post/z-qw/images/1.12.jpg b/content/zh/post/z-qw/images/1.12.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5d055908aa20f0d815827d92213808241ea31b6b Binary files /dev/null and b/content/zh/post/z-qw/images/1.12.jpg differ diff --git a/content/zh/post/z-qw/images/1.13.jpg b/content/zh/post/z-qw/images/1.13.jpg new file mode 100644 index 0000000000000000000000000000000000000000..19a36729cba38819ce5ada9b25c0b6dcc715b691 Binary files /dev/null and b/content/zh/post/z-qw/images/1.13.jpg differ diff --git a/content/zh/post/z-qw/images/1.14.jpg b/content/zh/post/z-qw/images/1.14.jpg new file mode 100644 index 0000000000000000000000000000000000000000..31945e84f8e9a1b8ac47e2618b217a9176b627d3 Binary files /dev/null and b/content/zh/post/z-qw/images/1.14.jpg differ diff --git a/content/zh/post/z-qw/images/1.15.jpg b/content/zh/post/z-qw/images/1.15.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c038e04be5f58be9577e2d74cb5015acb2322d44 Binary files /dev/null and b/content/zh/post/z-qw/images/1.15.jpg differ diff --git a/content/zh/post/z-qw/images/1.16.jpg b/content/zh/post/z-qw/images/1.16.jpg new file mode 100644 index 0000000000000000000000000000000000000000..340e7a7eaa3c9eba3a7c5250422fb381cf82ed7c Binary files /dev/null and b/content/zh/post/z-qw/images/1.16.jpg differ diff --git a/content/zh/post/z-qw/images/1.17.jpg b/content/zh/post/z-qw/images/1.17.jpg new file mode 100644 index 0000000000000000000000000000000000000000..343c6f75761800b589ad9f388992d2d190869f51 Binary files /dev/null and b/content/zh/post/z-qw/images/1.17.jpg differ diff --git a/content/zh/post/z-qw/images/1.18.jpg b/content/zh/post/z-qw/images/1.18.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f37bd754758b46b52295f1788c0ea560af605526 Binary files /dev/null and b/content/zh/post/z-qw/images/1.18.jpg differ diff --git a/content/zh/post/z-qw/images/1.19.jpg b/content/zh/post/z-qw/images/1.19.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9706c97fef6d01f58587df3a1337bc6caafab8cf Binary files /dev/null and b/content/zh/post/z-qw/images/1.19.jpg differ diff --git a/content/zh/post/z-qw/images/1.2.jpg b/content/zh/post/z-qw/images/1.2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..602af021deff37a83ba327d31e106cb36668b221 Binary files /dev/null and b/content/zh/post/z-qw/images/1.2.jpg differ diff --git a/content/zh/post/z-qw/images/1.20.jpg b/content/zh/post/z-qw/images/1.20.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ee7dd5fc7fa4607730f449334ccab851dfb6add2 Binary files /dev/null and b/content/zh/post/z-qw/images/1.20.jpg differ diff --git a/content/zh/post/z-qw/images/1.21.jpg b/content/zh/post/z-qw/images/1.21.jpg new file mode 100644 index 0000000000000000000000000000000000000000..db5e6ef68195bf7f8ccdc60fab5e466715daf87a Binary files /dev/null and b/content/zh/post/z-qw/images/1.21.jpg differ diff --git a/content/zh/post/z-qw/images/1.22.jpg b/content/zh/post/z-qw/images/1.22.jpg new file mode 100644 index 0000000000000000000000000000000000000000..36eb62b2d71a20122d39aa1db9d66f9d6f557ce7 Binary files /dev/null and b/content/zh/post/z-qw/images/1.22.jpg differ diff --git a/content/zh/post/z-qw/images/1.23.jpg b/content/zh/post/z-qw/images/1.23.jpg new file mode 100644 index 0000000000000000000000000000000000000000..267d9f39cd8060495ee413bb1b1b44cdf624d8d0 Binary files /dev/null and b/content/zh/post/z-qw/images/1.23.jpg differ diff --git a/content/zh/post/z-qw/images/1.24.jpg b/content/zh/post/z-qw/images/1.24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5cde27413834ac5be1ec2a011cf897901d527d7f Binary files /dev/null and b/content/zh/post/z-qw/images/1.24.jpg differ diff --git a/content/zh/post/z-qw/images/1.25.jpg b/content/zh/post/z-qw/images/1.25.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ce2b1107014f01d95d1fa6b311b1b81a58e1576a Binary files /dev/null and b/content/zh/post/z-qw/images/1.25.jpg differ diff --git a/content/zh/post/z-qw/images/1.26.jpg b/content/zh/post/z-qw/images/1.26.jpg new file mode 100644 index 0000000000000000000000000000000000000000..db0cd1341049fde8dacc85edc0f7fbe99a2b0e64 Binary files /dev/null and b/content/zh/post/z-qw/images/1.26.jpg differ diff --git a/content/zh/post/z-qw/images/1.27.jpg b/content/zh/post/z-qw/images/1.27.jpg new file mode 100644 index 0000000000000000000000000000000000000000..728758c6fc45987ecde5df782016612b8128dee5 Binary files /dev/null and b/content/zh/post/z-qw/images/1.27.jpg differ diff --git a/content/zh/post/z-qw/images/1.28.jpg b/content/zh/post/z-qw/images/1.28.jpg new file mode 100644 index 0000000000000000000000000000000000000000..85b271611e7ec5108473f9545537d1d75103e3a3 Binary files /dev/null and b/content/zh/post/z-qw/images/1.28.jpg differ diff --git a/content/zh/post/z-qw/images/1.29.jpg b/content/zh/post/z-qw/images/1.29.jpg new file mode 100644 index 0000000000000000000000000000000000000000..de36e5527d6670bb0df168a428724a2645638207 Binary files /dev/null and b/content/zh/post/z-qw/images/1.29.jpg differ diff --git a/content/zh/post/z-qw/images/1.3.jpg b/content/zh/post/z-qw/images/1.3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3f08dc693ef244c595f14b8bbec444e45a243253 Binary files /dev/null and b/content/zh/post/z-qw/images/1.3.jpg differ diff --git a/content/zh/post/z-qw/images/1.30.jpg b/content/zh/post/z-qw/images/1.30.jpg new file mode 100644 index 0000000000000000000000000000000000000000..181de21910d3f32213bf155e195b7b778267b160 Binary files /dev/null and b/content/zh/post/z-qw/images/1.30.jpg differ diff --git a/content/zh/post/z-qw/images/1.31.jpg b/content/zh/post/z-qw/images/1.31.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a4f2fbeb83d1100475fe2d27b078ed30c9adefcb Binary files /dev/null and b/content/zh/post/z-qw/images/1.31.jpg differ diff --git a/content/zh/post/z-qw/images/1.32.jpg b/content/zh/post/z-qw/images/1.32.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9985aa5c9473deaa7ea99909349b27f32b836cc9 Binary files /dev/null and b/content/zh/post/z-qw/images/1.32.jpg differ diff --git a/content/zh/post/z-qw/images/1.33.jpg b/content/zh/post/z-qw/images/1.33.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f4b1bd18f2e67951ec0919970f7e09b0215a354d Binary files /dev/null and b/content/zh/post/z-qw/images/1.33.jpg differ diff --git a/content/zh/post/z-qw/images/1.34.jpg b/content/zh/post/z-qw/images/1.34.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9f405c7dcd7212e48b347aba5b6401e913d8e187 Binary files /dev/null and b/content/zh/post/z-qw/images/1.34.jpg differ diff --git a/content/zh/post/z-qw/images/1.35.jpg b/content/zh/post/z-qw/images/1.35.jpg new file mode 100644 index 0000000000000000000000000000000000000000..91234001bf1df103f8c43c49277de679a8404e73 Binary files /dev/null and b/content/zh/post/z-qw/images/1.35.jpg differ diff --git a/content/zh/post/z-qw/images/1.36.jpg b/content/zh/post/z-qw/images/1.36.jpg new file mode 100644 index 0000000000000000000000000000000000000000..62c3c6af76c0911df6399d9fabfc36a922c9ca62 Binary files /dev/null and b/content/zh/post/z-qw/images/1.36.jpg differ diff --git a/content/zh/post/z-qw/images/1.4.jpg b/content/zh/post/z-qw/images/1.4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dea192848d5b95f8cfa2898da142569559f642cb Binary files /dev/null and b/content/zh/post/z-qw/images/1.4.jpg differ diff --git a/content/zh/post/z-qw/images/1.5.jpg b/content/zh/post/z-qw/images/1.5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c0a5f550d1b0051befa5c3b77ad1234b74584194 Binary files /dev/null and b/content/zh/post/z-qw/images/1.5.jpg differ diff --git a/content/zh/post/z-qw/images/1.6.jpg b/content/zh/post/z-qw/images/1.6.jpg new file mode 100644 index 0000000000000000000000000000000000000000..40157b909e239361e62f108c94de9da0ceff66b6 Binary files /dev/null and b/content/zh/post/z-qw/images/1.6.jpg differ diff --git a/content/zh/post/z-qw/images/1.7.jpg b/content/zh/post/z-qw/images/1.7.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dbaeb502cd6ad87fa1747b4b2477512b49473786 Binary files /dev/null and b/content/zh/post/z-qw/images/1.7.jpg differ diff --git a/content/zh/post/z-qw/images/1.8.jpg b/content/zh/post/z-qw/images/1.8.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3f305f956359aca4eeb82864e756262d82157137 Binary files /dev/null and b/content/zh/post/z-qw/images/1.8.jpg differ diff --git a/content/zh/post/z-qw/images/1.9.jpg b/content/zh/post/z-qw/images/1.9.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7b7375164d93fe90d2bcf45b46e4c34175f20dcc Binary files /dev/null and b/content/zh/post/z-qw/images/1.9.jpg differ diff --git a/content/zh/post/z-qw/images/2.1.jpg b/content/zh/post/z-qw/images/2.1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1fa842a6aa25f26dab5c9ceabf7a2ef50f4ed796 Binary files /dev/null and b/content/zh/post/z-qw/images/2.1.jpg differ diff --git a/content/zh/post/z-qw/images/2.10.jpg b/content/zh/post/z-qw/images/2.10.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b4265f11504e3257a84d4d14577960355359e63e Binary files /dev/null and b/content/zh/post/z-qw/images/2.10.jpg differ diff --git a/content/zh/post/z-qw/images/2.11.jpg b/content/zh/post/z-qw/images/2.11.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a05c1484b4459f4d82234eeef2546210a669e7d2 Binary files /dev/null and b/content/zh/post/z-qw/images/2.11.jpg differ diff --git a/content/zh/post/z-qw/images/2.12.jpg b/content/zh/post/z-qw/images/2.12.jpg new file mode 100644 index 0000000000000000000000000000000000000000..047796c681dc228d83a2dca87c70a452add5251b Binary files /dev/null and b/content/zh/post/z-qw/images/2.12.jpg differ diff --git a/content/zh/post/z-qw/images/2.13.jpg b/content/zh/post/z-qw/images/2.13.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dc4922cb33a80b8dd1965b9bff3f3a530a3d3dec Binary files /dev/null and b/content/zh/post/z-qw/images/2.13.jpg differ diff --git a/content/zh/post/z-qw/images/2.14.jpg b/content/zh/post/z-qw/images/2.14.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bff2ed9b0a28481b6c15602accbb2a5e6ad66847 Binary files /dev/null and b/content/zh/post/z-qw/images/2.14.jpg differ diff --git a/content/zh/post/z-qw/images/2.15.jpg b/content/zh/post/z-qw/images/2.15.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b0925b9be53a0c407f97ea2239e0b69ea6c2bc59 Binary files /dev/null and b/content/zh/post/z-qw/images/2.15.jpg differ diff --git a/content/zh/post/z-qw/images/2.16.jpg b/content/zh/post/z-qw/images/2.16.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0d2d61254c8149c9417e0e9f0d142cb48dbb541a Binary files /dev/null and b/content/zh/post/z-qw/images/2.16.jpg differ diff --git a/content/zh/post/z-qw/images/2.17.jpg b/content/zh/post/z-qw/images/2.17.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5b44034d1596c27bdd6ba983a64b63e5da9eed22 Binary files /dev/null and b/content/zh/post/z-qw/images/2.17.jpg differ diff --git a/content/zh/post/z-qw/images/2.18.jpg b/content/zh/post/z-qw/images/2.18.jpg new file mode 100644 index 0000000000000000000000000000000000000000..25018dc06e0644f6c3d4c2274d75324f8be2e010 Binary files /dev/null and b/content/zh/post/z-qw/images/2.18.jpg differ diff --git a/content/zh/post/z-qw/images/2.19.jpg b/content/zh/post/z-qw/images/2.19.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5c306176bfbe50be82dad5cc267895e49c812e86 Binary files /dev/null and b/content/zh/post/z-qw/images/2.19.jpg differ diff --git a/content/zh/post/z-qw/images/2.2.jpg b/content/zh/post/z-qw/images/2.2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4d4ac70e34439b4f17406599b1faf7a164635c16 Binary files /dev/null and b/content/zh/post/z-qw/images/2.2.jpg differ diff --git a/content/zh/post/z-qw/images/2.20.jpg b/content/zh/post/z-qw/images/2.20.jpg new file mode 100644 index 0000000000000000000000000000000000000000..eef6e887b21ff0beca9f25b4988b123757f3630b Binary files /dev/null and b/content/zh/post/z-qw/images/2.20.jpg differ diff --git a/content/zh/post/z-qw/images/2.21.jpg b/content/zh/post/z-qw/images/2.21.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e0b6737ceade3c26dc42d20d446c4ec40a5fc65d Binary files /dev/null and b/content/zh/post/z-qw/images/2.21.jpg differ diff --git a/content/zh/post/z-qw/images/2.22.jpg b/content/zh/post/z-qw/images/2.22.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5bcf6791b6b8d874ac8f8e313b7cffe666880405 Binary files /dev/null and b/content/zh/post/z-qw/images/2.22.jpg differ diff --git a/content/zh/post/z-qw/images/2.23.jpg b/content/zh/post/z-qw/images/2.23.jpg new file mode 100644 index 0000000000000000000000000000000000000000..63671f18211b9ef67620e6f6110f7abdcf9aa921 Binary files /dev/null and b/content/zh/post/z-qw/images/2.23.jpg differ diff --git a/content/zh/post/z-qw/images/2.24.jpg b/content/zh/post/z-qw/images/2.24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bef7ef79a5b12cd71e7cd1200767e7774e88c650 Binary files /dev/null and b/content/zh/post/z-qw/images/2.24.jpg differ diff --git a/content/zh/post/z-qw/images/2.25.jpg b/content/zh/post/z-qw/images/2.25.jpg new file mode 100644 index 0000000000000000000000000000000000000000..53209481016dd21cf2b01049a42f1e0b6ba03027 Binary files /dev/null and b/content/zh/post/z-qw/images/2.25.jpg differ diff --git a/content/zh/post/z-qw/images/2.26.jpg b/content/zh/post/z-qw/images/2.26.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a34b1098dad0c90c3c43aff709a8ffd2331aea69 Binary files /dev/null and b/content/zh/post/z-qw/images/2.26.jpg differ diff --git a/content/zh/post/z-qw/images/2.27.jpg b/content/zh/post/z-qw/images/2.27.jpg new file mode 100644 index 0000000000000000000000000000000000000000..00808afcc0da09c2da713624e8cd14fea6a95aa4 Binary files /dev/null and b/content/zh/post/z-qw/images/2.27.jpg differ diff --git a/content/zh/post/z-qw/images/2.28.jpg b/content/zh/post/z-qw/images/2.28.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0bad967440fd0456d7aa2f3279567e845de8a8b2 Binary files /dev/null and b/content/zh/post/z-qw/images/2.28.jpg differ diff --git a/content/zh/post/z-qw/images/2.29.jpg b/content/zh/post/z-qw/images/2.29.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aa0828871bf684a5f1fb19bae5639c0a32ff11ce Binary files /dev/null and b/content/zh/post/z-qw/images/2.29.jpg differ diff --git a/content/zh/post/z-qw/images/2.3.jpg b/content/zh/post/z-qw/images/2.3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3922781bfc41594e3c5b24badcf6dcefcbaec280 Binary files /dev/null and b/content/zh/post/z-qw/images/2.3.jpg differ diff --git a/content/zh/post/z-qw/images/2.30.jpg b/content/zh/post/z-qw/images/2.30.jpg new file mode 100644 index 0000000000000000000000000000000000000000..136461e7e4c901dad3067746b1c19497a2b5cd57 Binary files /dev/null and b/content/zh/post/z-qw/images/2.30.jpg differ diff --git a/content/zh/post/z-qw/images/2.31.jpg b/content/zh/post/z-qw/images/2.31.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dfe022e3367447edcc6fb917c9c69415e6d02be8 Binary files /dev/null and b/content/zh/post/z-qw/images/2.31.jpg differ diff --git a/content/zh/post/z-qw/images/2.32.jpg b/content/zh/post/z-qw/images/2.32.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b344c8d65b795c9a0f35cb785251c2c944319d87 Binary files /dev/null and b/content/zh/post/z-qw/images/2.32.jpg differ diff --git a/content/zh/post/z-qw/images/2.33.jpg b/content/zh/post/z-qw/images/2.33.jpg new file mode 100644 index 0000000000000000000000000000000000000000..38d0cfc6c893da38f1104fc494808da670052d7c Binary files /dev/null and b/content/zh/post/z-qw/images/2.33.jpg differ diff --git a/content/zh/post/z-qw/images/2.34.jpg b/content/zh/post/z-qw/images/2.34.jpg new file mode 100644 index 0000000000000000000000000000000000000000..30b165844e3ab03f5ae8b48507ccbb4da7ff77fc Binary files /dev/null and b/content/zh/post/z-qw/images/2.34.jpg differ diff --git a/content/zh/post/z-qw/images/2.35.jpg b/content/zh/post/z-qw/images/2.35.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3386732be83080a3b93e91548e4328913b5a3323 Binary files /dev/null and b/content/zh/post/z-qw/images/2.35.jpg differ diff --git a/content/zh/post/z-qw/images/2.36.jpg b/content/zh/post/z-qw/images/2.36.jpg new file mode 100644 index 0000000000000000000000000000000000000000..18ba36e264d5ee33de56533e075bf971a490434d Binary files /dev/null and b/content/zh/post/z-qw/images/2.36.jpg differ diff --git a/content/zh/post/z-qw/images/2.37.jpg b/content/zh/post/z-qw/images/2.37.jpg new file mode 100644 index 0000000000000000000000000000000000000000..653c20f585863bdefb7772e343f6a3cfedbdb321 Binary files /dev/null and b/content/zh/post/z-qw/images/2.37.jpg differ diff --git a/content/zh/post/z-qw/images/2.38.jpg b/content/zh/post/z-qw/images/2.38.jpg new file mode 100644 index 0000000000000000000000000000000000000000..168fa25eb0a8c6b943092c9b42ad9b1073db1c2f Binary files /dev/null and b/content/zh/post/z-qw/images/2.38.jpg differ diff --git a/content/zh/post/z-qw/images/2.39.jpg b/content/zh/post/z-qw/images/2.39.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1fa943501ea66e08716c83cdb71cdc13dce4dc54 Binary files /dev/null and b/content/zh/post/z-qw/images/2.39.jpg differ diff --git a/content/zh/post/z-qw/images/2.4.jpg b/content/zh/post/z-qw/images/2.4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fde448eb6f8bb190b1039ea0bc0c8adb8d287bb6 Binary files /dev/null and b/content/zh/post/z-qw/images/2.4.jpg differ diff --git a/content/zh/post/z-qw/images/2.40.jpg b/content/zh/post/z-qw/images/2.40.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cf2032a711ff6432a4f176f49edccf982053d022 Binary files /dev/null and b/content/zh/post/z-qw/images/2.40.jpg differ diff --git a/content/zh/post/z-qw/images/2.41.jpg b/content/zh/post/z-qw/images/2.41.jpg new file mode 100644 index 0000000000000000000000000000000000000000..65cb5ad7e0d17e2d448ca1b1a39aa69129f42b68 Binary files /dev/null and b/content/zh/post/z-qw/images/2.41.jpg differ diff --git a/content/zh/post/z-qw/images/2.5.jpg b/content/zh/post/z-qw/images/2.5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..32456c990db0d38f95ded523f7c5aeaa61a3e007 Binary files /dev/null and b/content/zh/post/z-qw/images/2.5.jpg differ diff --git a/content/zh/post/z-qw/images/2.6.jpg b/content/zh/post/z-qw/images/2.6.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9878d491a8dc90d40a0f306c8f92975588df9978 Binary files /dev/null and b/content/zh/post/z-qw/images/2.6.jpg differ diff --git a/content/zh/post/z-qw/images/2.7.jpg b/content/zh/post/z-qw/images/2.7.jpg new file mode 100644 index 0000000000000000000000000000000000000000..efe35463b2ce443a017bf27130f59dec77ecd38a Binary files /dev/null and b/content/zh/post/z-qw/images/2.7.jpg differ diff --git a/content/zh/post/z-qw/images/2.8.jpg b/content/zh/post/z-qw/images/2.8.jpg new file mode 100644 index 0000000000000000000000000000000000000000..09ea8cf219f4d3c7933cbe25ab1d7c7bc9139e4d Binary files /dev/null and b/content/zh/post/z-qw/images/2.8.jpg differ diff --git a/content/zh/post/z-qw/images/2.9.jpg b/content/zh/post/z-qw/images/2.9.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9adc368a01acab735d9226c38ca09a650462dffc Binary files /dev/null and b/content/zh/post/z-qw/images/2.9.jpg differ diff --git a/content/zh/post/z-qw/images/3.1.jpg b/content/zh/post/z-qw/images/3.1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3c20f2a547b1fc8e9ae3e8ad3b8e009238197bd3 Binary files /dev/null and b/content/zh/post/z-qw/images/3.1.jpg differ diff --git a/content/zh/post/z-qw/images/3.10.jpg b/content/zh/post/z-qw/images/3.10.jpg new file mode 100644 index 0000000000000000000000000000000000000000..61550dfa5bb9cc3e80375cb63ef19033f3ef75b4 Binary files /dev/null and b/content/zh/post/z-qw/images/3.10.jpg differ diff --git a/content/zh/post/z-qw/images/3.11.jpg b/content/zh/post/z-qw/images/3.11.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9e20f7da3407cdcc7c47487f83011bfd0ed3f143 Binary files /dev/null and b/content/zh/post/z-qw/images/3.11.jpg differ diff --git a/content/zh/post/z-qw/images/3.12.jpg b/content/zh/post/z-qw/images/3.12.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5edc7a30e2e960a0850cbc09c8ecb408435a91c5 Binary files /dev/null and b/content/zh/post/z-qw/images/3.12.jpg differ diff --git a/content/zh/post/z-qw/images/3.13.jpg b/content/zh/post/z-qw/images/3.13.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9944b46dba7d85a101b421fc4dcebe38250ee060 Binary files /dev/null and b/content/zh/post/z-qw/images/3.13.jpg differ diff --git a/content/zh/post/z-qw/images/3.14.jpg b/content/zh/post/z-qw/images/3.14.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8acb49e635c72a8e3ee234d09a97c7bee6953022 Binary files /dev/null and b/content/zh/post/z-qw/images/3.14.jpg differ diff --git a/content/zh/post/z-qw/images/3.15.jpg b/content/zh/post/z-qw/images/3.15.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ed2a196bbbeebe3d3195122884eb00c163dbb464 Binary files /dev/null and b/content/zh/post/z-qw/images/3.15.jpg differ diff --git a/content/zh/post/z-qw/images/3.16.jpg b/content/zh/post/z-qw/images/3.16.jpg new file mode 100644 index 0000000000000000000000000000000000000000..337d4dd163989d0a532093b0f1d95d90301cf21f Binary files /dev/null and b/content/zh/post/z-qw/images/3.16.jpg differ diff --git a/content/zh/post/z-qw/images/3.17.jpg b/content/zh/post/z-qw/images/3.17.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6328762ec5744f6ee416ecc264a5b1bd2301a835 Binary files /dev/null and b/content/zh/post/z-qw/images/3.17.jpg differ diff --git a/content/zh/post/z-qw/images/3.18.jpg b/content/zh/post/z-qw/images/3.18.jpg new file mode 100644 index 0000000000000000000000000000000000000000..90d3030fae2d6d579cb0a60c624b36f55ed90e11 Binary files /dev/null and b/content/zh/post/z-qw/images/3.18.jpg differ diff --git a/content/zh/post/z-qw/images/3.19.jpg b/content/zh/post/z-qw/images/3.19.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ad1430b866b366fff9b8b1b714f4c597804ef863 Binary files /dev/null and b/content/zh/post/z-qw/images/3.19.jpg differ diff --git a/content/zh/post/z-qw/images/3.2.jpg b/content/zh/post/z-qw/images/3.2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ae7771a54b71db379843b3375c2907a29a2b9bb7 Binary files /dev/null and b/content/zh/post/z-qw/images/3.2.jpg differ diff --git a/content/zh/post/z-qw/images/3.20.jpg b/content/zh/post/z-qw/images/3.20.jpg new file mode 100644 index 0000000000000000000000000000000000000000..165791a78f3f320521519bae7e953b13057ea525 Binary files /dev/null and b/content/zh/post/z-qw/images/3.20.jpg differ diff --git a/content/zh/post/z-qw/images/3.21.jpg b/content/zh/post/z-qw/images/3.21.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4ce9380f1af86dec2ad3a7af829a9e980f17df43 Binary files /dev/null and b/content/zh/post/z-qw/images/3.21.jpg differ diff --git a/content/zh/post/z-qw/images/3.22.jpg b/content/zh/post/z-qw/images/3.22.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d34cc305f31ec7a166b3c430efb7b4b5d93c0381 Binary files /dev/null and b/content/zh/post/z-qw/images/3.22.jpg differ diff --git a/content/zh/post/z-qw/images/3.23.jpg b/content/zh/post/z-qw/images/3.23.jpg new file mode 100644 index 0000000000000000000000000000000000000000..77272699f2a2f295b8364c4d79537a8b80fcf2aa Binary files /dev/null and b/content/zh/post/z-qw/images/3.23.jpg differ diff --git a/content/zh/post/z-qw/images/3.24.jpg b/content/zh/post/z-qw/images/3.24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c96c26d846ebf9681d31a693cd9afc759c6cfe5a Binary files /dev/null and b/content/zh/post/z-qw/images/3.24.jpg differ diff --git a/content/zh/post/z-qw/images/3.25.jpg b/content/zh/post/z-qw/images/3.25.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0decd2eb0bc82561d856d511e6f9705a388b942e Binary files /dev/null and b/content/zh/post/z-qw/images/3.25.jpg differ diff --git a/content/zh/post/z-qw/images/3.26.jpg b/content/zh/post/z-qw/images/3.26.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0fa177bb86d32b8d64d2f2c01566b635d795664c Binary files /dev/null and b/content/zh/post/z-qw/images/3.26.jpg differ diff --git a/content/zh/post/z-qw/images/3.27.jpg b/content/zh/post/z-qw/images/3.27.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e5da3ecefb61eb4a12a3ec792593b2ef11b7406f Binary files /dev/null and b/content/zh/post/z-qw/images/3.27.jpg differ diff --git a/content/zh/post/z-qw/images/3.28.jpg b/content/zh/post/z-qw/images/3.28.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d96acfa1e831966537cefd3cd2f393ec582845fd Binary files /dev/null and b/content/zh/post/z-qw/images/3.28.jpg differ diff --git a/content/zh/post/z-qw/images/3.29.jpg b/content/zh/post/z-qw/images/3.29.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6f8aa7b2e53462d987910fcd24c7f23d2e05e79d Binary files /dev/null and b/content/zh/post/z-qw/images/3.29.jpg differ diff --git a/content/zh/post/z-qw/images/3.3.jpg b/content/zh/post/z-qw/images/3.3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2c405b9713ee5e331448dc092ab3a74555349ab4 Binary files /dev/null and b/content/zh/post/z-qw/images/3.3.jpg differ diff --git a/content/zh/post/z-qw/images/3.30.jpg b/content/zh/post/z-qw/images/3.30.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0b623e06dfd3876c7bd41a1840964d02849b5e74 Binary files /dev/null and b/content/zh/post/z-qw/images/3.30.jpg differ diff --git a/content/zh/post/z-qw/images/3.31.jpg b/content/zh/post/z-qw/images/3.31.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c68388110143c9e9acabcf0d44df0d0245736793 Binary files /dev/null and b/content/zh/post/z-qw/images/3.31.jpg differ diff --git a/content/zh/post/z-qw/images/3.32.jpg b/content/zh/post/z-qw/images/3.32.jpg new file mode 100644 index 0000000000000000000000000000000000000000..28df7530bcffda87a3e39a0276a08e98ea8a164b Binary files /dev/null and b/content/zh/post/z-qw/images/3.32.jpg differ diff --git a/content/zh/post/z-qw/images/3.33.jpg b/content/zh/post/z-qw/images/3.33.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dae474576c8493e5b76aff495850aff61ed298f3 Binary files /dev/null and b/content/zh/post/z-qw/images/3.33.jpg differ diff --git a/content/zh/post/z-qw/images/3.34.jpg b/content/zh/post/z-qw/images/3.34.jpg new file mode 100644 index 0000000000000000000000000000000000000000..81a680375fbef16654e316854231ddcb9f81f5e8 Binary files /dev/null and b/content/zh/post/z-qw/images/3.34.jpg differ diff --git a/content/zh/post/z-qw/images/3.35.jpg b/content/zh/post/z-qw/images/3.35.jpg new file mode 100644 index 0000000000000000000000000000000000000000..269b2b4aa869cd0a9c7ddc837b96aaabe5030c8a Binary files /dev/null and b/content/zh/post/z-qw/images/3.35.jpg differ diff --git a/content/zh/post/z-qw/images/3.36.jpg b/content/zh/post/z-qw/images/3.36.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ffe777ab85e424754aac8bb8a4f4adfc4319d2a7 Binary files /dev/null and b/content/zh/post/z-qw/images/3.36.jpg differ diff --git a/content/zh/post/z-qw/images/3.37.jpg b/content/zh/post/z-qw/images/3.37.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6074d400d05aad62e417d4d1dd0cf8df85b650e2 Binary files /dev/null and b/content/zh/post/z-qw/images/3.37.jpg differ diff --git a/content/zh/post/z-qw/images/3.38.jpg b/content/zh/post/z-qw/images/3.38.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a211ece470b95db3be66517810a82d2054a10994 Binary files /dev/null and b/content/zh/post/z-qw/images/3.38.jpg differ diff --git a/content/zh/post/z-qw/images/3.4.jpg b/content/zh/post/z-qw/images/3.4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9a834ccc082f8e6517adaf9c800162a339d228c3 Binary files /dev/null and b/content/zh/post/z-qw/images/3.4.jpg differ diff --git a/content/zh/post/z-qw/images/3.5.jpg b/content/zh/post/z-qw/images/3.5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0cec2a9c0a24aee74fe0c293d9ea8541db2128e6 Binary files /dev/null and b/content/zh/post/z-qw/images/3.5.jpg differ diff --git a/content/zh/post/z-qw/images/3.6.jpg b/content/zh/post/z-qw/images/3.6.jpg new file mode 100644 index 0000000000000000000000000000000000000000..728a6ad8ec9bcb09ca02a2d4e9e09cd276a8e696 Binary files /dev/null and b/content/zh/post/z-qw/images/3.6.jpg differ diff --git a/content/zh/post/z-qw/images/3.7.jpg b/content/zh/post/z-qw/images/3.7.jpg new file mode 100644 index 0000000000000000000000000000000000000000..49d859554287cb85b7204bc02addd6d46dd683e3 Binary files /dev/null and b/content/zh/post/z-qw/images/3.7.jpg differ diff --git a/content/zh/post/z-qw/images/3.8.jpg b/content/zh/post/z-qw/images/3.8.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ed3b1045e54f42839d711417c2be379298bdc753 Binary files /dev/null and b/content/zh/post/z-qw/images/3.8.jpg differ diff --git a/content/zh/post/z-qw/images/3.9.jpg b/content/zh/post/z-qw/images/3.9.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4150fef889c4e5de3b2e9df2c388e364f46f6d2d Binary files /dev/null and b/content/zh/post/z-qw/images/3.9.jpg differ diff --git "a/content/zh/post/z-qw/\345\255\246\344\271\240\350\256\241\345\210\2221\342\200\224\346\200\273\347\273\223.md" "b/content/zh/post/z-qw/\345\255\246\344\271\240\350\256\241\345\210\2221\342\200\224\346\200\273\347\273\223.md" new file mode 100644 index 0000000000000000000000000000000000000000..e36c1e680c3fc34cabab96a76a22a638b21889e9 --- /dev/null +++ "b/content/zh/post/z-qw/\345\255\246\344\271\240\350\256\241\345\210\2221\342\200\224\346\200\273\347\273\223.md" @@ -0,0 +1,305 @@ +# 第一阶段学习报告 + +## 一、PostgreSQL安装 + +[Wiki-PostgreSQL编译安装-测试组工作管理-TAPD平台](https://www.tapd.cn/60185400/markdown_wikis/show/#1160185400001002726) + +1.下载源码 官网 .tar.gz + +2.解压 tar zxvf .tar.gz + +3.系统依赖配置 yum yum用不了 不要尝试改网络配置,会影响其他人 + +[https://www.tapd.cn/43100420/markdown_wikis/show/\#1143100420001000](https://www.tapd.cn/43100420/markdown_wikis/show/#1143100420001000) + +4.添加 postgres组用户 + +Groupadd -g 300 postgres + +新建安装文件夹 mkdir /db/pgsql + +用postgres 用户配置 cd /db/ 授权 + +chown -R + +postgres:postgres \* + +su - postgres + +查看配置 ./configure --prefix=/db/dbc1 --with-pgport=9521 + +5.编译 make + +6\. make install 出现 + +make: Nothing to be done for \`all' 不管它 不算问题 + +7\. cd db/pgsql ll bin 可执行 include 头文件 lib各种库 share第三方共享 + +8.环境变量设置 vi .bash_profile 目的是可以直接启动各类库 + +source \~/.bashrc + +env 查看环境生效了 + +9.initdb 不能再root端使用,需要在postgres + +initdb command not found 不管它 + +locate initdb 确定位置 + +![](./images/1.1.jpg) + +initdb -D /db/data -E utf8 初始化数据库簇 + +pg_ctl start -D /db/data启动实例 + +![](./images/1.2.jpg) + +![](./images/1.3.jpg) + +## 二、psql常用元命令 + +1\. pg_ctl start -D /data1/pgsql/data + +![](./images/1.4.jpg) + +2\. psql + +\\q关闭 + +pg_ctl stop + +3.![](./images/1.5.jpg) + +4\. 创建表空间,存储规划 + +create tablespace tablespace_name location 'directory' [with (tablespace_option = value)]; - seq_page_cost,缺省1.0,- random_page_cost ,- effective_io_concurrency + +![](./images/1.6.jpg) + +5\. 时间 + +![](./images/1.7.jpg) + +6\. 边框设置 + +![](./images/1.8.jpg) + +![](./images/1.9.jpg) + +7\. 枚举 + +![](./images/1.10.jpg) + +![](./images/1.11.jpg) + +8.select/insert + +![](./images/1.12.jpg)) + +![](./images/1.13.jpg)) + +9.位置查看 + +![](./images/1.14.jpg)) + +10.page ![](./images/1.15.jpg)) + +11.可见性映射文件:数据更新和删除后,事务提交了,也不会马上能够被重复利用 要进行空间回收Vaccum + +Visibility map file 标记需要清理的数据块 + +VM二进制 标注 + +![](./images/1.16.jpg))![](./images/1.17.jpg)) + +12\. 表信息![](./images/1.18.jpg)) + +13\. 表的主键确定 两种 + +建表时: + +![](./images/1.19.jpg)) + +建表后 + +alter table table_name add primary key(id); + +14\. \\dxx 显示信息 + +\\dS 类别 + +\\d+ 更详细 + +\\c + +\\l 展示 + +Creat table studeinfo(id int, name varcha(64) + +\\d+ studentinfo + +\\db 表空间信息 + +\\db+ + +\\dt 只显示表 + +\\di 索引 + +\\ds + +\\timg on \\timg off + +Insert into studeinfo values(1,'xiaoming'); + +\\pest border 0 + +\\x 以列显示 一行内容过多 \\g + +\\i + +\\encoding 显示数据库编码方式 + +Show client_encoding; 查看客户端编码 + +Set client_encoding to 'GBK'; + +修改客户端编码,客户端可显示为中文 + +控制事务进程 + +只在该语句之间操作 + +Begin; + +ROLLBACK; + +## 三、用户和权限管理 + +超级用户 initdb + +create user user_name with superuser createdb createrole password 'xxx'; + +create user user_name password 'xx'; + +grant create on schema schema_name to user_name + +或 create role name with option + +option 包括: superuser/nosuperuser + +createdb/nocreatedb + +createuser/nocreateuser + +inherit/noinhert 角色权限 + +login/nologin + +connnection limit connlimit 并发连接数量,默认-1 无限制 + +password'xxxx' + +valid until 'timestamp' 密码失效时间 + +in role role_name 成为哪些角色的成员 + +role role_name 成为新建角色的成员 + +admin role_name 新建角色的权限 + +connect + +数据库的权限 alter role + +创建模式的权限 grant + +grant role_name to role_name + +grant select on table table_name to publi(role_name); 允许所有用户查询该表 + +revoke create on schema public from public; 回收public权限 + +grant user user_name with password'xxxx' + +grant usage on schema schema_name to user_name; 只读用户 + +usage 对于一个表,必须要有schema权限 + +grant select on all tables in schema schema_name to user_name + +drop owned by readonly; 删除角色所拥有的所有对象 + +drop role readonly;删除角色 + +数据库的逻辑结构对象,所有者,即创建数据库的用户,可以废弃某些权力 + +## 四、Vastbase安装 + +1.ftp 下载安装包 + +![](./images/1.20.jpg)) + +2.创建用户 + +创建 useradd -r user_name + +删除 userdel -r user_name + +![](./images/1.21.jpg))![](./images/1.22.jpg) + +根据安装指南文件5.1.3 + +![](./images/1.23.jpg) + +3.root权限下 资源限制 + +安装指南 3.7 + +![](./images/1.24.jpg) + +4.cd 解压包位置 + +tar zxvf file.tar.gz + +![](./images/1.25.jpg) + +文件中有括号,需去除 + +5.运行安装 + +![](./images/1.26.jpg) + +![](./images/1.27.jpg) + +密码:Zqw123456 + +![](./images/1.28.jpg) + +![](./images/1.29.jpg)![](./images/1.30.jpg) + +6.license + +![](./images/1.31.jpg) + +Ftp license + +echo "license_path='/home/user_name/ZKSGlicense'" \>\> /home/user_name/data/vastbase/postgresql.conf + +source \~/.bashrc + +7.运行调试 + +![](./images/1.32.jpg) + +![](./images/1.33.jpg) + +修改了postgresql.conf 的shared_buffers 原来的过大 + +![](./images/1.34.jpg) + +![](./images/1.35.jpg)![](./images/1.36.jpg) + +总结:在安装pgsql和vastbaseg100遇到了很多问题,主要是对数据库不够熟悉,再加上新入职,对相关的文件不知道在哪里寻找,其实很多文档里的讲解都是比较熟悉的。详细记录了安装的步骤与遇到的问题,方便下一次的安装。通过观看视频与看书,学习了pgsql数据库,有较大的提升。 diff --git "a/content/zh/post/z-qw/\345\255\246\344\271\240\350\256\241\345\210\2222\342\200\224\346\200\273\347\273\223.md" "b/content/zh/post/z-qw/\345\255\246\344\271\240\350\256\241\345\210\2222\342\200\224\346\200\273\347\273\223.md" new file mode 100644 index 0000000000000000000000000000000000000000..b4ede18200d980df762e76a5c2b17fc531ab589c --- /dev/null +++ "b/content/zh/post/z-qw/\345\255\246\344\271\240\350\256\241\345\210\2222\342\200\224\346\200\273\347\273\223.md" @@ -0,0 +1,213 @@ +# 第二阶段学习报告 + +## 一、常用数据类型 + +| 数据类型 | 说明 | +|----------------|-----------------------------------------------------------------------------------------------------| +| 布尔类型 | boolean true/'1'/'yes' false/'0'/'no' | +| 数值类型 | smallint 两字节 int 4字节 bigint 8字节 double/real浮点型 money 货币(两位小数 | +| 字符类型 | varchar(n 几位数)/char/text | +| 二进制 | bytea | +| 位串类型 | 一串0、1 bit(n)/bit varying(n) | +| 日期和时间 | data/time/timestamp | +| 枚举类型 | create type enum_name as enum ('apple','banana'); create table table_name (id int, name enum_name); | +| 几何类型 | 点point 直线line 线段lseg 路径path 多边形polygon 圆cycle | +| 网络地址 | cidr inet macaddr | +| 数组类型 | | +| 复合类型 | | +| xml类型 | XML | +| JSON | JSON | +| range | 范围 | +| 对象标识符类型 | oid类型、regproc类型、regclass类型 | +| 伪类型 | | +| 其他 | UUID | + +### 1.函数类型转换 + +函数CAST类型转换 + +select cast('5' as int),cast('20114-0717' as date); + +![](./images/2.1.jpg) + +![](./images/2.2.jpg) + +双冒号的方式 + +select '5'::int,'2014-07-17'::date; + +![](./images/2.3.jpg) + +### 2.布尔型 + +![](./images/2.4.jpg)![](./images/2.5.jpg)![](./images/2.6.jpg)![](./images/2.7.jpg) + +and/or/not + +![](./images/2.8.jpg) + +null表示未知 + +![](./images/2.9.jpg) + +![](./images/2.10.jpg) + +is 运算符 + +![](./images/2.11.jpg) + +unknown + +![](./images/2.12.jpg) + +### 3.小数 + +精确的小数类型 numeric、numeric(m,n)、numeric(m) + +numeric=decimal + +numeric(perision,scale) persion精度,scale标度 + +numeric(persion)=numeric(percision,0) + +声明标度,超过位数会四舍五入 + +声明精度的,小数点左右加起来的位数,超过该精度会报错 + +![](./images/2.13.jpg) + +对于 numeric(3,3)因为精度和标度都是三位,因此,该数字只能小于1 + +浮点数类型 不精确的变精度数字类型 double;real + +### 4. 序列类型 serial + +![](./images/2.14.jpg)![](./images/2.15.jpg) + +![](./images/2.16.jpg) + +### 5.货币类型 + +lc_monetary 其中,en_US.UTF-8 美国;zh_CN.UTF-8 中国 + +![](./images/2.17.jpg) + +### 6. 位串类型 + +bit(n) bit varying(n) n 表示二进制的位数 + +bit(n)必须等于该位数,否则会报错 + +bit varying(n) 不能超过该位数,否则会报错 + +![](./images/2.18.jpg) + +bit 默认一位 + +![](./images/2.19.jpg) + +### 7. 日期和时间 + +![](./images/2.20.jpg) + +![](./images/2.21.jpg)![](./images/2.22.jpg) + +### 8. 枚举 + +create type type_name as enum('a','b','c',); + +![](./images/2.23.jpg)![](./images/2.24.jpg) + +查看枚举类型 \\dT + +![](./images/2.25.jpg) + +### 9. 几何类型 + +![](./images/2.26.jpg) + +![](./images/2.27.jpg)![](./images/2.28.jpg) + +### 10. 复合类型 + +![](./images/2.29.jpg) + +![](./images/2.30.jpg) + +![](./images/2.31.jpg) + +筛选复合型的某个字段 + +![](./images/2.32.jpg) + +![](./images/2.33.jpg) + +range '[a,b]' (a,b) [a,b) '[' ']' 包含该数 '(' ')' 不包含该数 + +### 11.数组类型 + +int[ ]一维数组 + +int[ ][ ] 二维数组 + +![](./images/2.34.jpg) + +![](./images/2.35.jpg) + +![](./images/2.36.jpg) + +## 二、对象管理 + +### 数据库 + +1\. 创建数据库 + +![](./images/2.37.jpg) + +![](./images/2.38.jpg) + +2.修改数据库 + +![](./images/2.39.jpg)![](./images/2.40.jpg) + +3.删除数据库 + +drop database name; + +drop database if exists name; + +### 模式 + +1.创建模式 + +create schema name; + +2.修改模式 + +alter schema name rename to newname; + +alter schema name owner to newowner; + +3.删除模式 + +drop schema name; + +### 表 + +1.创建表 + +create table name(id int,name varchar(60)); + +![](./images/2.41.jpg) + +2.修改表 + +alter table table_name add d int;增加索引 + +3.删除表 + +DROP TABLE table_name; + +delete from table_name where id=1; + +总结:详细学习了数据类型,简单学习了对象的新建、修改、删除。将学习到的内容在postgresql上实际操作,加深了印象,并对数据库的基本用法印象更加深刻。在学习数据类型时,有很多类型是之前没有接触到的,在学习的过程中,对不懂得类型慢慢有所理解,在数据库的学习上有了很大的提升。 diff --git "a/content/zh/post/z-qw/\345\255\246\344\271\240\350\256\241\345\210\2223\342\200\224\346\200\273\347\273\223.md" "b/content/zh/post/z-qw/\345\255\246\344\271\240\350\256\241\345\210\2223\342\200\224\346\200\273\347\273\223.md" new file mode 100644 index 0000000000000000000000000000000000000000..cacd503406be94240b8a412e741f68a9faaaf287 --- /dev/null +++ "b/content/zh/post/z-qw/\345\255\246\344\271\240\350\256\241\345\210\2223\342\200\224\346\200\273\347\273\223.md" @@ -0,0 +1,267 @@ +# 第三阶段学习报告 + +## 一、事务管理 + +1.事务:在日常操作中,对于一组相关操作通常需要其全部成功或全部失败,这组相关操作称之为事务。 + +2.事务控制:begin 开始;commit 提交;rollback 回滚。遇到commit或rollback结束。 + +3.隔离级别: + +![](./images/3.1.jpg) + +脏读:读到未提交的数据。 + +不可重复读:一个事务重新读取读取过的事务,读到的内容与之前不同。若数据修改,可能发生不可重复读;事务上锁可以避免,但读需要上锁,对事务并发不友好。 + +幻读:事务进行过程中,之前依赖的数据被修改后,结果出现错误。 + +4.MVCC多版本并发控制 + +对数据行增删改,会产生大量副本,由vacuum清理垃圾。 + +两大功能:读不阻塞写,写不阻塞读;提供一致性读写。 + +无MVCC会对读到的每个行加锁:不方便做多并发;会发生死锁问题 + +MVCC产生的原因:保留原有数据,实现数据一致性 + +保留原有数据在原来位置,标记为旧版本,update后,原数据在原位置,新数据在新位置。 + +5.事务号 transaction id TXID + +32位无符号整数 + +每一个操作都会分一个事务号 + +![](./images/3.2.jpg) + +6.事务相关信息 + +xmin:插入该行的事务ID + +xmax:删除此行的事务ID + +cmin:事务插入的命令ID select/update/insert 就是2,从0开始 + +cmax:事物内部删除类的命令ID + +ctid:一个行版本在它所在表的物理位置 + +7.事务举例 + +![](./images/3.3.jpg) + +![](./images/3.4.jpg)![](./images/3.5.jpg) + +再对原窗口操作: + +![](./images/3.6.jpg) ![](./images/3.7.jpg) + +原窗口commit: + +![](./images/3.8.jpg) ![](./images/3.9.jpg) + +8.事务号的增长 + +事务ID的增长,从0开始到2的32次方 + +一般从3开始: + +0:无效事务id + +1:表初始化ID + +2:冻结ID + +同一个数据库中,最旧和最新两个事务之间年龄允许差2的31次方,一半 + +![](./images/3.10.jpg) + +9\. 事务可见性判定: + +![](./images/3.11.jpg) + +autovacuum(boolean)默认为'on' + +## 二、PL/pgSQL + +1\. PL/pgSQL + +一种可加载的程序开发语言,块结构语言。 + +声明部分:declare + +执行部分:begin + +异常处理部分:exception + +![](./images/3.12.jpg) + +end后面的分号可以省略 + +注释的两种方式:--;/\* \*/ + +简单的语言: + +![](./images/3.13.jpg) + +带有注释的: + +![](./images/3.14.jpg) + +2.变量声明 + +除了for循环的计数,变量都要声明 + +Variable_name [constant] variable_type [NOT NULL] [{DEFEAULT \| :=} EXPRESSION ]; + +常量(如果是常量) + +3\. 函数形参 + +create function func/\*函数名\*/(var/\*变量名\*/ real/\*变量类型\*/) returns real as \$\$ + +begin + +return var \* var; + +end; + +\$\$ language plpgsql; + +\$\$ + +plpgsql的程序体 + +\$\$ + +4.起别名 + +\$1第一个参数 + +\$2第二个参数 + +最好是起别名,更直观 + +在程序体中起别名 **newname ALIAS FOR \$1(oldname)** + +5.复制类型 + +![](./images/3.15.jpg) + +6.复制行结构 + +name table_name%ROWTYPE (用户自定义的) + +7\. 复制记录 + +name RECORD; 查询结果的一行 + +![](./images/3.16.jpg) + +8.赋值 + +A := B + +9\. select into + +![](./images/3.17.jpg) + +10.perform + +对结果不感兴趣:perform(将select换成perform) + +11\. 动态命令 + +![](./images/3.18.jpg) + +12\. 函数返回 + +return + +![](./images/3.19.jpg) + +return 变量名 + +![](./images/3.20.jpg) + +return next 返回结果值 + +![](./images/3.21.jpg) + +return query + +![](./images/3.22.jpg) + +13.条件: + +if then + +![](./images/3.23.jpg) + +if then elsif else + +![](./images/3.24.jpg) + +14\. 循环 + +loop循环体 + +遇到 exit和 return语句终止 + +exit + +![](./images/3.25.jpg) + +continue + +![](./images/3.26.jpg) + +while循环体 + +![](./images/3.27.jpg) + +for 循环体 + +无reverse 每次自增加1 有reverse 每次自减1 + +![](./images/3.28.jpg) + +![](./images/3.29.jpg) + +15\. 遍历命令结果 + +![](./images/3.30.jpg) + +16\. 游标 + +![](./images/3.31.jpg) + +![](./images/3.32.jpg) + +17\. 异常处理 + +捕获异常: + +![](./images/3.33.jpg) + +抛出错误: + +![](./images/3.34.jpg) + +![](./images/3.35.jpg) + +18.存储过程 + +![](./images/3.36.jpg) + +19.触发器 + +![](./images/3.37.jpg) + +20.自定义运算符 + +![](./images/3.38.jpg) + +总结:本阶段熟悉了事务管理和简单了解了plpgsql,事务管理部分文字内容较多,在开始的学习中,把握不够准确,但通过自己将上课内容进行实际操作,对事务的读和写,xmin/xmax/cmin/cmax以及事务号都有了较为深刻的理解。Plpgsql是一种块语言结构,将SQL语言与程序语言相结合,在大量的讲解中,对不同的使用方法学习较为清楚,在以后工作学习中,还需要不断运用,提升。