{"id":898,"date":"2021-05-09T22:33:13","date_gmt":"2021-05-09T13:33:13","guid":{"rendered":"http:\/\/batmask.dothome.co.kr\/?p=898"},"modified":"2025-09-12T17:45:11","modified_gmt":"2025-09-12T08:45:11","slug":"db-relationship-with-sqlite","status":"publish","type":"post","link":"http:\/\/batmask.net\/index.php\/2021\/05\/09\/898\/","title":{"rendered":"DB relationship with SQLite"},"content":{"rendered":"\n<p>Room\uc5d0\ub300\ud574 \uc815\ub9ac\ud558\ub2e4\uac00, DB\uc758 \uc2e4\uc0ac\uc6a9\uc2dc \ub9cc\ub098\uac8c \ub418\ub294 one to one, one to many, many to many relationship\uc744 \uc5b4\ub5bb\uac8c \ub2e4\ub8e8\ub294\uc9c0 \ubcc4\ub3c4\ub85c \uc815\ub9ac\ud558\ub824\uace0 \uc774 \uae00\uc744 \uc4f4\ub2e4. SQL\ubb38\uacfc Room\uc744 \ube44\uad50\ud574\ubcf4\uba74 \uc774\ud574\uac00 \uc27d\uace0 \ube60\ub97c\uac70 \uac19\uc544\uc11c \uadf8\ub807\uac8c \uc815\ub9ac\ud558\ub824\ub2e4\uac00 <a href=\"https:\/\/medium.com\/androiddevelopers\/database-relations-with-room-544ab95e4542\">android developer \ube14\ub85c\uadf8\uc5d0 \uc774\ubbf8 \uc815\ub9ac<\/a>\ub41c\uac78 \ubc1c\uacac\ud588\ub2e4. \uc544\ub9c8\ub3c4 \uc5ec\uae30\uc11c \ud06c\uac8c \ubc97\uc5b4\ub098\uc9c0 \uc54a\uc744 \uac83\uc778\ub370, \ub0b4\uc6a9\uc0c1 SQLite\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \uac83\ub9cc \uba3c\uc800 \uc815\ub9ac\ud574 \uc62c\ub9b0\ub2e4. Room\uc744 \uc774\uc6a9\ud558\ub294\uac74 \ubcc4\ub3c4 \ud3ec\uc2a4\ud305\uc73c\ub85c \uc62c\ub9b4\ud14c\ub2c8 \uc6d0\ud558\ub294 \ub0b4\uc6a9\uc740 \uadf8\uac83\uae4c\uc9c0 \uc62c\ub824\uc57c \uc644\uc131\uc774\ub2e4.<\/p>\n\n\n\n<p>RDB\uc5d0\uc11c relationship\uc740 \uac00\uc7a5 \uc911\uc694\ud55c \uac1c\ub150\uc911 \ud558\ub098\ub2e4. \ub370\uc774\ud130\ub97c \ud14c\uc774\ube14 \ud558\ub098\uc5d0 \ub54c\ub824\ub123\ub294\uac8c \uc544\ub2c8\ub77c RDB \uc774\ub860\uc5d0 \ub530\ub77c \ucd5c\uc801\ud654\ub41c \ud14c\uc774\ube14\ub85c \ub098\ub220\uc11c \uc800\uc7a5\ud558\uac8c \ub418\ub294\ub370, \uc774 \ud14c\uc774\ube14\uac04\uc758 \uad00\uacc4\uac00 relationship\uc774\ub2e4. <br>\ucd94\uc0c1\uc801\uc73c\ub85c \ub9d0\ud588\uc9c0\ub9cc, \uac04\ub2e8\ud55c \uc2e4\uc81c \uc608\ub4e4\uc740 \uc5bc\ub9c8\ub4e0\uc9c0 \ub4e4 \uc218 \uc788\ub2e4. \uac04\ub2e8\ud55c \ud0dd\ubc30\uad00\ub9ac \ud504\ub85c\uadf8\ub7a8\uc744 \uc0dd\uac01\ud574\ubcf4\uc790. \ud2b9\uc815 \ubc30\uc1a1\uc9c0\ub85c \ubcf4\ub0b4\uc9c0\ub294 \ud0dd\ubc30\ub294 \uc5bc\ub9c8\ub4e0\uc9c0 \ub9ce\uc744 \uc218 \uc788\ub2e4. \ud558\uc9c0\ub9cc, \ud558\ub098\uc758 \ud0dd\ubc30\ubb3c\ud488\uc740 \ud558\ub098\uc758 \ubc30\uc1a1\uc9c0 \uc815\ubcf4\ub9cc \uac16\uace0\uc788\ub2e4. \uc774\ucc98\ub7fc \ubc30\uc1a1\uc815\ubcf4\uc640 \ud0dd\ubc30\uc758 \uad00\uacc4\ub294 one to many\uc758 \uad00\uacc4\uac00 \ub41c\ub2e4. \uc8fc\ucc28\uad8c\uac19\uc740 \ud2f0\ucf13 \uad00\ub9ac \ud504\ub85c\uadf8\ub7a8\uc774\ub77c\uba74, \uc790\ub3d9\ucc28 \ub610\ub294 \uc18c\uc720\uc790\uc640 \ud2f0\ucf13\uc774 1:1 \ub300\uc751 \ub41c\ub2e4. \uc774\uacbd\uc6b0 one to one \uad00\uacc4\uc774\ub2e4. \ube14\ub85c\uadf8 \uae00\uc774\ub098 \uc778\uc2a4\ud0c0 \ud3ec\uc2a4\ud305\uc5d0 \ud574\uc26c\ud0dc\uadf8\ub97c \ub2e4\ub294 \uacbd\uc6b0, \ud558\ub098\uc758 \uae00\uc5d0 \uc5ec\ub7ec\uac1c\uc758 \ud574\uc26c\ud0dc\uadf8\uac00 \ub2ec\ub9b4 \uc218 \uc788\uace0, \ud558\ub098\uc758 \ud574\uc26c\ud0dc\uadf8\uac00 \uc5ec\ub7ec \uae00\uc5d0\ub3c4 \ub2ec\ub9b4 \uc218 \uc788\uc73c\ubbc0\ub85c \uc774\uacbd\uc6b0\ub294 many to many \uad00\uacc4\uac00 \ub41c\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">one to one<\/h3>\n\n\n\n<p>\uc55e\uc5d0\uc11c one to one relationship\uc758 \uc608\ub85c\ub4e0 \ucc28\uc640 \uc8fc\ucc28\uad8c\uc73c\ub85c DB \ud14c\uc774\ube14\uc744 \uadf8\ub824\ubcf4\uba74 \ub2e4\uc74c\uacfc\uac19\ub2e4.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"603\" height=\"233\" src=\"http:\/\/batmask.dothome.co.kr\/wordpress\/wp-content\/uploads\/2021\/05\/car_ticket.png\" alt=\"\" class=\"wp-image-905\" srcset=\"http:\/\/batmask.net\/wordpress\/wp-content\/uploads\/2021\/05\/car_ticket.png 603w, http:\/\/batmask.net\/wordpress\/wp-content\/uploads\/2021\/05\/car_ticket-300x116.png 300w\" sizes=\"auto, (max-width: 603px) 100vw, 603px\" \/><\/figure>\n<\/div>\n\n\n<p>car\ub294 ticket\uc774 \uc5c6\uc744 \uc218\ub3c4 \uc788\uc9c0\ub9cc, ticket\uc740 \uaf2d \ud558\ub098\uc758 \ucc28\uc5d0 \ubc1c\uae09\ub41c\ub2e4. \uadf8\ub798\uc11c ticket\uc5d0\ub9cc foreign key\ub85c car_id\ub97c \uac16\uace0 \uc788\ub2e4. <br><\/p>\n\n\n\n<p>\uc774\uc81c \uc774\uac78 SQL\ub85c \uc801\uc5b4\ubcf4\uc790. DB\uc5d0 \ub530\ub77c \uc870\uae08\uc529 \ubb38\ubc95\uc774 \ub2e4\ub978\ub370, sqlite\ub97c \uc774\uc6a9\ud55c\ub2e4\uace0 \uac00\uc815\ud558\uaca0\ub2e4. <\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-Roboto-Mono.ttf\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Roboto-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#adbac7;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#22272e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly> CREATE TABLE car (\n   car_id integer UNIQUE PRIMARY KEY,\n   car_number text NOT NULL,\n   pruduct_name text NOT NULL\n );\n CREATE TABLE ticket (\n   ticket_id integer UNIQUE PRIMARY KEY,\n   name text NOT NULL,\n   enter_time text,\n   exit_time text,\n   car_id integer UNIQUE,\n   FOREIGN KEY (car_id) REFERENCES car (car_id)\n );<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">CREATE<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">TABLE<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #DCBDFB\">car<\/span><span style=\"color: #ADBAC7\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   car_id <\/span><span style=\"color: #F47067\">integer<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">UNIQUE<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">PRIMARY KEY<\/span><span style=\"color: #ADBAC7\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   car_number <\/span><span style=\"color: #F47067\">text<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">NOT NULL<\/span><span style=\"color: #ADBAC7\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   pruduct_name <\/span><span style=\"color: #F47067\">text<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">NOT NULL<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> );<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">CREATE<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">TABLE<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #DCBDFB\">ticket<\/span><span style=\"color: #ADBAC7\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   ticket_id <\/span><span style=\"color: #F47067\">integer<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">UNIQUE<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">PRIMARY KEY<\/span><span style=\"color: #ADBAC7\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   <\/span><span style=\"color: #F47067\">name<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">text<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">NOT NULL<\/span><span style=\"color: #ADBAC7\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   enter_time <\/span><span style=\"color: #F47067\">text<\/span><span style=\"color: #ADBAC7\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   exit_time <\/span><span style=\"color: #F47067\">text<\/span><span style=\"color: #ADBAC7\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   car_id <\/span><span style=\"color: #F47067\">integer<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">UNIQUE<\/span><span style=\"color: #ADBAC7\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   <\/span><span style=\"color: #F47067\">FOREIGN KEY<\/span><span style=\"color: #ADBAC7\"> (car_id) <\/span><span style=\"color: #F47067\">REFERENCES<\/span><span style=\"color: #ADBAC7\"> car (car_id)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> );<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>FOREIGN KEY \ubd80\ubd84\uc744 \uc8fc\uc758\uae4a\uac8c \ubcf4\uc790. \uc774\ub294 \uad00\uacc4\ud615 \ub370\uc774\ud130\ubca0\uc774\uc2a4(RDB)\uc5d0\uc11c \uc81c\uc57d(Constraint)\ub77c\uace0 \ubd88\ub9ac\ub294 \uac83\uc73c\ub85c \ucc38\uc870\ubb34\uacb0\uc131\uc744 \uc9c0\ud0a4\uae30 \uc704\ud574 \ucc38\uc870\uac12\uc774 \ud574\ub2f9 \ud14c\uc774\ube14\uc5d0 \uc874\uc7ac\ud558\uc9c0 \uc54a\ub294\uacbd\uc6b0 \uc5d0\ub7ec\ub97c \ubc1c\uc0dd\uc2dc\ud0a8\ub2e4. \uc5ec\uae30\uc11c\ub294 \ub2e4\ub8e8\uc9c0 \uc54a\uc9c0\ub9cc, \ucc38\uc870\uac12\uc774 \uc9c0\uc6cc\uc9c0\uac70\ub098 \ubcc0\uacbd\ub418\ub294 \uacbd\uc6b0\uc5d0\ub294 \uc6d0\ud558\ub294 \ub3d9\uc791\uc744 \ud558\ub3c4\ub85d \ud560\uc218\ub3c4 \uc788\ub2e4. <a href=\"https:\/\/www.sqlitetutorial.net\/sqlite-foreign-key\/\">\ucd94\uac00\ub85c \ubcfc\ub9cc\ud55c \ucc38\uc870 \ub9c1\ud06c<\/a>\ub97c \ub0a8\uaca8\ub454\ub2e4.<\/p>\n\n\n\n<p>SQL\ub85c INSERT \ubc0f QUERY\ub97c \ud574\ubcf4\uc790. \ub450\uac1c\uc758 \ud14c\uc774\ube14\uc5d0\uc11c \uac00\uc838\uc624\uae30 \ub54c\ubb38\uc5d0 JOIN\uc744 \uc774\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-Roboto-Mono.ttf\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Roboto-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#adbac7;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#22272e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>INSERT INTO car (car_id, car_number, pruduct_name) VALUES (1, '11\uac001234', 'avante');\nINSERT INTO car (car_id, car_number, pruduct_name) VALUES (2, '22\ub1082345', 'damas');\nINSERT INTO car (car_id, car_number, pruduct_name) VALUES (3, '33\ub2e43456', 'bmw m2');\n\nINSERT INTO ticket (ticket_id, name, enter_time, car_id) VALUES (1, 'parking 1', '2021-01-03 09:30:00', 2);\n INSERT INTO ticket (ticket_id, name, enter_time, car_id) VALUES (2, 'parking 1', '2021-02-10 13:10:00', 3);\n\nSELECT car_number, pruduct_name, ticket.name as ticket_name, enter_time, exit_time from ticket INNER JOIN car ON ticket.car_id = car.car_id;<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F47067\">INSERT INTO<\/span><span style=\"color: #ADBAC7\"> car (car_id, car_number, pruduct_name) <\/span><span style=\"color: #F47067\">VALUES<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">1<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;11\uac001234&#39;<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;avante&#39;<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F47067\">INSERT INTO<\/span><span style=\"color: #ADBAC7\"> car (car_id, car_number, pruduct_name) <\/span><span style=\"color: #F47067\">VALUES<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">2<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;22\ub1082345&#39;<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;damas&#39;<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F47067\">INSERT INTO<\/span><span style=\"color: #ADBAC7\"> car (car_id, car_number, pruduct_name) <\/span><span style=\"color: #F47067\">VALUES<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">3<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;33\ub2e43456&#39;<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;bmw m2&#39;<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F47067\">INSERT INTO<\/span><span style=\"color: #ADBAC7\"> ticket (ticket_id, <\/span><span style=\"color: #F47067\">name<\/span><span style=\"color: #ADBAC7\">, enter_time, car_id) <\/span><span style=\"color: #F47067\">VALUES<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">1<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;parking 1&#39;<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;2021-01-03 09:30:00&#39;<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #6CB6FF\">2<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">INSERT INTO<\/span><span style=\"color: #ADBAC7\"> ticket (ticket_id, <\/span><span style=\"color: #F47067\">name<\/span><span style=\"color: #ADBAC7\">, enter_time, car_id) <\/span><span style=\"color: #F47067\">VALUES<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">2<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;parking 1&#39;<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;2021-02-10 13:10:00&#39;<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #6CB6FF\">3<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F47067\">SELECT<\/span><span style=\"color: #ADBAC7\"> car_number, pruduct_name, <\/span><span style=\"color: #6CB6FF\">ticket<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">name<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">as<\/span><span style=\"color: #ADBAC7\"> ticket_name, enter_time, exit_time <\/span><span style=\"color: #F47067\">from<\/span><span style=\"color: #ADBAC7\"> ticket <\/span><span style=\"color: #F47067\">INNER JOIN<\/span><span style=\"color: #ADBAC7\"> car <\/span><span style=\"color: #F47067\">ON<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">ticket<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">car_id<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">car<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">car_id<\/span><span style=\"color: #ADBAC7\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"591\" height=\"121\" src=\"http:\/\/batmask.dothome.co.kr\/wordpress\/wp-content\/uploads\/2021\/05\/result01-1.png\" alt=\"\" class=\"wp-image-917\" srcset=\"http:\/\/batmask.net\/wordpress\/wp-content\/uploads\/2021\/05\/result01-1.png 591w, http:\/\/batmask.net\/wordpress\/wp-content\/uploads\/2021\/05\/result01-1-300x61.png 300w\" sizes=\"auto, (max-width: 591px) 100vw, 591px\" \/><\/figure>\n<\/div>\n\n\n<p>car \ud14c\uc774\ube14\uc5d0 \uc0d8\ud50c \ub370\uc774\ud130\ub97c 3\uac1c \ub123\uace0, ticket \ud14c\uc774\ube14\uc5d0 \uc678\ub798\ud0a4\ub85c car\ub97c \ucc38\uc870\ud558\ub294 \uc0d8\ud50c \ub370\uc774\ud130\ub97c 2\uac1c \ub123\uc5c8\ub2e4. <br>SELECT\ub85c \uac12\uc744 \uac00\uc838\uc62c \ub54c\ub294 \ud544\uc694\ud55c \ud544\ub4dc\ub9cc \ud45c\uc2dc\ud588\ub2e4. \ub450 \ud14c\uc774\ube14\uc758 \ud544\ub4dc\uba85\uc774 \ub3d9\uc77c\ud55c \uacbd\uc6b0, table.field \ub85c \uad6c\ubcc4\ud558\uace0 &#8216;AS&#8217; \ub97c \uc774\uc6a9\ud574\uc11c \uc0c8 \uc774\ub984\uc744 \ubd80\uc5ec\ud560 \uc218 \uc788\ub2e4. \uc5ec\uae30\uc11c\ub294 name \ud544\ub4dc\uac00 \ubb34\uc5c7\uc758 \uc774\ub984\uc778\uc9c0 \uba85\ud655\ud558\uc9c0 \uc54a\uc73c\ubbc0\ub85c, ticket.name AS ticket_name \uacfc \uac19\uc774 \uc774\ub984\uc744 \ubcc0\uacbd\ud574\uc92c\ub2e4. <br>SELECT\uc758 \ub300\uc0c1 \ud14c\uc774\ube14\uc740 FOREIGN KEY\ub97c \uac16\uace0 \uc788\ub294 ticket \ud14c\uc774\ube14\uc774 \ub41c\ub2e4. INNER JOIN\uc744 \uc774\uc6a9\ud574 car \ud14c\uc774\ube14\uacfc \ubcd1\ud569\uc2dc\ud0a4\ub294\ub370, \uc678\ub798\ud0a4\uc778 ticket.car_id = car.car_id \uc758 \uc870\uac74\uc744 \uc774\uc6a9\ud558\uace0 \uc788\ub2e4. <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><span class=\"has-inline-color has-vivid-red-color\">\uc624\ub958 \uc815\uc815 : \uc704 \ucf54\ub4dc\uc5d0\uc11c car table\uc758 \uccab\ubc88\uc9f8 \uc544\uc774\ud15c\uc740 \ub300\uc751\ud558\ub294 \ud2f0\ucf13\uc774 \uc5c6\ub2e4. \uc815\ud655\ud788 \ub9d0\ud574, \uc704 \uad00\uacc4\ub294 \ub300\uc751\ud558\ub294 \ud2f0\ucf13\uc774 \uc5c6\uc744 \uc218 \uc788\ub2e4\ub294 \uc598\uae30\ub2c8\uae4c 1:1 \uc774 \uc544\ub2c8\ub77c, 1:N \uad00\uacc4\ub85c \ucc98\ub9ac\ub418\uc5b4\uc57c \ud55c\ub2e4. 1:1 \uad00\uacc4\ub294 \ub300\uc751\ud558\ub294 \uc544\uc774\ud15c\uc774 \uaf2d \ud558\ub098\uc529 \uc788\uc5b4\uc57c \ud55c\ub2e4. <\/span><\/strong><br><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">one to many<\/h3>\n\n\n\n<p>\uc55e\uc5d0\uc11c one to many\uc758 \uc608\ub85c\ub4e0 \ud0dd\ubc30 \ubb3c\ud488(package)\uc640 \ubc30\uc1a1\uc815\ubcf4(recipient)\ub85c DB \ud14c\uc774\ube14\uc744 \uadf8\ub824\ubcf4\uba74 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><span class=\"has-inline-color has-vivid-red-color\">recipient\ub97c receipient\ub85c \uc804\ubd80 \uc798\ubabb\uc801\uc5c8\ub2e4. \ud14d\uc2a4\ud2b8\ub294 \ub2e4 \uace0\ucce4\ub294\ub370, \uc774\ubbf8\uc9c0\ub97c \uc218\uc815\ubabb\ud568 \u315c <\/span><\/strong><\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"833\" height=\"214\" src=\"http:\/\/batmask.dothome.co.kr\/wordpress\/wp-content\/uploads\/2021\/05\/package_receipient.png\" alt=\"\" class=\"wp-image-923\" srcset=\"http:\/\/batmask.net\/wordpress\/wp-content\/uploads\/2021\/05\/package_receipient.png 833w, http:\/\/batmask.net\/wordpress\/wp-content\/uploads\/2021\/05\/package_receipient-300x77.png 300w, http:\/\/batmask.net\/wordpress\/wp-content\/uploads\/2021\/05\/package_receipient-768x197.png 768w\" sizes=\"auto, (max-width: 833px) 100vw, 833px\" \/><\/figure>\n<\/div>\n\n\n<p>\uc55e\uc5d0\uc11c\uc640 \uac19\uc774 SQL\ub85c \ub9cc\ub4e4\uc5b4\ubcf4\uc790.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-Roboto-Mono.ttf\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Roboto-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#adbac7;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#22272e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>CREATE TABLE 'recipient' (\n   'recipient_id' integer UNIQUE PRIMARY KEY AUTOINCREMENT,\n   'name' text not NULL,\n   'address' text not NULL\n );\n CREATE TABLE 'package' (\n   'package_id' integer unique PRIMARY key AUTOINCREMENT,\n   'name' text,\n   'recipient_id' integer,\n   FOREIGN KEY ('recipient_id') references 'recipient' ('recipient_id')\n );<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F47067\">CREATE<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">TABLE<\/span><span style=\"color: #ADBAC7\"> &#39;<\/span><span style=\"color: #DCBDFB\">recipient<\/span><span style=\"color: #ADBAC7\">&#39; (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   <\/span><span style=\"color: #96D0FF\">&#39;recipient_id&#39;<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">integer<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">UNIQUE<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">PRIMARY KEY<\/span><span style=\"color: #ADBAC7\"> AUTOINCREMENT,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   <\/span><span style=\"color: #96D0FF\">&#39;name&#39;<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">text<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">not NULL<\/span><span style=\"color: #ADBAC7\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   <\/span><span style=\"color: #96D0FF\">&#39;address&#39;<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">text<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">not NULL<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> );<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">CREATE<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">TABLE<\/span><span style=\"color: #ADBAC7\"> &#39;<\/span><span style=\"color: #DCBDFB\">package<\/span><span style=\"color: #ADBAC7\">&#39; (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   <\/span><span style=\"color: #96D0FF\">&#39;package_id&#39;<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">integer<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">unique<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">PRIMARY key<\/span><span style=\"color: #ADBAC7\"> AUTOINCREMENT,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   <\/span><span style=\"color: #96D0FF\">&#39;name&#39;<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">text<\/span><span style=\"color: #ADBAC7\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   <\/span><span style=\"color: #96D0FF\">&#39;recipient_id&#39;<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">integer<\/span><span style=\"color: #ADBAC7\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   <\/span><span style=\"color: #F47067\">FOREIGN KEY<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #96D0FF\">&#39;recipient_id&#39;<\/span><span style=\"color: #ADBAC7\">) <\/span><span style=\"color: #F47067\">references<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;recipient&#39;<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #96D0FF\">&#39;recipient_id&#39;<\/span><span style=\"color: #ADBAC7\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> );<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>one to one \uc5d0\uc11c  foreign key\ub97c unique\ub85c \uc124\uc815 \uc548\ud55c\uac78 \uc81c\uc678\ud558\uace0\ub294 \ud14c\uc774\ube14 \uc0dd\uc131\uc5d0\uc120 \ucc28\uc774\uc810\uc774 \uc5c6\ub2e4. \uc55e\uc5d0\uc120 \ube7c\uba39\uc5c8\uc5c8\ub294\ub370, id \uac12\ub4e4\uc5d0 AUTOINCREMENT\ub97c \uc0ac\uc6a9\ud588\ub2e4. insert\uc2dc\uc5d0 \ubcc4\ub3c4\ub85c id\ub97c \ub123\uc5b4\uc8fc\uc9c0 \uc54a\uc544\ub3c4 \uc790\ub3d9\uc73c\ub85c \uac12\uc774 \uc99d\uac00\ud558\uba70 \ud560\ub2f9\ub420 \uac83\uc774\ub2e4. \uc5ec\uae30\uc11c\ub3c4 \uac12\uc744 \ub123\uace0 \uac00\uc838\uc640\ubcf4\uc790. \ub2e8, foreign key\ub85c id\uac12\uc744 \uc785\ub825\ud574\uc57c \ud558\ubbc0\ub85c \ud14c\uc2a4\ud2b8\ub97c \uc704\ud574 AUTOINCREMENT\uc5d0 \ub9e1\uae30\uc9c0 \uc54a\uace0 id\uac12\uc744 \uc9c1\uc811 \ud560\ub2f9\ud588\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-Roboto-Mono.ttf\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Roboto-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#adbac7;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#22272e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>insert into recipient (recipient_id, name, address) values (1, '\uae40\ud0dd\ubc30', '\uc11c\uc6b8\uc2dc \uc9ec\ubf55\ub3d9 11-22');\n insert into recipient (recipient_id, name, address) values (2, '\ud3ec\uc7a5\uc9c0', '\ubd80\uc0b0\uc2dc \uc9ec\uc9dc\ub3d9 33-44');\n insert into recipient (recipient_id, name, address) values (3, '\uac15\ubcbd\ub3cc', '\ub300\uc804\uc2dc \uc0ac\uae30\ub3d9 55-7');\n insert into package (name, recipient_id) VALUES ('\ud587\ubc18 \ud55c\uc0c1\uc790', 1);\n insert into package (name, recipient_id) VALUES ('\ucef5\ub77c\uba74\ubc15\uc2a4', 1);\n insert into package (name, recipient_id) VALUES ('\ucee4\ud53c\ud3ec\ud2b8', 1);\n insert into package (name, recipient_id) VALUES ('\ubc15\uc2a4\ud2f0', 2);\n insert into package (name, recipient_id) VALUES ('\uc591\ub9d0', 2);\n insert into package (name, recipient_id) VALUES ('\uc544\uc774\ud3f0', 3);\n insert into package (name, recipient_id) VALUES ('\uc544\uc774\ud31f', 3);\n\nselect package.name as package_name, recipient.name as recipient_name, recipient.address from package INNER JOIN recipient on package.recipient_id = recipient.recipient_id;<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> recipient (recipient_id, <\/span><span style=\"color: #F47067\">name<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #F47067\">address<\/span><span style=\"color: #ADBAC7\">) <\/span><span style=\"color: #F47067\">values<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">1<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;\uae40\ud0dd\ubc30&#39;<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;\uc11c\uc6b8\uc2dc \uc9ec\ubf55\ub3d9 11-22&#39;<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> recipient (recipient_id, <\/span><span style=\"color: #F47067\">name<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #F47067\">address<\/span><span style=\"color: #ADBAC7\">) <\/span><span style=\"color: #F47067\">values<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">2<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;\ud3ec\uc7a5\uc9c0&#39;<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;\ubd80\uc0b0\uc2dc \uc9ec\uc9dc\ub3d9 33-44&#39;<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> recipient (recipient_id, <\/span><span style=\"color: #F47067\">name<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #F47067\">address<\/span><span style=\"color: #ADBAC7\">) <\/span><span style=\"color: #F47067\">values<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">3<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;\uac15\ubcbd\ub3cc&#39;<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;\ub300\uc804\uc2dc \uc0ac\uae30\ub3d9 55-7&#39;<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> package (<\/span><span style=\"color: #F47067\">name<\/span><span style=\"color: #ADBAC7\">, recipient_id) <\/span><span style=\"color: #F47067\">VALUES<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #96D0FF\">&#39;\ud587\ubc18 \ud55c\uc0c1\uc790&#39;<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #6CB6FF\">1<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> package (<\/span><span style=\"color: #F47067\">name<\/span><span style=\"color: #ADBAC7\">, recipient_id) <\/span><span style=\"color: #F47067\">VALUES<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #96D0FF\">&#39;\ucef5\ub77c\uba74\ubc15\uc2a4&#39;<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #6CB6FF\">1<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> package (<\/span><span style=\"color: #F47067\">name<\/span><span style=\"color: #ADBAC7\">, recipient_id) <\/span><span style=\"color: #F47067\">VALUES<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #96D0FF\">&#39;\ucee4\ud53c\ud3ec\ud2b8&#39;<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #6CB6FF\">1<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> package (<\/span><span style=\"color: #F47067\">name<\/span><span style=\"color: #ADBAC7\">, recipient_id) <\/span><span style=\"color: #F47067\">VALUES<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #96D0FF\">&#39;\ubc15\uc2a4\ud2f0&#39;<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #6CB6FF\">2<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> package (<\/span><span style=\"color: #F47067\">name<\/span><span style=\"color: #ADBAC7\">, recipient_id) <\/span><span style=\"color: #F47067\">VALUES<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #96D0FF\">&#39;\uc591\ub9d0&#39;<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #6CB6FF\">2<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> package (<\/span><span style=\"color: #F47067\">name<\/span><span style=\"color: #ADBAC7\">, recipient_id) <\/span><span style=\"color: #F47067\">VALUES<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #96D0FF\">&#39;\uc544\uc774\ud3f0&#39;<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #6CB6FF\">3<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> package (<\/span><span style=\"color: #F47067\">name<\/span><span style=\"color: #ADBAC7\">, recipient_id) <\/span><span style=\"color: #F47067\">VALUES<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #96D0FF\">&#39;\uc544\uc774\ud31f&#39;<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #6CB6FF\">3<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F47067\">select<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">package<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">name<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">as<\/span><span style=\"color: #ADBAC7\"> package_name, <\/span><span style=\"color: #6CB6FF\">recipient<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">name<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">as<\/span><span style=\"color: #ADBAC7\"> recipient_name, <\/span><span style=\"color: #6CB6FF\">recipient<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">address<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">from<\/span><span style=\"color: #ADBAC7\"> package <\/span><span style=\"color: #F47067\">INNER JOIN<\/span><span style=\"color: #ADBAC7\"> recipient <\/span><span style=\"color: #F47067\">on<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">package<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">recipient_id<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">recipient<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">recipient_id<\/span><span style=\"color: #ADBAC7\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>one to one\uacfc \ud06c\uac8c \ub2e4\ub974\uc9c0 \uc54a\ub2e4. \ucffc\ub9ac\ubc29\ubc95\ub3c4 \uac19\uc740\ub370 \ub2e8\uc9c0, \ucffc\ub9ac \uacb0\uacfc\uac00 one to many \ud615\ud0dc\uc77c \ubfd0\uc774\ub2e4. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">many to many<\/h3>\n\n\n\n<p>\uc55e\uc5d0\uc11c many to many\uc758 \uc608\ub85c\ub294 \ube14\ub85c\uadf8 \ud3ec\uc2a4\ud305\uacfc \ud574\uc26c\ud0dc\uadf8\ub97c \ub4e4\uc5c8\uc5c8\ub2e4. \ube44\uc2b7\ud558\uac8c \ud574\uc26c\ud0dc\uadf8\ub97c \uc774\uc6a9\ud55c \ubd81\ub9c8\ud06c \uad00\ub9ac\uc790\ub97c \ub9cc\ub4e0\ub2e4\uace0 \uc0dd\uac01\ud574\ubcf4\uc790. \ud574\uc26c\ud0dc\uadf8\ub294 \ud2b9\uc131\uc0c1 \uc5b4\ub514\uc5d0 \ubd99\ub4e0 many to many relationship\uc774 \ub420 \uac83\uc774\ub2e4. <br>\ub2e4\uc774\uc5b4\uadf8\ub7a8\uc73c\ub85c\ub294 \ud14c\uc774\ube14 \ub450\uac1c\ub85c \uc9c1\uc811 many to many\ud45c\uc2dc\ub97c \ud560 \uc218\ub3c4 \uc788\uc9c0\ub9cc, \uc2e4\uc81c \ud14c\uc774\ube14 \uad6c\uc131\uc740 one to many\ub85c \ub450 \ud14c\uc774\ube14\uc744 \uc5f0\uacb0\ud558\ub294 junction(\ud639\uc740 Bridge) \ud14c\uc774\ube14\uc744 \uc0ac\uc6a9\ud558\ub294\uac8c \uc815\uc11d\uc774\ub2e4. \uc774\uac78\ub85c DB\ud14c\uc774\ube14\uc744 \uadf8\ub824\ubcf4\uba74 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"694\" height=\"168\" src=\"http:\/\/batmask.dothome.co.kr\/wordpress\/wp-content\/uploads\/2021\/05\/bookmark_tag.png\" alt=\"\" class=\"wp-image-907\" srcset=\"http:\/\/batmask.net\/wordpress\/wp-content\/uploads\/2021\/05\/bookmark_tag.png 694w, http:\/\/batmask.net\/wordpress\/wp-content\/uploads\/2021\/05\/bookmark_tag-300x73.png 300w\" sizes=\"auto, (max-width: 694px) 100vw, 694px\" \/><\/figure>\n<\/div>\n\n\n<p>one to one, one to many\ub97c \ub2e4\ub918\uae30 \ub54c\ubb38\uc5d0 \ud14c\uc774\ube14 3\uac1c\ub97c \uc4f4\ub2e4\ub294 \uac83\ub9cc \uc54c\uac8c\ub418\uba74 \uc774\ud6c4\ub294 \uc5b4\ub835\uc9c0 \uc54a\ub2e4. \ubb38\uc81c\ub294 \ucffc\ub9ac\uac00 \ub450\ubc88 \ud544\uc694\ud558\uace0, \ub450 \ucffc\ub9ac\uc758 \uacb0\uacfc\ub97c \ud569\uccd0\uc57c \ud55c\ub2e4\ub294 \uac83\uc774\ub2e4. \uc77c\ub2e8, \ud14c\uc774\ube14\uc744 \ub9cc\ub4e4\uc5b4\ubcf4\uc790.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-Roboto-Mono.ttf\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Roboto-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#adbac7;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#22272e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>Create Table bookmark (\n   id integer UNIQUE PRIMARY KEY AUTOINCREMENT,\n   name text,\n   url text not NULL  \n );\n create table tag (\n   id integer UNIQUE PRIMARY KEY AUTOINCREMENT,\n   tag_name text\n );\n create table bookmark_tag (\n   bookmark_id integer not NULL,\n   tag_id integer not NULL,\n primary key(bookmark_id, tag_id),\n   FOREIGN KEY (bookmark_id) REFERENCES bookmark (id),\n   FOREIGN KEY (tag_id) REFERENCES tag (id)  \n );<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F47067\">Create<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">Table<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #DCBDFB\">bookmark<\/span><span style=\"color: #ADBAC7\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   id <\/span><span style=\"color: #F47067\">integer<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">UNIQUE<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">PRIMARY KEY<\/span><span style=\"color: #ADBAC7\"> AUTOINCREMENT,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   <\/span><span style=\"color: #F47067\">name<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">text<\/span><span style=\"color: #ADBAC7\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   <\/span><span style=\"color: #F47067\">url<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">text<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">not NULL<\/span><span style=\"color: #ADBAC7\">  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> );<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">create<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">table<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #DCBDFB\">tag<\/span><span style=\"color: #ADBAC7\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   id <\/span><span style=\"color: #F47067\">integer<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">UNIQUE<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">PRIMARY KEY<\/span><span style=\"color: #ADBAC7\"> AUTOINCREMENT,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   tag_name <\/span><span style=\"color: #F47067\">text<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> );<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">create<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">table<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #DCBDFB\">bookmark_tag<\/span><span style=\"color: #ADBAC7\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   bookmark_id <\/span><span style=\"color: #F47067\">integer<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">not NULL<\/span><span style=\"color: #ADBAC7\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   tag_id <\/span><span style=\"color: #F47067\">integer<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">not NULL<\/span><span style=\"color: #ADBAC7\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">primary key<\/span><span style=\"color: #ADBAC7\">(bookmark_id, tag_id),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   <\/span><span style=\"color: #F47067\">FOREIGN KEY<\/span><span style=\"color: #ADBAC7\"> (bookmark_id) <\/span><span style=\"color: #F47067\">REFERENCES<\/span><span style=\"color: #ADBAC7\"> bookmark (id),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   <\/span><span style=\"color: #F47067\">FOREIGN KEY<\/span><span style=\"color: #ADBAC7\"> (tag_id) <\/span><span style=\"color: #F47067\">REFERENCES<\/span><span style=\"color: #ADBAC7\"> tag (id)  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> );<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>bookmark_tag \ud14c\uc774\ube14\uc740 bookmark_id, tag_id \ub85c \uc774\ub8e8\uc5b4\uc9c4 composite key\ub97c primary key\ub85c \uac16\ub3c4\ub85d \ud588\ub2e4. \uac01\uac01 \ub610\ud55c, FOREIGN KEY\ub85c \uac01 bookmark, tag \ud14c\uc774\ube14\uc744 \ucc38\uc870\ud55c\ub2e4. <\/p>\n\n\n\n<p>\uc774\uc81c \uac12\uc744 \uc785\ub825\ud558\uace0 \uac00\uc838\uc640\ubcf4\uc790.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-Roboto-Mono.ttf\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Roboto-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#adbac7;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#22272e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly> insert INTO bookmark (id, name, url) VALUES (1, 'android developer', 'https:\/\/developer.android.com\/');\n insert INTO bookmark (id, name, url) VALUES (2, 'unity', 'https:\/\/unity.com\/');\n insert INTO bookmark (id, name, url) VALUES (3, 'kotlin', 'https:\/\/kotlinlang.org\/');\n\n insert into tag (id, tag_name) VALUES (1, 'programming');\n insert into tag (id, tag_name) VALUES (2, 'android');\n insert into tag (id, tag_name) VALUES (3, 'unity');\n insert into tag (id, tag_name) VALUES (4, 'game');\n insert into tag (id, tag_name) VALUES (5, 'kotlin');\n insert into tag (id, tag_name) VALUES (6, 'language');\n\n insert into bookmark_tag (bookmark_id, tag_id) values (1, 1);\n insert into bookmark_tag (bookmark_id, tag_id) values (1, 2);\n\n insert into bookmark_tag (bookmark_id, tag_id) values (2, 1);\n insert into bookmark_tag (bookmark_id, tag_id) values (2, 3);\n insert into bookmark_tag (bookmark_id, tag_id) values (2, 4);\n\n insert into bookmark_tag (bookmark_id, tag_id) values (3, 1);\n insert into bookmark_tag (bookmark_id, tag_id) values (3, 5);\n insert into bookmark_tag (bookmark_id, tag_id) values (3, 6);<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert INTO<\/span><span style=\"color: #ADBAC7\"> bookmark (id, <\/span><span style=\"color: #F47067\">name<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #F47067\">url<\/span><span style=\"color: #ADBAC7\">) <\/span><span style=\"color: #F47067\">VALUES<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">1<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;android developer&#39;<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;https:\/\/developer.android.com\/&#39;<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert INTO<\/span><span style=\"color: #ADBAC7\"> bookmark (id, <\/span><span style=\"color: #F47067\">name<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #F47067\">url<\/span><span style=\"color: #ADBAC7\">) <\/span><span style=\"color: #F47067\">VALUES<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">2<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;unity&#39;<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;https:\/\/unity.com\/&#39;<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert INTO<\/span><span style=\"color: #ADBAC7\"> bookmark (id, <\/span><span style=\"color: #F47067\">name<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #F47067\">url<\/span><span style=\"color: #ADBAC7\">) <\/span><span style=\"color: #F47067\">VALUES<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">3<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;kotlin&#39;<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;https:\/\/kotlinlang.org\/&#39;<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> tag (id, tag_name) <\/span><span style=\"color: #F47067\">VALUES<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">1<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;programming&#39;<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> tag (id, tag_name) <\/span><span style=\"color: #F47067\">VALUES<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">2<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;android&#39;<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> tag (id, tag_name) <\/span><span style=\"color: #F47067\">VALUES<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">3<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;unity&#39;<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> tag (id, tag_name) <\/span><span style=\"color: #F47067\">VALUES<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">4<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;game&#39;<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> tag (id, tag_name) <\/span><span style=\"color: #F47067\">VALUES<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">5<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;kotlin&#39;<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> tag (id, tag_name) <\/span><span style=\"color: #F47067\">VALUES<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">6<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&#39;language&#39;<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> bookmark_tag (bookmark_id, tag_id) <\/span><span style=\"color: #F47067\">values<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">1<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #6CB6FF\">1<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> bookmark_tag (bookmark_id, tag_id) <\/span><span style=\"color: #F47067\">values<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">1<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #6CB6FF\">2<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> bookmark_tag (bookmark_id, tag_id) <\/span><span style=\"color: #F47067\">values<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">2<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #6CB6FF\">1<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> bookmark_tag (bookmark_id, tag_id) <\/span><span style=\"color: #F47067\">values<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">2<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #6CB6FF\">3<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> bookmark_tag (bookmark_id, tag_id) <\/span><span style=\"color: #F47067\">values<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">2<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #6CB6FF\">4<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> bookmark_tag (bookmark_id, tag_id) <\/span><span style=\"color: #F47067\">values<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">3<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #6CB6FF\">1<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> bookmark_tag (bookmark_id, tag_id) <\/span><span style=\"color: #F47067\">values<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">3<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #6CB6FF\">5<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">insert into<\/span><span style=\"color: #ADBAC7\"> bookmark_tag (bookmark_id, tag_id) <\/span><span style=\"color: #F47067\">values<\/span><span style=\"color: #ADBAC7\"> (<\/span><span style=\"color: #6CB6FF\">3<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #6CB6FF\">6<\/span><span style=\"color: #ADBAC7\">);<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>3\uac1c\uc758 \ubd81\ub9c8\ud06c\ub97c \ub9cc\ub4e4\uace0, \uac01 \ubd81\ub9c8\ud06c\ub2f9 \uba87\uac1c\uc758 \ud0dc\uadf8\ub97c \uc9c0\uc815\ud588\ub2e4. \ubd81\ub9c8\ud06c\uc640 \ud0dc\uadf8\ub294 \ubcc4\ub3c4\uc758 \ud14c\uc774\ube14\uc5d0 \uc800\uc7a5\ub418\uc9c0\ub9cc, junction \ud14c\uc774\ube14\uc778 bookmark_tag \uc5d0 \ub9e4\uce6d\uc815\ubcf4\uac00 \uc800\uc7a5\ub41c\ub2e4. <\/p>\n\n\n\n<p>\uc55e\uc5d0\uc11c\ub294 \ub2e8\uc21c\ud558\uac8c \uc804\uccb4 \ud14c\uc774\ube14\uc744 \ucffc\ub9ac\ud588\ub2e4. \uc5ec\uae30\uc120 \uc870\uae08 \uc790\uc138\ud788 \uc120\ud0dd\uc801\uc73c\ub85c \ud574\ubcf4\uc790. \uba3c\uc800, kotlin \uc0ac\uc774\ud2b8 \ubd81\ub9c8\ud06c\uc758 \ud0dc\uadf8\ub97c \uac00\uc838\uc640\ubcf4\uc790.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-Roboto-Mono.ttf\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Roboto-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#adbac7;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#22272e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>SELECT bookmark.name, bookmark.url, tag.tag_name FROM bookmark_tag \n INNER JOIN bookmark ON bookmark_tag.bookmark_id = bookmark.id\n INNER JOIN tag ON bookmark_tag.tag_id = tag.id WHERE bookmark.name = 'kotlin'; <\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F47067\">SELECT<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">bookmark<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">name<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #6CB6FF\">bookmark<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">url<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #6CB6FF\">tag<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">tag_name<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">FROM<\/span><span style=\"color: #ADBAC7\"> bookmark_tag <\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">INNER JOIN<\/span><span style=\"color: #ADBAC7\"> bookmark <\/span><span style=\"color: #F47067\">ON<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">bookmark_tag<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">bookmark_id<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">bookmark<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">id<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">INNER JOIN<\/span><span style=\"color: #ADBAC7\"> tag <\/span><span style=\"color: #F47067\">ON<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">bookmark_tag<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">tag_id<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">tag<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">id<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">WHERE<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">bookmark<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">name<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;kotlin&#39;<\/span><span style=\"color: #ADBAC7\">; <\/span><\/span><\/code><\/pre><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"570\" height=\"156\" src=\"http:\/\/batmask.dothome.co.kr\/wordpress\/wp-content\/uploads\/2021\/05\/result03.png\" alt=\"\" class=\"wp-image-929\" srcset=\"http:\/\/batmask.net\/wordpress\/wp-content\/uploads\/2021\/05\/result03.png 570w, http:\/\/batmask.net\/wordpress\/wp-content\/uploads\/2021\/05\/result03-300x82.png 300w\" sizes=\"auto, (max-width: 570px) 100vw, 570px\" \/><\/figure>\n<\/div>\n\n\n<p>\ucffc\ub9ac\uac00 \ub450\ubc88 \ud544\uc694\ud558\ub2e4\uace0 \ud588\ub294\ub370, SQL\ubb38\uc5d0\uc11c INNER JOIN\uc774 \ub450\ubc88 \uc0ac\uc6a9\ub418\uace0 \uc788\ub2e4. JOIN\uc744 \ud558\uba74 \uc0c8\ub85c\uc6b4 \ud14c\uc774\ube14\uc774 \uc0dd\uae30\ub294 \uac83\uacfc \ub9c8\ucc2c\uac00\uc9c0 \uc774\ubbc0\ub85c, \uc5f0\uc1c4\uc801\uc73c\ub85c JOIN\uc5f0\uc0b0\uc744 \ud55c\ub2e4\uace0 \uc0dd\uac01\ud558\uba74 \ub418\uaca0\ub2e4. \uc5ec\uae30\uc5d0\uc120 bookmar_tag\uc640 bookmark\ub97c \uba3c\uc800 JOIN\ud558\uace0 \uadf8 \uacb0\uacfc\ubb3c\uc744 tag\uc640 JOIN\ud55c\ub2e4\uace0 \uc774\ud574\ud558\uc790. \ub0b4\ubd80 \uad6c\ud604\uc740 \uac01 RDBMS\ub9c8\ub2e4 \ub2e4\ub974\uaca0\uc9c0\ub9cc, \uac04\ub2e8\ud558\uac8c\ub294 \uc774\uc815\ub3c4\uba74 \ucda9\ubd84\ud560 \uac70 \uac19\ub2e4. \uc774\ub807\uac8c \ub9cc\ub4e4\uc5b4\uc9c4 \ud14c\uc774\ube14\uc5d0\uc11c WHERE \uc870\uac74\uc73c\ub85c bookmark\uc758 \uc774\ub984\uc73c\ub85c &#8216;kotlin&#8217;\ub9cc \uac80\uc0c9\ud55c \uacb0\uacfc\uac00 \uc704\uc640 \uac19\ub2e4. \uc774\ub807\uac8c \ud2b9\uc815 \ubd81\ub9c8\ud06c\uc5d0 \ubd99\uc5b4\uc788\ub294 \ubaa8\ub4e0 \ud0dc\uadf8\ub97c \uac00\uc838\uc62c \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p>\uc774\ubc88\uc5d4 &#8216;programming&#8217; \ud0dc\uadf8\ub85c \uac80\uc0c9\uc744 \ud574\ubcf4\uc790. \uc608\uc81c\ub97c \uc870\uae08 \uc798\ubabb\ub9cc\ub4e4\uc5b4\uc11c \uacf5\ud1b5 \ud0dc\uadf8\uac00 \uc774\uac70 \ud558\ub098\ubc16\uc5d0 \uc5c6\ub2e4 \u314b <\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-Roboto-Mono.ttf\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Roboto-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#adbac7;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#22272e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>SELECT bookmark.name, bookmark.url, tag.tag_name FROM bookmark_tag \nINNER JOIN tag ON bookmark_tag.tag_id = tag.id \nINNER JOIN bookmark ON bookmark_tag.bookmark_id = bookmark.id \nWHERE tag_name = 'programming';<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F47067\">SELECT<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">bookmark<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">name<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #6CB6FF\">bookmark<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">url<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #6CB6FF\">tag<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">tag_name<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">FROM<\/span><span style=\"color: #ADBAC7\"> bookmark_tag <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F47067\">INNER JOIN<\/span><span style=\"color: #ADBAC7\"> tag <\/span><span style=\"color: #F47067\">ON<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">bookmark_tag<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">tag_id<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">tag<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">id<\/span><span style=\"color: #ADBAC7\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F47067\">INNER JOIN<\/span><span style=\"color: #ADBAC7\"> bookmark <\/span><span style=\"color: #F47067\">ON<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">bookmark_tag<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">bookmark_id<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">bookmark<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #6CB6FF\">id<\/span><span style=\"color: #ADBAC7\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F47067\">WHERE<\/span><span style=\"color: #ADBAC7\"> tag_name <\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;programming&#39;<\/span><span style=\"color: #ADBAC7\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"536\" height=\"143\" src=\"http:\/\/batmask.dothome.co.kr\/wordpress\/wp-content\/uploads\/2021\/05\/result04.png\" alt=\"\" class=\"wp-image-930\" srcset=\"http:\/\/batmask.net\/wordpress\/wp-content\/uploads\/2021\/05\/result04.png 536w, http:\/\/batmask.net\/wordpress\/wp-content\/uploads\/2021\/05\/result04-300x80.png 300w\" sizes=\"auto, (max-width: 536px) 100vw, 536px\" \/><\/figure>\n<\/div>\n\n\n<p>\uc5ed\uc2dc \ub450\ubc88\uc758 INNER JOIN\uc744 \ud588\ub2e4. JOIN\uc758 \uc21c\uc11c\ub97c \ubc14\uafd4\ubd24\ub294\ub370, \uc5ec\uae30\uc5d0\uc120 \ubcc4 \uc758\ubbf8\uc5c6\uace0 \ub3d9\uc77c\ud55c \uacb0\uacfc\uac00 \ub098\uc628\ub2e4. WHERE \uc870\uac74\uc5d0 tag_name\uc73c\ub85c &#8216;programming&#8217;\uc744 \ud544\ud130\ub9c1\ud55c \uacb0\uacfc\ubb3c\uc774 \uc704\uc758 \uc774\ubbf8\uc9c0\uc774\ub2e4. \uc774\uc640\uac19\uc774 \ud2b9\uc815 \ud574\uc26c\ud0dc\uadf8\uc5d0 \ud574\ub2f9\ud558\ub294 \ubd81\ub9c8\ud06c\ub4e4\uc744 \uac00\uc838\uc62c \uc218 \uc788\ub2e4. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\uc815\ub9ac \ubc0f \uadf8 \ub2e4\uc74c\ub2e8\uacc4<\/h3>\n\n\n\n<p>\uc774\ub807\uac8c one to one, one to many, many to many relationship\uc744 sqlite\uc5d0\uc11c \uc0b4\ud3b4\ubd24\ub2e4. relationship\uc740 FOREIGN KEY\ub85c \uba85\uc2dc\ub97c \ud588\uace0 \uac12\uc744 \uac00\uc838\uc62c \ub550 INNER JOIN\uc73c\ub85c \ud14c\uc774\ube14\uc744 \ud569\uccd0 \uac00\uc838\uc654\ub2e4. \ubcf5\uc7a1\ud574 \ubcf4\uc774\ub294 many to many \uad00\uacc4\ub294 Junction table\uc744 \ucd94\uac00\ub85c \uc0dd\uc131\ud574\uc11c 3\uac1c\uc758 \ud14c\uc774\ube14\uace0 \uad6c\uc131\ud558\uace0 \ub450\ubc88\uc758 INNER JOIN\uc744 \ud1b5\ud574 \uac12\uc744 \uac00\uc838\uc654\ub2e4. <\/p>\n\n\n\n<p>Room\uc744 \uc0ac\uc6a9\ud558\uae30\uc804\uc5d0, \uc880 \ub354 raw\ud55c SQL\ub808\ubca8\uc5d0\uc11c\uc758 \uc774\ud574\uac00 \ub3c4\uc6c0\uc774 \ub420\uac70\ub77c\uace0 \uc0dd\uac01\ud574\uc11c \uba3c\uc800 \uc815\ub9ac\ud588\ub2e4. \uc6d0\ub798 \ubaa9\uc801\uc740 \uc548\ub4dc\ub85c\uc774\ub4dc\uc5d0\uc11c Room\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc774\ubbc0\ub85c, \ub2e4\uc74c \ud3ec\uc2a4\ud305\uc5d0\uc120 \uc704\uc640 \ub3d9\uc77c\ud55c \ub0b4\uc6a9\uc744 Room\uc73c\ub85c \uc5b4\ub5bb\uac8c \ub2e4\ub8f0\uc9c0 \uc54c\uc544\ubcf4\ub824\ud55c\ub2e4. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Room\uc5d0\ub300\ud574 \uc815\ub9ac\ud558\ub2e4\uac00, DB\uc758 \uc2e4\uc0ac\uc6a9\uc2dc \ub9cc\ub098\uac8c \ub418\ub294 one to one, one to many, many to many relationship\uc744 \uc5b4\ub5bb\uac8c \ub2e4\ub8e8\ub294\uc9c0 \ubcc4\ub3c4\ub85c \uc815\ub9ac\ud558\ub824\uace0 \uc774 \uae00\uc744 \uc4f4\ub2e4. SQL\ubb38\uacfc Room\uc744 \ube44\uad50\ud574\ubcf4\uba74 \uc774\ud574\uac00 \uc27d\uace0 \ube60\ub97c\uac70 \uac19\uc544\uc11c \uadf8\ub807\uac8c \uc815\ub9ac\ud558\ub824\ub2e4\uac00 android developer \ube14\ub85c\uadf8\uc5d0 \uc774\ubbf8 \uc815\ub9ac\ub41c\uac78 \ubc1c\uacac\ud588\ub2e4. \uc544\ub9c8\ub3c4 \uc5ec\uae30\uc11c \ud06c\uac8c \ubc97\uc5b4\ub098\uc9c0 \uc54a\uc744 \uac83\uc778\ub370, \ub0b4\uc6a9\uc0c1 SQLite\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \uac83\ub9cc \uba3c\uc800 \uc815\ub9ac\ud574 <a href=\"http:\/\/batmask.net\/index.php\/2021\/05\/09\/898\/\" class=\"btn btn-link continue-link\">\ub354 \uc77d\uae30<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,34],"tags":[186,214,38,215,213,63,103],"class_list":["post-898","post","type-post","status-publish","format-standard","hentry","category-android","category-kotlin","tag-android-2","tag-db","tag-kotlin","tag-relationship","tag-room","tag-sql","tag-sqlite"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/posts\/898","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/comments?post=898"}],"version-history":[{"count":32,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/posts\/898\/revisions"}],"predecessor-version":[{"id":3518,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/posts\/898\/revisions\/3518"}],"wp:attachment":[{"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/media?parent=898"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/categories?post=898"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/tags?post=898"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}