SQL/MySQL

·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..
·SQL/MySQL
조건식 사용하기 (WHERE 문법 사용) 조건식을 사용하려면 WHERE문법을 사용하면 된다. (비교연산자, 특정 컬럼이 특정 값을 가지는 데이터만 불러오기 위해서 사용 WHERE Country = 'Germany'(Country의 Column에서 Germany의 값만 가진 값을 가져옴) >>> 같다. WHERE Country 'Germany' (Country의 Column에서 Germany의 값을 가지지 않은 값들을 가져옴) >>> 다르다. WHERE CustomerID = 50 (50보다 크거나 같다) WHERE CustomerID > 50 (50보다 크다) WHERE CustomerID < 50 (50보다 작다) 조건을 2개이상 결합할때 (and) WHERE CustomerName < "B" ? Co..
·SQL/MySQL
데이터 구조 기본적으로 데이터구조는 행과 열로 나누어진다. 열(column)은 해당 데이터의 특성을 주로 가지고 행(row)는 해당 데이터의 한줄을 주로 의미한다. 보고싶은 데이터 가져오기 이러한 데이터중에서 보고싶은 데이터를 꺼내올때 SELECT , FROM, LIMIT 을 사용한다. SQL언어들 중에서 MySQL을 기준으로 작성했다. 모든 컬럼을 다 보여주고 싶을때는 SELECT *(아스타)를 사용한다. 이때 자기가 보고자하는 컬럼만 볼경우 ex) SELECT ab , cd 를 사용하면 된다. 테이블 이름을 가져올때는 FROM (table name)을 사용하면 된다. 대략적으로 예시 데이터들은 내용이 적기 때문에 SELECT 와 FROM 을 그냥 사용해도 되지만 실제 데이터는 많은 양의 데이터를 포함..
Shine_sunho
'SQL/MySQL' 카테고리의 글 목록 (3 Page)