-
반응형
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 -