ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL
    Algorithm 2020. 9. 16. 14:04
    반응형

    DESC

    테이블 구조 검색 기능

    DESC city

    BETWEEN

    데이터가 숫자로 구성되어 있고 연속적인 값을 얻을때 사용

    SELECT * FROM city WHERE Population BETWEEN 70000 AND 80000

    IN

    이산적인 값의 조건에서 사용

    SELECT * FROM city WHERE Name IN('Seoul','New York','Tokyo')
    // Name이 'Seoul','New York','Tokyo'인것만 검색

    LIKE

    문자열의 내용 검색하기 위해 사용

    문자 뒤에 %를 사용하면 뒤에 무엇이든 허용

    한 글자와 매치 하기 위해서는 '_' 사용

    SELECT * FROM city WHERE CountryCode LIKE 'KO_'
    SELECT * FROM city WHERE Name LIKE 'Tel %'

    Sub Query

    쿼리문 안에 또 쿼리문이 들어 있는것

    서브 쿼리의 결과가 둘 이상이 되면 에러 발생

    SELECT * FROM city WHERE CountryCode = (SELECT CountryCode 
    						FROM city WHERE Name = 'Seoul')

    서브 쿼리의 여러 개의 결과 중 한 가지만 만족해도 가능 하게 할 때는 ANY를 사용

    SELECT * FROM city WHERE Population > ANY (SELECT Population FROM city
    							WHERE District = 'New York')
    // 뉴욕인 것들 중에 어떤 데이터의 인구수 보다 많으면 검색

    서브 쿼리의 여러 개의 결과를 모두 만족시키켜야 하는건 ALL 사용

    SELECT * FROM city WHERE Population > ALL (SELECT Population FROM city
    							WHERE District = 'New York')
    // 뉴욕인 것들 중에 제일 인구수가 많은 데이터 보다 인구수가 많아야 검색

    ORDER BY

    결과가 출력되는 순서를 정렬한다.

    기본적으로 오름차순 정렬 ( ASC ) 생략 가능

    내림차순 정렬 (DESC)

    혼합해서 사용가능

    SELECT * FROM city ORDER BY Population ASD / DESC

    DISTINCT

    중복된 것을 1개씩만 보여준다.

    SELECT DISTINCT CountryCode FROM city

    LIMIT

    출력 개수를 제한

    상위의 N개만 출력하는 'LIMIT N' 구문

    SELECT * FROM city ORDER BY Population DESC LIMIT 10
    // 상위 10개만 검색

    GROUP BY

    그룹으로 묶어주는 역할

    • 집계 함수와 함께 사용

      → AVG() : 평균

      → MIN() : 최소값

      → MAX() : 최대값

      → COUNT() : 행의 개수

      → COUNT(DISTINCT) : 중복 제외된 행의 개수

      → STDEV() : 표준 편차

      → VARIANCE() : 분산

    읽기 좋게 별칭 사용

    SELECT CountryCode, MAX(Population) FROM city GROUP BY CountryCode

    HAVING

    WHERE 과 비슷한 개념

    집계 함수에 대한 조건 제한

    반드시 GROUP BY 다음에 나와야한다.

    SELECT CountryCode, MAX(Population) FROM city GROUP BY CountryCode
    HAVING MAX(Population) > 8000000

    LOLLUP

    총합 또는 중간합계가 필요한 경우 사용

    GROUP BY절과 함께 WITH ROLLUP 사용

    SELECT CountryCode, Name , SUM(Population)
    FROM city
    GROUP BY CountryCode, Name WITH ROLLUP

    JOIN

    DB내의 여러 테이블에서 가져온 레코드를 조합하여 하나의 테이블이나 결과 집합으로 표현

    SELECT * FROM city JOIN country ON city.CountryCode = country.Code

    내부 함수

    • LENGTH()

      문자열의 길이를 반환

    • CONCAT()

      전달받은 문자열을 모두 결합하여 하나의 문자열로 반환

      하나라도 NULL이 존재하면 NULL 반환

    • LOCATE()

      문자열에서 찾는 문자열이 처음으로 나타내는 위치를 반환

      존재하지 않으면 0을 반환

      시작 인덱스는 1부터 시작한다.

    • LEFT()

      문자열의 왼쪽부터 지정한 개수만큼 문자를 반환

    • RIGHT()

      문자열의 오른쪽부터 지정한 개수만큼의 문자를 반환

    • LOWER()

      문자열의 문자를 모두 소문자로 변경

    • UPPER()

      문자열의 문자를 모두 대문자로 변경

    • REPLACE()

      문자열에서 특정 문자열을 대체 문자열로 교체

    • TRIM()

      문자열의 앞이나 뒤, 또는 양쪽 모두에 있는 특정 문자를 제거

      BOTH → 전달받은 문자열의 양 끝에 존재하는 문자 제거

      LEADING → 앞에 존재하는 문자 제거

      TRAILING → 뒤에 존재하는 문자 제거

      제거할 문자를 명시하지 않으면 공백 제거

    • FORMAT()

      숫자 타입의 데이터를 세 자리마다 쉼표를 사용하는 '#,###,###' 형태로 변환

      반환되는 데이터 형식은 문자열 타입

      두 번째 인수는 반올림할 소수 부분의 자릿수

    • 올림 / 내림 / 반올림

      FLOOR() → 내림

      CEIL() → 올림

      ROUND() → 반올림

    • SORT()

      양의 제곱근

    • POW()

      첫 번째 인수로는 밑수, 두 번째 인수로는 지수를 전달 받아 거듭 제곱 계산

    • EXP()

      인수로 지수를 받아 e의 거듭 제곱을 계산

    • LOG()

      자연 로그 값을 계산

    • ABS(X)

      절대값을 반환

    SELECT LENGTH('12345678')
    SELECT CONCAT('My','sql')
    SELECT LOCATE('abc', 'abcabaccd')
    SELECT LEFT('my sql', 2)
    SELECT RIGHT('my sql', 2)
    SELECT LOWER('MY sql')
    SELECT UPPER('MY sql')
    SELECT REPLACE('Ms sql', 'Ms','My')
    SELECT TRIM('       MySQL       ')
    SELECT TRIM(LEADING '#' FROM '####MySQL##')
    SELECT FORMAT(12122.111, 1)

    DATE

    NOW() → 현재 날짜와 시간을 반환

    CURDATE() → 현재 날짜 반환

    CURTIME() → 현재 시간을 반환

    반응형

    'Algorithm' 카테고리의 다른 글

    [알고리즘] 에라토스테네스의 체(소수 알고리즘)  (0) 2020.09.16
    [알고리즘] 중복없는 조합  (0) 2020.09.16
    [알고리즘] 우선순위 큐  (0) 2020.09.16
    [알고리즘] 최소힙  (0) 2020.09.16
    [알고리즘] 버블정렬  (0) 2020.09.16

    댓글

Designed by Tistory.