일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 스프링
- Linux
- 입출력
- 형변환
- 리눅스
- 클래스
- 정보처리기사
- select
- Java
- 프로그래머스 sql 고득점 kit
- where
- 정보처리기사필기요약
- SQL
- StringBuilder
- html
- 예외처리
- 자바스크립트
- 프로그래밍
- 메서드
- order by
- DML
- select문
- github
- JavaScript
- MySQL
- 백준
- BufferedReader
- 웹개발
- mybatis
- 프론트엔드
- sql문
- String클래스
- Git
- 알고리즘
- 프로그래머스 SQL
- 자바
- scanner
- 개발자
- 백엔드
- 데이터 조회
- Today
- Total
ToBe끝판왕
[ SQL ] SELECT문 ( WHERE / LIKE / IS NULL / IN / BETWEEN / .. 등 ) , 단일행함수, 그룹함수, Group by절 본문
[ SQL ] SELECT문 ( WHERE / LIKE / IS NULL / IN / BETWEEN / .. 등 ) , 단일행함수, 그룹함수, Group by절
업그레이드중 2022. 5. 12. 16:40
SQL 언어
▶ mairaDB 접속
• 클라이언트가 서버에 명령을 내리는 언어가 SQL이다.
• 접속하는 동시에 데이터베이스 사용하는 방법
- mysql -u 사용자명 -p 데이터베이스명
DML ( SELECT문 연습 )
1) between 시작값 and 끝값
salary가 1000과 2000사이인 직원번호, 직원이름, 월급을 출력
2) in ( 목록 ) => or 이랑 같지만 더 간단하다.
여러조건을 간편하게 검색할수 있다.
부서번호가 10 혹은 20인 직원번호, 직원이름, 월급, 부서번호 출력
3)
NULL 을 검색할때는 IS를 사용한다.
NULL이 아닌것 을 검색할때는 IS NOT 을 사용한다.
※ NULL은 사용할수 없고, 지정되지 않고, 적용할수 없는 값으로, 0 또는 Space 와는
다른 개념입니다.
comm이 Null인 직원번호, 직원이름, 월급, comm 출력
4) Like 연산자 로 비슷한것들 찾기
▶ 부분문자열
· ~ 로 시작하는
· ~ 을 포함한
· ~로 끝나는
% : 글자수는 제한 없고 ( 0개 포함 ) , 글자종류도 상관 X
_ (underscore) : 글자수는 한글자만 올수 있고, 글자종류는 상관 X
ex) K 로 시작하는 직원번호, 직원이름 출력
ex) r 로 끝나는 직원번호, 직원이름 출력
ex) a로 시작, 중간에 3글자 s로 끝나는 직원번호, 직원 이름 출력
ex) 고용일이 2011로 시작하는 직원번호, 직원이름, 고용일, 월급 출력
5) orderby(정렬) 사용하기
( 기본은 오름차순으로 되있음 )
▶ 오름차순으로 보기: asc ; ( 안붙여도 오름차순으로 보임 )
▶ 내림차순으로 보기 : desc ;
▶ 상위 몇개만 보기 : limit ( limit 2, 3 => 시작부터 몇개 , 지정가능 )
ex) 월급을 오름차순으로 정렬
ex) 월급을 내림차순으로 정렬
ex) 월급을 내림차순으로 정렬하고 상위 3개만 출력
ex) 월급을 내림차순으로 정렬하고 2번째부터 3개만 출력 ( 첫행은 0번째로 본다.)
내장함수 ( 데이터의 가공 )
▶ 기능
- 데이터의 계산을 수행
- 개별 데이터의 항목을 수정
- 표시할 날짜 및 숫자형식을 지정
- 열 데이터의 유형을 변환
- 기본적인 Query문을 더욱 강력하게 해줌
아래 사이트에는 사용가능한 내장함수들이 적혀있다.
▶ 종류
• 단일 행 함수 - 한번에 한건씩 처리하는 함수
• 복수 행 함수 - 여러건의 데이터를 동시에 입력 받아서 한꺼번에 처리(결과값 1건)
단일 행 함수
1) Information function
접속 사용자 : select user();
현재 내가 있는 데이터베이스 : select databases();
mariaDB의 버전정보 : select version();
2) 숫자함수( Numeric Function )
▶ round(숫자 [ , m ] )
▶ trunc(숫자 , [ , m ] )
• m > 0 이면 소수점 아래 m-1 자리에서 반올림, 버림
• 생략 시 정수 이하 반올림, 버림(소수점 첫 자리 반올림, 버림)
• m < 0 이면 m번째 자리에서 반올림, 버림
▶ floor(n) : 주어진 값보다 작거나 같은 최대 정수를 구하는 함수(내림)
▶ ceil(n) : 주어진 값보다는 크지만 가장 근접하는 최소값을 구하는 함수(올림)
▶ mod(m,n) : m을 n으로 나누어 남은 값 반환
▶ abs(n) : n의 절대값을 계산하여 반환한다.
▶ pow(a,b), power(a,b) : a의 b승
3) 문자함수( String Function )
▶ 가변인자 , 붙이기
concat ( a, b )
▶ 문자열 삽입하기
insert()
▶ 왼쪽, 오른쪽, 가운데 부터 몇글자 보이게 하기
left(a, b) , right( a,b )
▶ 오른쪽/ 왼쪽 여백 채우기
lpad( 왼쪽 여백 채우기) , rpad( 오른쪽 여백 채우기)
▶ 문자열에서 원하는 문자 추출( 지정한 위치(m) 에서 지정한길이(n) 만큼 문자추출 )
substr( '문자열' 또는 컬럼명 , m , [,n] )
▶ 문자열에서 특정단어를 다른 단어로 변환
replace(‘문자열’ 또는 컬럼명 , ‘문자1’ , ’문자2’)
▶ 대문자 / 소문자로
• 대문자 : upper( 문자열 혹은 컬럼명) , ucase( 문자열 혹은 컬럼명)
• 소문자 : loser( 문자열 혹은 컬럼명) , lcase( 문자열 혹은 컬럼명)
▶ 문자열 길이구하기
length( 컬럼 또는 문자열) / char_length( 컬럼 또는 문자열)
※ char_length 는 한글을 셀수 있다.
▶ 제거할 문자를 생략 시에는 공백을 제거한다
• ltrim(‘문자열’ 또는 컬럼명 , ‘제거할 문자’ ) : 왼쪽에 있는 대상 제거
• rtrim(‘문자열’ 또는 컬럼명, ‘제거할 문자’) : 오른쪽에 있는 대상 제거
• trim(‘문자열’ 또는 컬럼명) : 앞뒤 공백 모두 제거
★활용예제
- 이름의 첫글자가 s로 시작하는 사원에 대한 사원이름 출력
- 3가지 방법으로 표현해보기
4) 날짜 그리고 시간함수( Date and Time Function )
▶ 현재시간 얻어오기
select now(), sysdate(), current_timestamp();
▶ 시간만 가져오기
select curtime(), current_time();
▶ 날짜만 가져오기
select curdate(), current_date();
▶ 시간연산하기
select now(), now()+1;
▶ MONTHS_BETWEEN( 날짜1, 날짜2 )
두 날짜 간의 개월 수 차이 값을 반환합니다.
▶ ADD_MONTHS( 날짜1, 날짜2 )
날짜1에서 n개월 이후 값을 반환합니다.
n이 음수인 경우 n개월 이전 값을 반환합니다.
▶ NEXT_DAY( 날짜, 지정요일 )
날짜 다음의 지정한 요일에 해당하는 날짜를 반환합니다.
▶ LAST_DAY( 날짜 )
날짜의 해당 월의 마지막 날짜를 반환합니다.
★ 활용예제
now() 연도만 결과값 출력
3가지로 표현
5) Comparison Function
해당 리스트에서 의 최소값, 최대값, ~이상을 출력하라
• greatest( x , y)
• least( x, y )
• greatest( sal, 2000 )
▶ 조건문 사용하기
if()
▶ Null 값 여부 확인하기
ifnull()
▶ case( )
• switch문과 비슷
case 값
when 값 then 결과
when 값 then 결과
else 결과 end ;
• if else else 문과 비슷
case
when 조건 then 결과
when 조건 then 결과
else 결과 end;
▶ 복수 행 함수 ( 그룹함수 )
▶ 행의 갯수를 알수 있다. ( 보통 count (*)로 사용 )
count()
▶ sum() , avg() ( 모두 null이 계산 안됨 )
▶ max() , min() : 최대값 , 최소값
▶ group by 절 ( 그룹함수와 같이 쓰인다. )
• 부서별 최고 급여 출력
• 부서별 평균 급여 출력
• 부서별, 직책별 최고 급여 출력