Backend
-
생활코딩( SQL join ) (5) - EXCLUSIVE JOINBackend/JOIN심화 2021. 6. 10. 19:37
1. DataSet 2. Exclusive Join 2-1) LEFT JOIN과 비교 LEFT JOIN, RIGHT IS NULL 과 동일한 결과 순수 A에 해당하는 것만 JOIN하게 됨 2-2) EXCLUSIVE JOIN LEFT JOIN + WHERE IS NULL : A, B 테이블 중 A에만 있는 데이터를 원할 때 RIGHT JOIN + WHERE IS NULL : A, B 테이블 중 B에만 있는 데이터를 원할 때 Syntax SELECT FROM LEFT JOIN ON [LEFT JOIN tbl_c .... and so on] 1) A-B 순서로 하고, INNER는 A/B 둘다 적용되므로, 순서는 상관없음 2) ON : Join을 할 index등의 condition을 넣어줌 3) Where에서는..
-
생활코딩( SQL join ) (4) - FULL OUTER JOINBackend/JOIN심화 2021. 6. 9. 20:28
1. DataSet 2. Full Outer Join 두 테이블의 데이터를 Join 하는 Column의 데이터 존재 여부에 상관 없이 돌려줌 합집합 처럼 동작 MySQL 에서는 FUll OUTER JOIN 구문이 없어서 다음을 활용 (SELECT * FROM \ LEFT JOIN ON ) \ UNION DISTINCT \ (SELECT * FROM \ RIGHT JOIN ON ); ※ 추가 syntax UNION : 합집합 처리 DISTINCT : 중복 data 없앰 > 보통 full outer join은 성능 문제로 인해 잘 사용하지 않음 2-1) Outer Join Syntax SELECT FROM FULL OUTER JOIN ON [WHERE ] [FULL OUTER JOIN tbl_c .... a..
-
생활코딩( SQL join ) (3) - INNER JOINBackend/JOIN심화 2021. 6. 9. 19:18
1. DataSet 2. Inner Join 2-1) Left, Right Join 결과와 비교 Left, Rigjt Join의 결과에는 data row에 NULL 값 있을 수도 있음 ※ INNER JOIN은 엄격하게 교집합을 결과로 return 받음 ex) Left join 결과 "Using 3 tables and a projection!" +-----+------------+------------------+-----------+---------+-----------+------------------+ | tid | title | description | author_id | name | job_title | description | +-----+------------+-----------------..
-
생활코딩( SQL join ) (2) - LEFT JOIN & RIGHT JOINBackend/JOIN심화 2021. 6. 6. 16:10
1. DataSet 2. LeftJoin 2-1) Right Join Right Join도 결과는 동일, 단지 오른쪽 table을 기준으로 하는 것이 다름 Syntax SELECT FROM LEFT JOIN ON [WHERE ] [LEFT JOIN tbl_c .... and so on] 1) A-B 순서로 하고, LEFT는 A를 기준으로 함 2) ON : Join을 할 index등의 condition을 넣어줌 3) Where에서는 전체 output이 만족해야하는 조건을 지정해줄 수 있음 4) Project으로 column 지정 가능 2-2) Input SQL use opentutorials; SELECT * FROM topic; SELECT * FROM author; SELECT * FROM profil..
-
생활코딩( SQL join ) (1) - JOINBackend/JOIN심화 2021. 6. 5. 23:38
1. JOIN이란? 1-1) 정의 관계형 데이터베이스에서 여러 테이블을 하나의 테이블처럼 취급하는 방법 관계형 데이터베이스가 곧 JOIN이라고도 할 만큼 매우 중요한 개념 class로 분리하는 것 처럼, table 분리시 관리 유지/보수가 용이하고, 하나의 조합으로 사용하기 위해 Join을 사용 1-2) 알아야 하는 것 1) Join 방식의 종류 2) Join이 동작하는 원리 2. 테이블 분리 2-1) 테이블 분리의 중요성 Join에서 각 테이블들이 조합으로 쓰이므로, table을 잘 분리하는 방법을 먼저 알고 있어야 함 ※ 실습 예제 https://github.com/didghwns0514/Learning-MySQL/blob/main/SQL_join/sql%20join%20%EC%97%B0%EC%8A%..
-
생활코딩( Database2 MySQL ) (11) - 인터넷과 데이터베이스Backend/MYSQL 2021. 6. 5. 15:35
1. 인터넷이란? 1-1) 인터넷의 최소 단위 동작하기 위해서는 최소 2개의 컴퓨터가 필요 한대의 컴퓨터가 갖는 정보의 한계를 인터넷 연결로 넘었다는 의미 갑(browser/web client) / 을(web server) === 관계 사용자 / 서비스제공자 가 통신하는 것 1-2) 서버 접속방법 MySQL clinet 종류 1) mysql monitor : 명령어 기반으로 제어, 다른 프로그램에서 명령어로 제어 가능, 명령어를 기억해야 함 2) mysql workbench : GUI, mouse 기반으로 제어, 사용이 편리한 대신 사용상의 제약 > web clinent가 (1) / (2)를 통해 database server와 접속하고 이는 다시 server와 접속 > server끼리 통신을 하여 WWW..
-
생활코딩( Database2 MySQL ) (10) - Relational Database(2)Backend/MYSQL 2021. 6. 2. 20:43
1. RENAME database 다음의 syntax 이용 RENAME TABLE TO > 이것을 이용해 기존 table을 save new topic / author 테이블을 다음과 같이 생성 2. TABLE JOIN 2-1) JOIN 이란? 1) 정의 : 일치하는 id값들을 가진 column을 이용하여 서로 다른 table을 이어주는 방법 ※ JOIN으로 조회하는 것 자체가 가상의 역할을 하는 새로운 table을 조합해낼 수 있다는 의미 RDB의 topic table이 게시판의 글들이라면, comment는 topic id를 보고있고, 댓글을 어떤 사용자가 적었는지 author table을 바라보고 있음 → author id=3의 profile 변경 시 topic과 comment table들을 수정하지 ..
-
생활코딩( Database2 MySQL ) (9) - Relational Database(1)Backend/MYSQL 2021. 6. 2. 14:09
1. Relational Database 1-1) 관계형 데이터베이스의 특징 기존의 single database로 다룰 수 없는 복잡성을 다룰 때 사용하게 됨 > 위의 경우에 egoing - developer 항목이 중복이 되는데 이 해당 부분을 다른 table의 데이터로 기입하고 해당 데이터를 현재 table에서 이어주는 것이 더 효율적 > 따라서 다음과 같이 author 컬럼을 따로 빼서 작성하는 것이 중복을 피할 수 있는 방식 1-2) RDB 장점 중복사용되는 데이터를 1회만 변경해도 변경사항이 반영 됨 중복되는 데이터를 방지 특정 필드를 따로 table로 관리하기 때문에 id값으로 유일자로 관리가 가능 eg) egoing / developer가 다른 사람이지만 2명이 있을 때 등... 1-3) R..
-
생활코딩( Database2 MySQL ) (8) - CRUD of DeleteBackend/MYSQL 2021. 6. 2. 14:05
1. Delete 다음의 syntax를 사용 DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM table_name [PARTITION (partition_name [, partition_name] ... )] [WHERE where_condition] [ORDER BY ... ] [LIMIT row_count] 1-1) SQL script -- use opentutorials schema. USE opentutorials; -- see topics table. SELECT * FROM topic; -- delete unwanted row data DELETE FROM topic WHERE title='Egoin'; -- show topics for delete check SE..
-
생활코딩( Database2 MySQL ) (7) - CRUD of UpdateBackend/MYSQL 2021. 6. 2. 13:54
1. Update 다음 기본 syntax 사용 UPDATE [LOW_PRIORITY] [IGNORE] table_name SET assignment list [WHERE where_condition] [ORDER BY ...] [LIMIT row_count] assignment : col_name = value assignment_list : assignment [, assignment ] ... 1-1) SQL script -- select opentutorials schema. USE opentutorials; -- describe topic. DESC topic; -- select from topic SELECT * FROM topic; -- update topic I want UPDATE topi..