SQL

·SQL/MySQL
* UNION 중복 데이터가 있을때 중복 값을없애서 위아래로 데이터를 합쳐서 보여준다. * UNION ALL 중복 데이터가 있을 떄 중복 값을 포함하여 위아래로 데이터를 합쳐서 보여준다. 예시 User_recent 로그인 아이디 연락처 주소 A 010-1234-4567 광진구 자양동 B 010-1111-2222 송파구 석촌동 User_past 로그인 아이디 연락처 주소 C 010-4444-4567 분당구 판교동 B 010-1111-2222 송파구 석촌동 UNION을 적용한 후 table 로그인 아이디 연락처 주소 A 010-1234-4567 광진구 자양동 B 010-1111-2222 송파구 석촌동 C 010-4444-4567 분당구 판교동 예시 코드 -- Product 테이블에서 Price가 5이하 또는..
·SQL/MySQL
예제문제 1 (LEFT JOIN 리트코드 문제) Table: Customers +-------------+---------+ | Column Name | Type | +-------------+---------+ | id | int | | name | varchar | +-------------+---------+ id is the primary key column for this table. Each row of this table indicates the ID and name of a customer.Table: Orders +-------------+------+ | Column Name | Type | +-------------+------+ | id | int | | customerId | in..
·SQL/MySQL
- DATE_ADD (기준날짜, INTERVAL) - SELECT DATE_ADD(NOW(), INTERVAL 1 SECOND) - SELECT DATE_ADD(NOW(), INTERVAL 1 MINUTE) - SELECT DATE_ADD(NOW(), INTERVAL 1 HOUR) - SELECT DATE_ADD(NOW(), INTERVAL 1 DAY) - SELECT DATE_ADD(NOW(), INTERVAL 1 MONTH) - SELECT DATE_ADD(NOW(), INTERVAL 1 YEAR) - SELECT DATE_ADD(NOW(), INTERVAL -1 YEAR) -> 1을 빼는것을 의미함 - DATE_SUM (기준날짜, INTERVAL) - SELECT DATE_SUB(NOW(), INT..
·SQL/MySQL
INNER JOIN 2개 이상의 테이블이 있다고 가정하고 여태까지 배운 내용으로 테이블을 합쳐보겠다. 한 테이블에는 userid와 주소가 있다고 가정하고 다른 테이블에는 userid와 같은 값을 가진 id와 그 user들이 산 구매상품의 정보들이 있다고 가정하겠다. Old버전: SELECT * FROM Users,Orders WHERE Users.id = Orders.userid 이런식으로 접근 할 수 있다. FROM절을 통해 2개의 테이블을 불러온 후 WHERE절을 이용하여 해당 column의 값들이 같은 값들만 갖고온다. New 버전: SELECT * FROM Users INNER JOIN Orders ON Users.id = Orders.userid 이런식으로 INNER JOIN을 사용하여 값이 같..
·SQL/MySQL
CASE문을 활용한 table 피봇팅 SELECT AVG(CASE WHEN categoryid = 1 THEN price ELSE NULL END) AS category1_price, AVG(CASE WHEN categoryid = 2 THEN price ELSE NULL END) AS category2_price, AVG(CASE WHEN categoryid = 3 THEN price ELSE NULL END) AS category3_price FROM Products category1_price category2_price category3_price 37.979166666666664 23.0625 25.16 이런식으로 예제문을 응용하여 코드를 진행 시키면 세로축으로 나오는 DB출력문들이 옆으로 데이..
·SQL/MySQL
CASE WHEN 조건 THEN 값 END CASE로 조건문을 걸며 WHEN 와 THEN을 사용하여 결과값을 도출해 낼수 있다. WHEN 구문을 늘려나가며 조건을 더 늘려나갈 수 있다. THEN을 사용하여 해당 조건에 충족될때의 값을 설정할 수 있다. CASE의 조건문은 END 로 끝나야한다. 예제를 통해 살펴보겠다. SELECT CASE WHEN categoryid = 1 THEN "음료" WHEN categoryid = 2 THEN "조미료" ELSE "기타" END FROM products보통 이런식으로 조건문을 걸어 사용하는데 column값이 너무 길어지므로 END 마지막에 AS를 사용하여 별칭을 정해 column길이를 줄일 수 있다. SELECT CASE WHEN categoryid = 1 TH..
·SQL/MySQL
문제 문제 접근 방법 salary * month = earnings 각 earning 별로 몇명이 그만큼 벌었는지 계산 (GROUP BY) earning 중에 가장 큰 값을 가져온다 ORDER BY, LIMIT 코드 SELECT salary * months AS earnings , COUNT(*) FROM employee GROUP BY earnings ORDER BY earnings DESC LIMIT 1 문제 풀이 salary와 months를 곱해 earning을 구하고 as로 별칭을 지어준다. employee table을 가져와야하므로 from employee를 한다. earning으로 group by를 한후 내림차순을 진행한다. limit를 통해 상위 1열의 값을 가져온다.
·SQL/MySQL
SELECT COUNT(*) 데이터의 갯수를 반환합니다 SELECT COUNT(NAME) > name행의 열 갯수를 반환합니다. 특정 column에 NULL 값이 있으면 NULL값은 제외하고 계산합니다. SELECT COUNT(DISTINCT NAME) > name행의 중복값을 제거한후 해당 row의 column의 갯수를 계산합니다. SELECT SUM 숫자데이터를 가진 row 의 총합읋 계산하여 반환합니다. SELECT AVG 평균 average를 계산하여 반환합니다. 평균 값을 계산할 때 NULL값은 제외한후 총합 갯수를 나눌때도 총합 갯수에서 제외한 후 계산합니다. SELECT SUM(NAME) / COUNT(*) > (NULL 값을 포함하여 평균을 계산할때) SELECT AVG(NAME) > (N..
·SQL/MySQL
ORDER BY SQL을 SELECT와 FROM을 사용하여 데이터셋을 불러왔을때 낮은순서대로 오름차순으로 정렬이 된다. 이때 해당 데이터셋을 내림차순을 하려면 ORDER BY @@ DESC 를 사용하면 된다. (기존 default값은 ASC로 오름차순이다) 또한 ORDER BY는 SELECT FROM WHERE 뒤에 온다. 이때 ORDER BY를 사용한다해도 기존 데이터는 바뀌지않고 출력만 바뀐상태로 보여준다. SELECT * FROM Customers ORDER BY customerid DESC ORDER BY 응용 데이터셋중에서 제일 큰 값을 가져오고싶을때랑 가장 작은 값을 가져오고싶을때가 존재한다. 예시를 통해 알아보겠다. 가장 큰 값 SELCET * FROM Customers ORDER BY pr..
Shine_sunho
'SQL' 카테고리의 글 목록 (3 Page)