{"id":1190,"date":"2007-02-28T21:50:44","date_gmt":"2007-03-01T09:50:44","guid":{"rendered":"http:\/\/www.horace.org\/blog\/2007\/02\/28\/visual-basic-in-excel\/"},"modified":"2007-02-28T21:50:44","modified_gmt":"2007-03-01T09:50:44","slug":"visual-basic-in-excel","status":"publish","type":"post","link":"https:\/\/www.horace.org\/blog\/2007\/02\/28\/visual-basic-in-excel\/","title":{"rendered":"Visual Basic in Excel"},"content":{"rendered":"<p>I have to create a table to present some complicate data at work.\u00a0 The different sections in the table are included or excluded depends on different configurations.\u00a0 It would be too overwhelming and confusing to write a static table and then ask the user figure out which piece of data he need on his own.\u00a0\u00a0 My solution is to write a dynamic table that will only show the necessary piece of information.\u00a0 At first I wanted to write the table using HTML and Javascript, which I am quite familiar with.\u00a0 Unfortunately, the ancient Microsoft Office 2000 at work doesn&#8217;t support embedded javascript.\u00a0 Since including seperate HTML file in the document is not a standard work flow in my company, it would be too much trouble work around the doucument control system.\u00a0 So I decided to write the table using Excel spreadsheet instead.\u00a0 I never done programming in Excel before, but to my surprise the Visual Basic support for Excel is very easy to use.\u00a0 Using just the reference in the help document and some webpages on Excel tips, I manage to create the table in just a day.\u00a0 Actually, using Excel and Visual Basic script is less programming work than using HTML and Javascript.\u00a0 It even worths my effort to learn a new programming language.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have to create a table to present some complicate data at work.\u00a0 The different sections in the table are included or excluded depends on different configurations.\u00a0 It would be too overwhelming and confusing to write a static table and then ask the user figure out which piece of data he need on his own.\u00a0\u00a0 &hellip; <a href=\"https:\/\/www.horace.org\/blog\/2007\/02\/28\/visual-basic-in-excel\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Visual Basic in Excel<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"lc_iscn_info":[],"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1],"tags":[],"class_list":["post-1190","post","type-post","status-publish","format-standard","hentry","category-_scribble"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Visual Basic in Excel  - \u54f2\u5b50\u6232 Philosophist\u2019s Camp<\/title>\n<meta name=\"description\" content=\"I have to create a table to present some complicate data at work.\u00a0 The different sections in the table are included or excluded depends on different\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.horace.org\/blog\/2007\/02\/28\/visual-basic-in-excel\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Visual Basic in Excel  - \u54f2\u5b50\u6232 Philosophist\u2019s Camp\" \/>\n<meta property=\"og:description\" content=\"I have to create a table to present some complicate data at work.\u00a0 The different sections in the table are included or excluded depends on different\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.horace.org\/blog\/2007\/02\/28\/visual-basic-in-excel\/\" \/>\n<meta property=\"og:site_name\" content=\"\u54f2\u5b50\u6232 Philosophist\u2019s Camp\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/horace.org\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/horace.org\" \/>\n<meta property=\"article:published_time\" content=\"2007-03-01T09:50:44+00:00\" \/>\n<meta name=\"author\" content=\"hevangel\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@horaceorg\" \/>\n<meta name=\"twitter:site\" content=\"@horaceorg\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"hevangel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.horace.org\\\/blog\\\/2007\\\/02\\\/28\\\/visual-basic-in-excel\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.horace.org\\\/blog\\\/2007\\\/02\\\/28\\\/visual-basic-in-excel\\\/\"},\"author\":{\"name\":\"hevangel\",\"@id\":\"https:\\\/\\\/www.horace.org\\\/blog\\\/#\\\/schema\\\/person\\\/c8d9e8e7a71d343b4b2c4ef4365cdb4c\"},\"headline\":\"Visual Basic in Excel\",\"datePublished\":\"2007-03-01T09:50:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.horace.org\\\/blog\\\/2007\\\/02\\\/28\\\/visual-basic-in-excel\\\/\"},\"wordCount\":219,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.horace.org\\\/blog\\\/#\\\/schema\\\/person\\\/c8d9e8e7a71d343b4b2c4ef4365cdb4c\"},\"articleSection\":[\"Daily Scribble\"],\"inLanguage\":\"en-CA\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.horace.org\\\/blog\\\/2007\\\/02\\\/28\\\/visual-basic-in-excel\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.horace.org\\\/blog\\\/2007\\\/02\\\/28\\\/visual-basic-in-excel\\\/\",\"url\":\"https:\\\/\\\/www.horace.org\\\/blog\\\/2007\\\/02\\\/28\\\/visual-basic-in-excel\\\/\",\"name\":\"Visual Basic in Excel - \u54f2\u5b50\u6232 Philosophist\u2019s Camp\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.horace.org\\\/blog\\\/#website\"},\"datePublished\":\"2007-03-01T09:50:44+00:00\",\"description\":\"I have to create a table to present some complicate data at work.\u00a0 The different sections in the table are included or excluded depends on different\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.horace.org\\\/blog\\\/2007\\\/02\\\/28\\\/visual-basic-in-excel\\\/#breadcrumb\"},\"inLanguage\":\"en-CA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.horace.org\\\/blog\\\/2007\\\/02\\\/28\\\/visual-basic-in-excel\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.horace.org\\\/blog\\\/2007\\\/02\\\/28\\\/visual-basic-in-excel\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.horace.org\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Visual Basic in Excel\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.horace.org\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.horace.org\\\/blog\\\/\",\"name\":\"\u54f2\u5b50\u6232 Philosophist\u2019s Camp\",\"description\":\"\u860b\u679c\u65e5\u5831\u4f5c\u8005 - \u9673\u99ac\uff1a\u66f8\u8a55\uff0c\u5f71\u8a55\uff0c\u52d5\u6f2b\uff0c\u65c5\u884c\uff0c\u54f2\u5b78\u7b46\u8a18\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.horace.org\\\/blog\\\/#\\\/schema\\\/person\\\/c8d9e8e7a71d343b4b2c4ef4365cdb4c\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.horace.org\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-CA\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.horace.org\\\/blog\\\/#\\\/schema\\\/person\\\/c8d9e8e7a71d343b4b2c4ef4365cdb4c\",\"name\":\"hevangel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-CA\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/www.horace.org\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/spocky.jpg?fit=1313%2C1259&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.horace.org\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/spocky.jpg?fit=1313%2C1259&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.horace.org\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/spocky.jpg?fit=1313%2C1259&ssl=1\",\"width\":1313,\"height\":1259,\"caption\":\"hevangel\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/www.horace.org\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/spocky.jpg?fit=1313%2C1259&ssl=1\"},\"sameAs\":[\"http:\\\/\\\/www.horace.org\",\"https:\\\/\\\/www.facebook.com\\\/horace.org\"],\"url\":\"https:\\\/\\\/www.horace.org\\\/blog\\\/author\\\/hevangel-2\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Visual Basic in Excel  - \u54f2\u5b50\u6232 Philosophist\u2019s Camp","description":"I have to create a table to present some complicate data at work.\u00a0 The different sections in the table are included or excluded depends on different","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.horace.org\/blog\/2007\/02\/28\/visual-basic-in-excel\/","og_locale":"en_US","og_type":"article","og_title":"Visual Basic in Excel  - \u54f2\u5b50\u6232 Philosophist\u2019s Camp","og_description":"I have to create a table to present some complicate data at work.\u00a0 The different sections in the table are included or excluded depends on different","og_url":"https:\/\/www.horace.org\/blog\/2007\/02\/28\/visual-basic-in-excel\/","og_site_name":"\u54f2\u5b50\u6232 Philosophist\u2019s Camp","article_publisher":"https:\/\/www.facebook.com\/horace.org","article_author":"https:\/\/www.facebook.com\/horace.org","article_published_time":"2007-03-01T09:50:44+00:00","author":"hevangel","twitter_card":"summary_large_image","twitter_creator":"@horaceorg","twitter_site":"@horaceorg","twitter_misc":{"Written by":"hevangel","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.horace.org\/blog\/2007\/02\/28\/visual-basic-in-excel\/#article","isPartOf":{"@id":"https:\/\/www.horace.org\/blog\/2007\/02\/28\/visual-basic-in-excel\/"},"author":{"name":"hevangel","@id":"https:\/\/www.horace.org\/blog\/#\/schema\/person\/c8d9e8e7a71d343b4b2c4ef4365cdb4c"},"headline":"Visual Basic in Excel","datePublished":"2007-03-01T09:50:44+00:00","mainEntityOfPage":{"@id":"https:\/\/www.horace.org\/blog\/2007\/02\/28\/visual-basic-in-excel\/"},"wordCount":219,"commentCount":0,"publisher":{"@id":"https:\/\/www.horace.org\/blog\/#\/schema\/person\/c8d9e8e7a71d343b4b2c4ef4365cdb4c"},"articleSection":["Daily Scribble"],"inLanguage":"en-CA","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.horace.org\/blog\/2007\/02\/28\/visual-basic-in-excel\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.horace.org\/blog\/2007\/02\/28\/visual-basic-in-excel\/","url":"https:\/\/www.horace.org\/blog\/2007\/02\/28\/visual-basic-in-excel\/","name":"Visual Basic in Excel - \u54f2\u5b50\u6232 Philosophist\u2019s Camp","isPartOf":{"@id":"https:\/\/www.horace.org\/blog\/#website"},"datePublished":"2007-03-01T09:50:44+00:00","description":"I have to create a table to present some complicate data at work.\u00a0 The different sections in the table are included or excluded depends on different","breadcrumb":{"@id":"https:\/\/www.horace.org\/blog\/2007\/02\/28\/visual-basic-in-excel\/#breadcrumb"},"inLanguage":"en-CA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.horace.org\/blog\/2007\/02\/28\/visual-basic-in-excel\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.horace.org\/blog\/2007\/02\/28\/visual-basic-in-excel\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.horace.org\/blog\/"},{"@type":"ListItem","position":2,"name":"Visual Basic in Excel"}]},{"@type":"WebSite","@id":"https:\/\/www.horace.org\/blog\/#website","url":"https:\/\/www.horace.org\/blog\/","name":"\u54f2\u5b50\u6232 Philosophist\u2019s Camp","description":"\u860b\u679c\u65e5\u5831\u4f5c\u8005 - \u9673\u99ac\uff1a\u66f8\u8a55\uff0c\u5f71\u8a55\uff0c\u52d5\u6f2b\uff0c\u65c5\u884c\uff0c\u54f2\u5b78\u7b46\u8a18","publisher":{"@id":"https:\/\/www.horace.org\/blog\/#\/schema\/person\/c8d9e8e7a71d343b4b2c4ef4365cdb4c"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.horace.org\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-CA"},{"@type":["Person","Organization"],"@id":"https:\/\/www.horace.org\/blog\/#\/schema\/person\/c8d9e8e7a71d343b4b2c4ef4365cdb4c","name":"hevangel","image":{"@type":"ImageObject","inLanguage":"en-CA","@id":"https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2021\/11\/spocky.jpg?fit=1313%2C1259&ssl=1","url":"https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2021\/11\/spocky.jpg?fit=1313%2C1259&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2021\/11\/spocky.jpg?fit=1313%2C1259&ssl=1","width":1313,"height":1259,"caption":"hevangel"},"logo":{"@id":"https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2021\/11\/spocky.jpg?fit=1313%2C1259&ssl=1"},"sameAs":["http:\/\/www.horace.org","https:\/\/www.facebook.com\/horace.org"],"url":"https:\/\/www.horace.org\/blog\/author\/hevangel-2\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pwn21-jc","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":1479,"url":"https:\/\/www.horace.org\/blog\/2007\/09\/10\/periodic-table-of-visualization\/","url_meta":{"origin":1190,"position":0},"title":"Periodic Table of Visualization","author":"hevangel","date":"September 10, 2007","format":false,"excerpt":"We have to give presentation at work or in school, we often have to prepare Power Point slides. If we have some data, we don't drown the audience in sea of numbers. If we have some complex idea, we don't want to bore the audience to death by long descriptions.\u2026","rel":"","context":"In &quot;Daily Scribble&quot;","block_context":{"text":"Daily Scribble","link":"https:\/\/www.horace.org\/blog\/category\/_scribble\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2007\/09\/periodic-table-of-visualization-methods.jpg?fit=540%2C387&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2007\/09\/periodic-table-of-visualization-methods.jpg?fit=540%2C387&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2007\/09\/periodic-table-of-visualization-methods.jpg?fit=540%2C387&ssl=1&resize=525%2C300 1.5x"},"classes":[]},{"id":11720,"url":"https:\/\/www.horace.org\/blog\/2016\/09\/10\/sql-clearly-explained-3rd-edition-jan-l-harrington\/","url_meta":{"origin":1190,"position":1},"title":"SQL Clearly Explained 3rd Edition &#8211; Jan L. Harrington","author":"hevangel","date":"September 10, 2016","format":false,"excerpt":"\u5b78\u7fd2\u67b6\u8a2d\u7db2\u7ad9\uff0c\u8981\u4e00\u6b65\u6b65\u6162\u5b78\uff0c\u4e0d\u8981\u5984\u60f3\u4e00\u6b65\u767b\u5929\u3002\u539f\u672c\u5b78\u5b8cRuby\u5f8c\uff0c\u6253\u7b97\u76f4\u63a5\u5b78\u5bebRAILS\uff0c\u7136\u5f8c\u767c\u73fe\u81ea\u5df2\u4e0d\u61c2SQL\u3002\u6c92\u6709SQL\u7684\u57fa\u672c\u529f\u592b\uff0c\u4e0d\u80fd\u6709\u6548\u5730\u67b6\u8a2d\u7db2\u7ad9\uff0c\u4efb\u4f55\u7db2\u7ad9\u90fd\u8981\u7528database\u4f86\u5132\u5b58\u8cc7\u6599\u554a\u3002\u8aaa\u8d77database\u7a0b\u5f0f\uff0c\u5f88\u591a\u5e74\u524d\u6211\u5b78\u904edBase III\uff0c\u5728\u4e2d\u5b78\u96fb\u8166\u79d1\u88ab\u8feb\u5b78\u4e86\u4e00\u500b\u5b78\u671f\u3002\u7576\u5e74\u89ba\u5f97\u5b78\u4e00\u500b\u904e\u6642\u7684\u8edf\u4ef6\u5f88\u6d6a\u8cbb\u6642\u9593\uff0c\u60f3\u4e0d\u5230database\u7a0b\u5f0f\u8a2d\u8a08\u7684\u6700\u57fa\u672c\u6168\u5ff5\uff0c\u5eff\u5e7e\u5e74\u5f8c\u6703\u5f9e\u5c01\u5875\u7684\u8a18\u61b6\u4e2d\u627e\u51fa\u4f86\u6709\u7528\u3002 \u6211\u6311\u9078\u4e86\u597d\u5e7e\u672c\u5b78\u7fd2SQL\u7684\u66f8\uff0c\u601d\u524d\u60f3\u5f8c\u5230\u5e95\u7528\u90a3\u4e00\u672c\u597d\uff0c\u6700\u5f8c\u6c7a\u5b9a\u7528\u9019\u672cSQL Clearly Explained\u70ba\u4e3b\u5e79\uff0c\u518d\u7528\u5169\u672cO'Reilly\u7684\u66f8\u70ba\u8f14\u52a9\u53c3\u8003\u3002\u5f88\u591aSQL\u7684\u66f8\u53ea\u6703\u6559\u67d0\u4e00\u500bSQL server\u7684\u61c9\u7528\uff0c\u5f88\u5bb9\u6613\u898b\u6a39\u4e0d\u898b\u6797\uff0c\u5206\u4e0d\u6e05\u5230\u5e95\u90a3\u4e9b\u662fSQL\u8a9e\u8a00\u672c\u8eab\uff0c\u90a3\u4e9b\u662f\u67d0\u4e00\u500bserver\u7684syntax\u3002\u9019\u672c\u66f8\u5f9eSQL\u6a19\u6e96\u5165\u624b\uff0c\u7b2c\u4e00\u7ae0\u4e0d\u662f\u6559\u4f60\u5b89\u88dd\u8edf\u4ef6\uff0c\u800c\u662f\u5f88\u6709\u7cfb\u7d71\u5730\u8b1b\u89e3relational database\u7684\u7406\u8ad6\u3002\u53ea\u8981\u57fa\u672c\u77e5\u8b58\u6e05\u695a\u660e\u767d\uff0c\u5b78syntax\u5f88\u7c21\u55ae\uff0c\u53ef\u4ee5\u908a\u7528\u908a\u5b78\uff0c\u67e5document\u6478\u6478\u4e0b\u5c31\u4e0a\u624b\u3002\u90a3\u5169\u672cO'Reilly\u7684\u66f8\uff0c\u4e00\u672c\u6559SQLite\uff0c\u53e6\u4e00\u672c\u6559MySQL\uff0c\u5169\u5927\u5e38\u7528\u7684database\u3002\u90a3\u5169\u672c\u66f8\u4e0d\u662f\u597d\u7684\u5165\u9580\u66f8\uff0c\u5167\u5bb9\u592a\u8457\u91cd\u8b1bsyntax\uff0c\u4e0d\u904e\u537b\u662f\u5341\u5206\u6709\u7528\u7684reference\u66f8\u3002 Relational database\u7684\u7406\u8ad6\uff0c\u8aaa\u96e3\u4e0d\u96e3\uff0c\u8aaa\u6613\u4e0d\u6613\uff0c\u9818\u609f\u5230\u5c31\u4e00\u7406\u901a\u767e\u7406\u660e\u3002Database\u662f\u4ec0\u9ebc\uff0c\u4e0d\u5916\u4e4e\u4e00\u5806table\u3002Table\u5c31\u597d\u4f3cExcel\u7684spreadsheet\u5481\uff0c\u6253\u6a6b\u6253\u76f4\u4e00\u884c\u884c\uff0c\u6bcf\u683c\u5c31\u662f\u4e00\u9805\u8cc7\u6599\u3002\u6bcf\u4e00\u884c\u6709\u4e00\u683c\u4fc2primary key\uff0c\u7528\u4f86look up\u90a3\u4e00\u884c\u3002\u4e00\u884c\u4e4b\u53c8\u53ef\u4ee5\u6709foriegn key\uff0c\u9023\u7d50\u53e6\u5916\u4e00\u500btable\u7684primary key\uff0c\u8868\u660etable\u8207table\u4e4b\u9593\u884c\u8207\u884c\u7684\u95dc\u4fc2\uff0c\u8b02\u4e4brelation\u662f\u4e5f\u3002\u6aa2\u67e5\u641c\u5c0bdatabase\u53ea\u67096\u500b\u57fa\u672c\u64cd\u4f5c\uff0c\u6240\u6709\u90fd\u53ea\u662f\u842c\u8b8a\u4e0d\u96e2\u5176\u4e2d\u30026\u500b\u64cd\u4f5c\u5305\u62ec\uff0cfilter\u884c(WHERE)\u6216filter\u5217(SELECT)\uff0c\u628a\u5169\u7d44\u884c\u7684\u884c\u52a0\u8d77\u4f86(UNION)\uff0c\u627e\u51fa\u76f8\u540c\u7684\u884c(INTERSECT)\uff0c\u627e\u51fa\u4e0d\u540c\u7684\u884c(EXCEPT)\uff0c\u800c\u6700\u91cd\u8981\u7684\u64cd\u4f5c\u662fJOIN\uff0c\u5373\u4fc2\u9023\u7d50\u8d77primary key\u540cforeign key\u65e2relation\u3002 \u6b64\u66f8\u7684\u7b2c\u4e8c\u90e8\u4efd\u6559SQL Syntax\uff0c\u5be6\u7fd2\u7b2c\u4e00\u90e8\u4efd\u7684SQL\u7406\u8ad6\u3002\u9019\u672c\u66f8\u7684\u53e6\u4e00\u500b\u512a\u9ede\uff0c\u662f\u66f8\u4e2d\u9644\u5e36\u73fe\u6210\u7684database\uff0c\u4e00\u9593\u4e8c\u624b\u66f8\u5e97\u7684\u5b58\u8ca8\u8cb7\u8ce3\u8cc7\u6599\uff0c\u4e0d\u4f3c\u5176\u4ed6\u66f8\u53ea\u8b1b\u7a7a\u8ac7syntax\u3002\u6211\u628a\u66f8\u4e2d\u7684\u4f8b\u5b50\u8f38\u5165\u4e86SQLite\u6a94\u6848\uff0c\u4e26\u9644\u4e0a\u5404table\u7684csv\u6a94\u6848\uff0c\u6709\u8208\u8da3\u7684\u670b\u53cb\u53ef\u4ee5\u5728\u6b64\u4e0b\u8f09SQL\u3000Clearly Explained Sample Database\u3002\u5b78\u7fd2SQL\u7684\u6b21\u5e8f\uff0c\u6700\u5148\u5b78\u641c\u67e5\uff0c\u5982\u4f55\u5728database\u4e2d\u627e\u51fa\u4f60\u60f3\u8981\u7684\u8cc7\u6599\uff0c\u5176\u6b21\u5b78\u5982\u4f55\u66f4\u65b0\u8cc7\u6599\uff0c\u6700\u5f8c\u624d\u5b78\u5982\u4f55\u5efa\u7acb\u8a2d\u8a08database\u7684table\u3002\u6240\u4ee5\u6709\u4e00\u500b\u73fe\u6210\u7684database\uff0c\u518d\u8ddf\u8457\u66f8\u4e2d\u7684\u4e0d\u540c\u61c9\u7528\u4f8b\u5b50\uff0c\u5b78\u641c\u67e5\u5f88\u65b9\u4fbf\uff0c\u4e8b\u534a\u529f\u90e8\u3002\u66f4\u65b0\u8cc7\u6599\u7684syntax\u5f88\u7c21\u55ae\uff0c\u6709\u5f88\u8f14\u52a9function\u8b93\u4f60\u53ef\u4ee5\u5beb\u5c11\u5e7e\u884ccode\uff0c\u6700\u91cd\u8981\u7684\u6168\u5ff5\u662fACID transaction\uff0c\u8aaa\u7a7f\u4e86\u5c31\u662fmulti-threads\u7684synchronization problem\uff0c\u53ea\u662f\u6539\u4e86\u500b\u597d\u807d\u7684acronym\u3002\u8a2d\u8a08table\u90a3\u4e00\u7ae0\u6559CREATE\u7684syntax\uff0c\u4e0d\u904e\u6211\u60f3\u6c92\u6709\u4eba\u6703\u7528SQL\u53bb\u76f4\u63a5\u8d77table\uff0c\u4e0d\u662f\u6709\u5176\u4ed6GUI\u5de5\u5177\u66f4\u597d\u7528\u55ce\u3002\u8d77\u4e00\u500b\u6709\u6548\u7387\u7684table\u662f\u9580\u5f88\u9ad8\u6df1\u7684\u5b78\u554f\uff0c\u5165\u9580\u66f8\u6559syntax\u53ea\u662f\u6559\u4e86table design\u7684\u76ae\u6bdb\u3002 \u9918\u4e0b\u7684\u7b2c\u4e09\u90e8\u4efd\u548c\u7b2c\u56db\u90e8\u4efd\uff0c\u6211\u53ea\u662f\u5feb\u901f\u7565\u8b80\u3002SQL\u672c\u8eab\u662f\u4e00\u500bturing-complete\u7684\u7a0b\u5f0f\u8a9e\u8a00\uff0c\u7b2c\u4e09\u90e8\u4efd\u6559SQL\u5beb\u4e00\u822c\u7a0b\u5f0f\u7684syntax\uff0c\u53ea\u662f\u6211\u4e0d\u660e\u767d\u6709\u4ec0\u9ebc\u4eba\u6703\u7528\uff0cSQL\u7684PROCEDURE\u548cTRIGGER\u53ea\u662fsearch filter\u7684\u8f14\u52a9\u5de5\u5177\uff0c\u771f\u6b63\u8981\u505aheavy lifting\u8cc7\u6599\u904b\u7b97\uff0c\u70ba\u4ec0\u9ebc\u4e0d\u628a\u8cc7\u6599\u8b80\u51fa\u4f86\u5f8c\uff0c\u7528host\u529f\u80fd\u66f4\u5f37\u5927\u7684programming langauge\u53bbprocess\u3002\u7b2c\u56db\u90e8\u4efd\u6559SQL\u4e2dXML\u7684\u529f\u80fd\u548cObject Relational Data Model\uff0c\u4e0d\u904e\u9664\u4e86Oracle\u6216Microsft\u90a3\u4e9b\u5546\u7528\u7d1a\u7684server\uff0cSQLite\u548cMySQL\u90fd\u4e0d\u652f\u63f4\u9019\u4e9b\u529f\u80fd\uff0c\u4e0d\u904e\u8981\u641c\u67e5\u66f4\u65b0XML\uff0c\u7528DOM\u4e0d\u662f\u66f4\u65b9\u4fbf\u55ce\uff1f\u6211\u60f3\u4e0d\u5230\u6709\u4ec0\u9ebc\u7406\u7531\uff0c\u8981\u628aXML\u76f4\u63a5\u7576\u6578\u64da\u5132\u5b58\u5728database\u4e2d\uff0c\u70ba\u4ec0\u9ebc\u4e0d\u5148\u89e3\u8b80\u4e86XML\u4e2d\u7684\u8cc7\u6599\uff0c\u518d\u6709\u7cfb\u7d71\u5730\u5132\u653e\u5165table\u4e2d\u5462\uff1fOpen Source\u7684server\u4e2d\uff0c\u53ea\u6709PostgreSQL\u652f\u63f4Object Relational Data Model\uff0c\u7c21\u55ae\u4f86\u8aaa\u5c31\u662f\u628aOOP\u4e2d\u7684object\u5132\u5b58\u5728database\u4e2d\uff0c\u61c2OOP\u7684\u4eba\u5b78Object Model\u5f88\u7c21\u55ae\u3002Object Relation\u5c31\u5728table\u7684\u4e00\u683c\u5167\uff0c\u53ef\u4ee5\u5132\u5b58\u4e00\u500bobject\uff0c\u6216array\uff0cset\u7b49\u7b49\uff0c\u539f\u672ctable\u7684\u4e00\u683c\u53ea\u53ef\u4ee5\u5132\u5b58\u4e00\u500b\u6578\u503c\u3002\u53e6\u5916\u4e00\u884c\u53ef\u4ee5\u7528pointer\u76f4\u63a5link\u53bb\u53e6\u4e00\u884c\u5ea6\uff0c\u6bd4\u7528foreign key\u66f4\u6709\u6548\u7387\uff0c\u56e0\u70ba\u4e0d\u7528\u505asearch\u3002 \u5b78\u5b8cSQL\uff0c\u5ffd\u7136\u5f15\u8d77\u6211\u5c0ddatabase\u7684\u8208\u8da3\uff0c\u66ab\u6642\u653e\u4e0bRAILS\uff0c(\u53cd\u6b63\u8981\u7b49RAILS-5\u7684\u65b0\u66f8\u51fa\u7248\uff0c\u6c92\u6709\u7406\u7531\u8d70\u53bb\u5b78RAILS-4\uff09\uff0c\u6c7a\u5b9a\u5148\u5b78\u5176\u4ed6No-SQL database\uff0c\u770b\u770b\u9084\u6709\u4ec0\u9ebc\u5176\u4ed6\u5132\u5b58\u8cc7\u6599\u7684\u5176\u4ed6\u65b9\u6cd5\uff0c\u624d\u6c7a\u5b9a\u7db2\u7ad9\u8a72\u63a1\u7528\u90a3\u7a2edatabase\u6700\u597d\u3002","rel":"","context":"In &quot;\u66f8\u8a55&quot;","block_context":{"text":"\u66f8\u8a55","link":"https:\/\/www.horace.org\/blog\/category\/_books\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2016\/09\/sqlclearlyexplained.jpg?fit=677%2C821&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2016\/09\/sqlclearlyexplained.jpg?fit=677%2C821&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2016\/09\/sqlclearlyexplained.jpg?fit=677%2C821&ssl=1&resize=525%2C300 1.5x"},"classes":[]},{"id":4056,"url":"https:\/\/www.horace.org\/blog\/2010\/02\/12\/how-to-build-a-small-table-part-1\/","url_meta":{"origin":1190,"position":2},"title":"How to build a small table (part 1)","author":"hevangel","date":"February 12, 2010","format":false,"excerpt":"I am half way into my wood working class. My small table slowly comes into shape. I finally caught up with my mistakes and rebuild the two pieces that are too short. I am the fastest student in the class with everything ready to go. Since I am leading the\u2026","rel":"","context":"In &quot;Daily Scribble&quot;","block_context":{"text":"Daily Scribble","link":"https:\/\/www.horace.org\/blog\/category\/_scribble\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2010\/02\/IMG_7935.jpg?fit=900%2C1200&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2010\/02\/IMG_7935.jpg?fit=900%2C1200&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2010\/02\/IMG_7935.jpg?fit=900%2C1200&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2010\/02\/IMG_7935.jpg?fit=900%2C1200&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":3461,"url":"https:\/\/www.horace.org\/blog\/2009\/09\/23\/anki-flash-card-program\/","url_meta":{"origin":1190,"position":3},"title":"Anki, flash card program","author":"hevangel","date":"September 23, 2009","format":false,"excerpt":"A flash card software works like an old fashion flash card. You write new words on the side of the card and definition on the other side. You randomly draw cards from the deck to test how well you remember the words. A flash card software has more bell and\u2026","rel":"","context":"In &quot;Daily Scribble&quot;","block_context":{"text":"Daily Scribble","link":"https:\/\/www.horace.org\/blog\/category\/_scribble\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2009\/09\/anki.png?fit=1200%2C1037&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2009\/09\/anki.png?fit=1200%2C1037&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2009\/09\/anki.png?fit=1200%2C1037&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2009\/09\/anki.png?fit=1200%2C1037&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2009\/09\/anki.png?fit=1200%2C1037&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1407,"url":"https:\/\/www.horace.org\/blog\/2007\/07\/19\/banquet-reservation-tips\/","url_meta":{"origin":1190,"position":4},"title":"Banquet reservation tips","author":"hevangel","date":"July 19, 2007","format":false,"excerpt":"I just start my banquet shopping, trying to find a right restaurant for my wedding banquet.\u00a0 Making banquet reservation is not a simple task, there are lots of details I have to pay attention to.\u00a0 My cousin who married gave me lots of useful tips.\u00a0 Thanks Lu!\u00a0 I would like\u2026","rel":"","context":"In &quot;Daily Scribble&quot;","block_context":{"text":"Daily Scribble","link":"https:\/\/www.horace.org\/blog\/category\/_scribble\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4143,"url":"https:\/\/www.horace.org\/blog\/2010\/03\/05\/how-to-build-a-small-table-part-2\/","url_meta":{"origin":1190,"position":5},"title":"How to build a small table (part 2)","author":"hevangel","date":"March 5, 2010","format":false,"excerpt":"After eight week of wood working class, I have built my first table. After going through all the steps and trouble from raw lumber to a finished furniture, I appreciate all different kinds of furniture made available by modern manufacturing process. I can't imagine how much time it will take\u2026","rel":"","context":"In &quot;Daily Scribble&quot;","block_context":{"text":"Daily Scribble","link":"https:\/\/www.horace.org\/blog\/category\/_scribble\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2010\/03\/IMG_8179.jpg?fit=768%2C576&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2010\/03\/IMG_8179.jpg?fit=768%2C576&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2010\/03\/IMG_8179.jpg?fit=768%2C576&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.horace.org\/blog\/wp-content\/uploads\/2010\/03\/IMG_8179.jpg?fit=768%2C576&ssl=1&resize=700%2C400 2x"},"classes":[]}],"jetpack_likes_enabled":false,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.horace.org\/blog\/wp-json\/wp\/v2\/posts\/1190","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.horace.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.horace.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.horace.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.horace.org\/blog\/wp-json\/wp\/v2\/comments?post=1190"}],"version-history":[{"count":0,"href":"https:\/\/www.horace.org\/blog\/wp-json\/wp\/v2\/posts\/1190\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.horace.org\/blog\/wp-json\/wp\/v2\/media?parent=1190"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.horace.org\/blog\/wp-json\/wp\/v2\/categories?post=1190"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.horace.org\/blog\/wp-json\/wp\/v2\/tags?post=1190"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}