🐬 SQL/✏️ 이론 11

✏️ 11. UNION

모바일은 화면을 돌려 가로화면으로 보시는 게 읽으시기 편할 수 있습니다. 돌려서 보시는 걸 추천드릴게요!! 🐬 UNION JOIN 은 테이블을 옆으로 이어붙이는 구문이라면, UNION은 위아래로 붙이는 구문입니다. UNION 구문은 중복을 허용하지 않으며, UNION ALL 구문은 중복을 허용해 모든 값을 그대로 남겨둡니다. Products 테이블에서 가격이 5 이하 또는 200 이상인 제품을 가져오는 쿼리입니다. 일반적으로는 WHERE 절을 사용해서 아래와 같이 실행할 것입니다. SELECT * FROM Products WHERE price = 200; 이 쿼리를 UNION 구문을 사용해서 구현할 수도 있습니다. SELECT * FROM Products WHERE price = 200; 🐬 UNION ..

✏️ 10. OUTER JOIN

모바일은 화면을 돌려 가로화면으로 보시는 게 읽으시기 편할 수 있습니다. 돌려서 보시는 걸 추천드릴게요!! 🐬 OUTER JOIN INNER JOIN은 두 테이블의 공통적으로 존재하는 열의 값을 기준으로 합치는 구문이라면, OUTER JOIN은 한쪽 테이블에 열의 값이 없더라도 합쳐줍니다. OUTER JOIN 에는 LEFT JOIN 과 RIGHT JOIN 의 두 종류가 있습니다. 예를 들어 Table1에는 id가 1,2,3 이 있고 Table2에는 id가 1,2 밖에 없을 때, INNER JOIN을 한다면 최종 출력 값은 id 1,2 에 대한 테이블이 됩니다. 반면, Table1에 대한 LEFT JOIN을 한다면 id 1,2,3 에 대한 테이블을 출력해줍니다. 대신 Table2의 열에 대한 데이터는 모두..

✏️ 09. INNER JOIN

모바일은 화면을 돌려 가로화면으로 보시는 게 읽으시기 편할 수 있습니다. 돌려서 보시는 걸 추천드릴게요!! 🐬 INNER JOIN 테이블 하나만 가지고 원하는 분석을 할 수는 없습니다. 그렇다고 원하는 정보가 있는 테이블에서 일일히 검색해볼 수도 없는 노릇이기도 합니다. 따라서, 서로 관련이 있는 테이블을 이어붙여서 흩어져 있는 정보들을 한번에 다루기 위해 JOIN 구문이 등장했습니다. INNER JOIN은 양쪽 테이블 모두에 공통인 열이 존재하는 경우에 사용하는 구문입니다. 보통 SELECT FROM 테이블1 INNER JOIN 테이블2 ON 테이블1.공통열 = 테이블2.공통열 의 형태로 쿼리를 구성합니다. 아래 쿼리는 Orders 테이블에 있는 정보를 확인하기 위한 SELECT 구문이고, 그 아래 쿼..

✏️ 08. CASE

모바일은 화면을 돌려 가로화면으로 보시는 게 읽으시기 편할 수 있습니다. 돌려서 보시는 걸 추천드릴게요!! 🐬CASE 데이터에서 원하는 내용을 가져올 때, CASE 구문을 사용해서 조건을 만들어줄 수 있습니다. 코드를 보는 게 이해가 좀 더 빠를 것 같아, 바로 확인해보겠습니다. Products 테이블의 CategoryID 열에 대해 조건문을 만든 후, CASE 문의 이름을 별칭을 만들어 가져오는 쿼리입니다. CASE 문은 SELECT 절 내에서 정의하며, CASE '열' -> WHEN '조건' THEN '가져올 이름' -> ELSE -> END 의 순서로 쿼리를 작성합니다. SELECT 문 내에서 정의하기 때문에, 별칭 설정과 가져오는 열 설정도 가능합니다. SELECT CASE WHEN Categor..

✏️ 07. GROUP BY, HAVING

모바일은 화면을 돌려 가로화면으로 보시는 게 읽으시기 편할 수 있습니다. 돌려서 보시는 걸 추천드릴게요!! 🐬 GROUP BY, HAVING 보통 데이터를 요약하거나, 어떤 통계량으로 나타낼 때 테이블 전체에 대한 집계를 하지는 않습니다. 오히려, 어떠한 열의 범주를 기준으로 이에 해당하는 행에 대해 요약하는 경우가 더욱 많습니다. 이때 사용하는 구문이 바로 GROUP BY 구문과 HAVING 구문입니다. 🐬GROUP BY Products 테이블의 SupplierID 열을 기준으로 그룹화한 후, 각 그룹의 Price에 대해 평균을 계산하는 쿼리입니다. GROUP BY 절을 통해 그룹화한 열이 반드시 SELECT 절 안에 포함되어 있어야 합니다!! SELECT SupplierID, AVG(Price) FR..

✏️ 06. 집계함수

모바일은 화면을 돌려 가로화면으로 보시는 게 읽으시기 편할 수 있습니다. 돌려서 보시는 걸 추천드릴게요!! 🐬 집계함수 데이터의 크기가 커지면, SELECT 문을 통해 모든 데이터를 가져오기보다는 집계함수를 통해 요약통계량을 가져오는 경우가 많습니다. SQL에서 요약통계량을 구하기 위해 사용하는 함수들을 집계함수라고 합니다. 🐬 COUNT Products 테이블에 있는 행의 수, 즉 데이터 레코드의 수를 세줍니다. SELECT COUNT(*) FROM Products; >> 77 또한, COUNT( ) 구문 안에 * 가 아닌 열의 이름을 넣어주면, 해당 열에 있는 레코드의 수를 세줍니다. 만약 해당 열에 NULL 값이 있다면 NULL이 있는 레코드의 수는 제외하고 개수를 반환합니다. 예를 들어, DATA..

✏️ 05. 데이터 순서 정렬하기

모바일은 화면을 돌려 가로화면으로 보시는 게 읽으시기 편할 수 있습니다. 돌려서 보시는 걸 추천드릴게요!! 🐬 데이터 정렬하기 ORDER BY : 데이터 정렬 (default : 오름차순 정렬) ORDER BY 기준열 DESC : 내림차순 정렬 ORDER BY 열_1, 열_2 : 첫번쨰 열로 인한 정렬 결과가 같은 데이터에 대해 두번째 열을 기준으로 재정렬 실제 데이터베이스의 순서 변경이 아니라, SELECT 문을 사용해서 가져올 때만 순서를 변경해서 보여주는 기능입니다. 원하는 목적에 따라, 내림차순 / 오름차순 / LIMIT 문을 혼합해서 쿼리를 짜는 것도 중요합니다. 쿼리 순서 : SELECT -> FROM -> WHERE -> ORDER BY 🐬 MySQL 문자열 자르기 LEFT(컬럼(문자열), ..

✏️ 04. WHERE절 : LIKE 심화내용

모바일은 화면을 돌려 가로화면으로 보시는 게 읽으시기 편할 수 있습니다. 돌려서 보시는 걸 추천드릴게요!! 🐬 LIKE 심화내용 LIKE : 문자열의 패턴을 찾을 때 사용합니다. 하지만 문자열의 패턴을 통해 데이터를 가져오는 것이 아니라 명확한 값을 통해 데이터를 가져오는 경우에는, LIKE 구문보다는 =을 사용하는 것이 속도면에서 효율적입니다. 문자열의 패턴 파악을 위해 사용하는 % 혹은 _ 를 와일드카드라고 합니다. 만약 문자열 내에서 % 혹은 _ 를 찾고 싶다면, 이스케이프(\)를 사용해 \% \_ 이렇게 패턴을 지정하면 됩니다. NOT LIKE : 해당 패턴이 들어가지 않은 문자열을 찾을 때 사용합니다. 🐬 % : B로 시작하는 문자열 찾기 Customer 테이블에의 Country 열에서 B로 시..

✏️ 03. WHERE 절 : LIKE, IN, BETWEEN, IS NULL

모바일은 화면을 돌려 가로화면으로 보시는 게 읽으시기 편할 수 있습니다. 돌려서 보시는 걸 추천드릴게요!! 🐬 LIKE, IN, BETWEEN, IS NULL LIKE : 문자열의 패턴을 찾을 때 사용. IN : 조건 결합하는 기능 수행. OR 절과 같은 역할을 수행하지만, 쿼리의 길이를 줄이는 데 유용함. BETWEEN ~ AND ~ : 범위에 해당하는 값을 가져올 때 사용. 비교연산자로 같은 역할 수행 가능. IS NULL : 데이터가 비어있는 부분을 검색하기 위한 예약어. 🐬 LIKE : 'r' 이 들어가는 문자열 찾기 Customers 테이블에서 Country 이름에 r 이 포함되는 데이터만 추출하는 코드입니다. SELECT * FROM Customers WHERE Country LIKE '%r%..

✏️ 02. WHERE 절 : 비교연산자와 논리연산자

모바일은 화면을 돌려 가로화면으로 보시는 게 읽으시기 편할 수 있습니다. 돌려서 보시는 걸 추천드릴게요!! 🐬 비교연산자와 논리연산자 실제 데이터를 볼 때 모든 데이터를 보는 경우보다는 특정 조건을 만족하는 데이터를 보는 경우가 많습니다. 이때 조건문을 만들기 위해 사용하는 절이 바로 where절입니다. WHERE : 비교연산자와 논리연산자를 사용한 조건식을 통해 원하는 데이터만 골라올 수 있도록 하는 절 비교연산자 : =, , , 특정 열이 특정 값을 가지는 데이터만 불러오기 위해 사용 논리연산자 : AND, OR, 조건 두개를 결합하는 경우 사용. 의 논리에 따라 잘 선택해서 사용하자!! 🐬 Country가 Germany인 데이터만 추출 Customer 테이블에서 Country 열이 Germany 인..