SQL

    [MySQL] MySQL 조건문, null 함수, 타입 변환, 시스템 함수

    Conditional Statement 조건문 CASE -- vlaue를 비교하여 해당하는 result 실행 CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result] ... [ELSE result] END -- condition의 boolean값으로 result 실행 CASE WHEN [condition] THEN result [WHEN [condition] THEN result] ... [ELSE result] END CASE 연산자는 비슷한 값을 서로 비교하거나, 조건에 따라 다른 값을 반환한다. (switch문과 비슷) 첫 번째 CASE 예시에서는 CASE 키워드 다음으로 오는 value와 compare_value ..

    [MySQL] MySQL 날짜 관련 함수 총정리

    Date Functions 날짜 관련 함수 날짜와 시간의 형식화 DATE_FORMAT(date, format) - 주어진 date를 format에 맞춰 문자열로 반환 SELECT DATE_FORMAT(hiredate, '%Y-%m-%d') FROM emp; -- YYYY-mm-dd SELECT DATE_FORMAT(hiredate, '%Y-%m-%d %T') FROM emp; SELECT DATE_FORMAT(hiredate, '%Y-%m-%d %H:%i:%s') FROM emp; -- YYYY-mm-dd 00:00:00 더보기 형태 설명 예시 %a 요일을 세 개의 문자로 표현함. Sun부터 Sat %b 월의 축약형을 세 개의 문자로 표현함. Jan부터 Dec %c 월을 숫자로 표현함. 0부터 12 %D..

    [MySQL] MySQL 숫자, 집계 함수 총정리

    Numeric Functions 숫자 관련 함수 CEIL(number) - number보다 크거나 같은 수 중에서 가장 작은 정수 반환 FLOOR(number) - number보다 작거나 같은 수 중에서 가장 큰 정수 반환 ROUND(number, decimals) - number를 지정된 소수 자릿수로 반올림 TRUNCATE(number, decimals) - number를 지정된 소수 자릿수로 자름(TRUNCATE 명령어도 있기 때문에 주의할 것) ABS(number) - number의 절댓값을 반환 RAND() - 0.0보다 크거나 같고 1.0보다 작은 하나의 실수를 무작위로 생성하여 반환 -- 수학 함수 사용 예제 -- 월평균 근무일수 21.5일, 하루 근무시간 8시간 -- 사원들 하루급여 : D..

    [TIL] MySQL 쿼리 문제 풀이

    ✍ Today I Learned 지금까지 배운 SQL내용을 토대로 쿼리 문제를 풀어보았다. ALIAS 별칭을 부여하면서 띄어쓰기를 하려면 따옴표 필수! 필드에 중복되는 값을 한 번만 선택하고 싶다면 DISTINCT 키워드를 사용한다. (집계 함수 안에서도 사용 가능) 인수분해 공식 na + nb = n(a+b) DATE_FORMAT(date, '%W') - 요일을 문자열로 반환(Sunday부터 Saturday) DAYOFWEEK()는 일요일부터 시작(일요일=1, 토요일=7) / WEEKDAY()는 월요일부터 시작(월요일=0, 일요일=6) 숫자에 세 자리 구분 기호를 출력하려면 FORMAT 함수 이용 FORMAT(number, decimal_places) - number를 '#,###,###.##' 형식으..

    [TIL] MySQL 내장함수, GROUP BY, HAVING

    ✍ Today I Learned 날짜 함수 관련해서는 정답이 없다. 어떤 포맷팅으로 기록하고, 무엇을 기록할 것이냐에 따라 달라진다. 모든 걸 DB에서 처리할 수 없고, 오히려 속도는 프로그래밍에서 하는 게 빠르지만 문제는 트래픽 양이다. 트래픽 양 = 호스팅 비용 = 돈 이기 때문에.. MySQL의 IFNULL() 함수는 Oracle의 NVL() 함수와 동일하게 작동한다. (nvl = null value) ADDDATE() vs DATE_ADD() 차이점은? ADDDATE()는 두 번째 인수로 INTERVAL value addunit 대신 추가할 일수만 지정하는 days를 사용할 수 있다! 즉 ADDDATE(date, 3) 이런 식으로 사용 가능하다. 참고자료 CASE문 뒤쪽으로 비교할 value를 넣..

    [MySQL] MySQL 문자열 함수 총정리

    String Functions 문자열 함수 👉 데이터베이스의 인덱스는 1부터 시작! LENGTH() - 전달받은 문자열의 길이 반환 UPPER() - 전달받은 문자열을 모두 대문자로 변경 LOWER() - 전달받은 문자열을 모두 소문자로 변경 SUBSTR(col, start, length) - start 위치에서 length만큼 문자열 추출 SUBSTING(col, start, length) - SUBSTR()과 같음 INSTR(data, search_value) - data에서 search value가 처음 나타나는 위치 반환(대소문자 구분 X) -- LIKE SELECT * FROM emp WHERE ename like '%S%'; -- INSTR(data, search value) SELECT * ..

    [MySQL] MySQL의 연산자(operator)

    산술 연산자 MySQL은 대부분의 프로그래밍 언어에서 지원하는 기본적인 연산자를 모두 제공한다. 당연히 사칙연산 모두 가능하다. 산술 연산자 설명 + 왼쪽 피연산자에 오른쪽 피연산자를 더함. - 왼쪽 피연산자에서 오른쪽 피연산자를 뺌. * 왼쪽 피연산자에 오른쪽의 피연산자를 곱함. / 왼쪽 피연산자를 오른쪽 피연산자로 나눔. DIV 왼쪽 피연산자를 오른쪽 피연산자로 나눈 후, 소수 부분을 버림. %또는 MOD 왼쪽 피연산자를 오른쪽 피연산자로 나눈 후, 그 나머지를 반환함. 비교 연산자 비교 연산자 설명 = 왼쪽 피연산자와 오른쪽 피연산자가 같으면 참을 반환함. !=, 왼쪽 피연산자와 오른쪽 피연산자가 같지 않으면 참을 반환함. = 왼쪽 피연산자가 오른쪽 피연산자보다 크거나 같으면 참을 반환함. 양쪽의 ..

    [MySQL] SELECT QUERY

    SELECT SELECT 명령문을 이용하여 데이터베이스에서 데이터를 선택할 수 있다. SELECT 컬럼선택 -- 3 FROM 테이블명 -- 1 WHERE 조건여부; -- 2 -- 내부적으로 데이터베이스가 쿼리를 수행하는 순서 별표(*) 기호를 사용하면, 해당 테이블의 모든 필드를 선택할 수 있다. SELECT 키워드 다음에 필드 이름을 명시하면, 해당 테이블의 특정 필드만 불러올 수 있다. SELECT 키워드 다음에 DISTINCT 키워드를 사용하면 중복된 값이 한 번만 선택되도록 설정할 수 있다. WHERE WHERE 조건절을 사용하면, 검색할 레코드의 조건을 설정할 수 있다. SELECT empno, ename, sal FROM emp WHERE sal > 1500; -- emp 테이블에서 sal 값..