목록SQL (11)
생각을 IT다

해당 문제 풀이는 개인적으로 공부한 것을 올리는 글입니다. 배워가는 과정이다 보니 효율적이지 못하거나 잘못된 부분이 있을 수도 있습니다. [문제 풀이 DB] 이전 SQL 1~5번 문제 풀이 : https://thinking-it.tistory.com/6 [1번 문제] 고객명 고객전화번호 담당직원명 담당직원직급을 출력하세요 담당직원이 있는 고객만 출력하세요.SELECT a.cus_name , a.tel_num , b.emp_name , b.jikup , (SELECT emp_name FROM employee c WHERE b.mgr_emp_no = c.emp_no) mgr_name FROM customer a , employee b WHERE a.emp_no = b..

SQL(Structured Query Language)은 데이터베이스에서 데이터를 생성(CREATE), 조회(SELECT), 수정(UPDATE), 삭제(DELETE)하고, 데이터베이스의 스키마나 접근 권한 등을 관리하는데 사용되는 언어입니다. SQL은 데이터 정의 언어(DDL), 데이터 조작 언어(DML), 데이터 제어 언어(DCL)로 구분됩니다. 데이터 정의 언어(DDL) DDL은 데이터베이스의 구조, 즉 테이블, 인덱스, 제약 조건 등을 생성, 수정, 삭제하는 명령어로 구성됩니다. CREATE: 데이터베이스, 테이블, 인덱스 등을 생성합니다. ALTER: 테이블, 인덱스 등의 구조를 수정합니다. DROP: 데이터베이스, 테이블, 인덱스 등을 삭제합니다. TRUNCATE: 테이블의 모든 데이터를 삭제합..

SQL은 Structured Query Language의 약자로, 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 조작하고 검색하기 위한 표준화된 언어입니다. SQL의 종류는 다음과 같습니다. MySQL: 대표적인 오픈소스 RDBMS이며, 가볍고 빠른 속도를 가지고 있습니다. Oracle: 세계에서 가장 많이 사용되는 RDBMS 중 하나입니다. MS SQL Server: Microsoft에서 개발한 RDBMS입니다. PostgreSQL: MySQL과 함께 가장 많이 사용되는 오픈소스 RDBMS 중 하나입니다. SQLite: 가볍고 포터블한 RDBMS로, 모바일 애플리케이션에서 많이 사용됩니다. 위에서 언급한 RDBMS는 모두 SQL을 사용하여 데이터를 조작하고 검색할 수 있습니다. 하지만, 각각..

숫자 함수 ABS(n) : 절대값을 계산 CEIL(n) : 주어진 값보다 크지만 가장 근접하는 최소값 EXP(n) : 주어진 값의 e의 승수 (※e : 2.171828183...) FLOOR(n) : 주어진 값보다 작거나 같은 최대 정수값 LN(n) : 주어진 값의 자연로그 값 MOD(m, n) : m을 n으로 나눈 나머지 값 (n이 0일 경우 m을 반환) POWER(m, n) : m의 n승 값 ROUND(n, [m]) : n 값의 반올림, m은 소수점 아래 자릿수 SIGN(n) : n 0 이면 1 SQRT(n) : n 값의 루트값 계산 (n은 양수여야 함) TRUNC(n, m) : n 값을 m 소수점 자리로 반내림한 값 문자열 함수 CONCAT(c..

문제 풀이 DB : https://thinking-it.tistory.com/12 [21번 문제] 지점별 가장 많은 매출을 올린 직원 구하기 SELECT store_code 사원명 , emp_name 지점명 , total 총매출 FROM ( SELECT d.* , RANK()OVER(PARTITION BY d.store_code ORDER BY d.store_code , d.total DESC) ranking FROM ( SELECT a.store_code , a.emp_name , SUM(c.amount) total FROM burger_emp a , burger_ord b , burger_ord_item c WHERE a.store_code = b.store_code AND a.emp_code = b..

숫자 관련 함수 1. ABS(숫자) : 절대값 출력. 2. CEILING(숫자) : 값보다 큰 정수 중 가장 작은 수. 3. FLOOR(숫자) : 값보다 작은 정수 중 가장 큰 수[실수는 무조건 버림(음수의 경우 제외)]. 4. ROUND(숫자,자릿수) : 숫자를 소수점 이하 자릿수에서 반올림.(자릿수는 양수, 0, 음수를 갖을 수 있다.) 5. TRUNCATE(숫자,자릿수) : 숫자를 소수점 이하 자릿수에서 버림. 6. POW(X,Y) or POWER(X,Y) : X의 Y승 7. MOD (분자, 분모) : 분자를 분모로 나눈 나머지를 구한다. (연산자 %와 같음) 8. GREATEST(숫자1,숫자2,숫자3...) : 주어진 수 중 제일 큰 수 리턴. 9. LEAST(숫자1,숫자2,숫자3...) : 주어..

문자 함수 1. UPER : 대문자로 변환 2. LOWER : 소문자로 변환 3. INITCAP : 첫글자 대문자 나머지 소문자 변환하는 함수 / 인수값('') 하나만 사용 4. CONCAT : 연결연산자(||)와 동일한 함수 / 인수값('') 두개만 사용 5. LENGTH : 문자의 길이를 숫자값으로 표현 6. LENGTHB : 문자의 바이트(byte)값으로 표현 7. INSTR : 문자의 위치 리턴 / 글자 서칭시 유용 8. SUBSTR : 문자를 갯수만큼 추출 9. SUBSTRB : 문자를 바이트 값만큼 추출 / 글자의 맨뒷자리 출력 시 -1 사용 10. TRIM : 연속되는 글자의 접두, 접미 문자를 자름 / 연속되는 공백 제거 11. LTRIM : 접두를 자름 12. RTRIM : 접미를 자름 ..

문제 풀이 DB : https://thinking-it.tistory.com/12 [16번 문제] 월별 매출액을 구하라 SELECT DECODE(idx, 'list', item_name, '총합계') 상품명 , SUM(mm_01) "1월" , SUM(mm_02) "2월" , SUM(mm_03) "3월" , SUM(mm_04) "4월" , SUM(mm_05) "5월" , SUM(mm_06) "6월" , SUM(mm_07) "7월" , SUM(mm_08) "8월" , SUM(mm_09) "9월" , SUM(mm_10) "10월" , SUM(mm_11) "11월" , SUM(mm_12) "12월" , SUM(amount) "합계" FROM ( SELECT d.item_name , SUM(CASE WHEN d...

해당 문제 풀이는 개인적으로 공부한 것을 올리는 글입니다. 배워가는 과정이다 보니 효율적이지 못하거나 잘못된 부분이 있을 수도 있습니다. [문제 풀이 DB] [11번 문제] 매장별 사원수 SELECT b.store_code , b.store_addr , COUNT(emp_code) emp_count FROM burger_emp a FULL JOIN burger_store b ON a.store_code = b.store_code GROUP BY b.store_code , b.store_addr ORDER BY emp_count DESC; ※결과값※ [12번 문제] 매장별 매출 SELECT a.store_addr , b.store_code , sum(b.amount) tot_amount FROM burge..

문제 풀이 DB : https://thinking-it.tistory.com/6 [6번 문제] 직급별 최고 연봉자와 평균연봉을 구하라 SELECT b.emp_name , a.jikup , 최고연봉 , 직급평균연봉 FROM ( SELECT jikup , MAX(salary) 최고연봉 , ROUND(AVG(salary)) 직급평균연봉 FROM employee a GROUP BY jikup ) a INNER JOIN employee b ON a.jikup = b.jikup AND a.최고연봉 = b.salary ORDER BY 최고연봉; ※결과값※ [7번 문제] 부서별 총 연봉합계를 구하라 SELECT SUM(case when dep_no='30' then salary else 0 end) as 영업부 , S..