SQL

고라파덕·2021년 4월 8일
0

SQL

목록 보기
1/2
post-thumbnail

SQL = 구조화된 질의어
DML = 데이터입력, 수정, 삭제 (INSERT, UPDATE,DELETE)
DQL = 조회 (SELECT)

SELECT - 데이터 조회

1) 기본구조

SELECT 컬럼명1, 컬럼명2, --컬럼전체를 가져올때는 * 사용
FROM 테이블명
[WHERE 조건절]
[ORDER BY 정렬기준컴럼[ASC|DESC]] --정렬해서 데이터 가져올수있음 ASC=오름차순 DESC=내림차순

연산자

1.산술연산자 +,-,*,/
2.비교연산자 >,>=,<,<=,=,!= (자바에서 같다와는 다름 오라클의 대입연산자는 :=이다)
3.논리연산자 NOT,OR,AND (자바에서는 !,&&,||)

중복데이터 제거

DISTINCT = 중복데이터 제거

ALIAS

ALIAS = 컬럼명에 별명을 붙여서 사용

SQL연산자

1.IN 연산자
하나의 컬럼에 두개이상의 컬럼을 불러올때 사용한다.

)
SELECT 칼럼명 FROM 테이블명 
WHERE 칼럼명 IN (1,2);

2.LIEK 연산자(문자열 비교시 사용)

)
SELECT 칼럼명 FROM 테이블명
WHERE 칼럼명 LIKE (%);
)
SELECT 칼럼명 FROM 테이블명
WHERE 칼럼명 LIKE (_값%);-- _은 문자가 몇번째 자리인지 나타낸다.
  1. 문자열 결합 연산자 ||
)
SELECT 칼럼명 || '이름은' || 칼러명 || '입니다' FROM 테이블명;

4.IS NULL, IS NOT NULL = NULL 인지 검사

  1. BETWEEN A AND B A와B사이의 값
SELECT 컬럼명1,컬럼명2, 컬럼명3, FROM 테이블명
WHERE 컴럼명 BETWEEN1 AND2;

6.ANY연산자 = 조건이 하나만 일치하면 된다.

)
SELECT EMPNO,DEPTNO,SAL FROM EMP
WHERE DEPTNO = ANY(10,20);

7.ALL연산자 = 조건이 모두 만족해야된다.

)
SELECT EMPNO,DEPTNO,SAL FROM EMP
WHERE DEPTNO < ALL(20,30);

함수

어떠한 일을 수행하는 기능으로써 주어진 인수를 재료로 처리하여 그 결과값을 반환
함수의 종류
1.단일행 함수 = 하나의 행당 하나의 결과값을 반환하는 함수
2.복수행 함수 = 여러개의 행당 하나의 결과값을 반환하는 함수

1) 단일행 함수
<1> 문자함수
CONCNAT(컬럼명,'붙일문자') = 문자열 연결

SELECT '사원이름' || ENAME FROM EMP; --문자열 결합연산자
SELECT CONCAT('사원이름->',ENAME) FROM EMP;--CONCAT 

LOWER(문자열) = 문자열을 소문자로 리턴

)
SELECT ENAME,LOWER(ENAME) FROM EMP;

UPPER('문자열') = 문자열을 대문자로 리턴

SELECT ENAME,UPPER(ENAME) FROM EMP;

INSTR('문자열','위치찾는 문자열') = 문자열의 위치찾기(찾는문자가 없으면 0을리턴)

SELECT INSTR('TEST@Gmail.com','@') FROM DUAL;

SUBSTR('문자열',시작위치,갯수) = 문자열 추출하기

SELECT SUBSTR('test@Gamil.com',4,8) FROM DUAL;

LENGTH('문자열') = 문자열 길이 구하기

SELECT LENGTH('HELLO') FROM DUAL;

REPLACE('문자열','찾는문자열','바꿀문자열') = 문자열 바꾸기

SELECT REPLACE ('THE TIGER','THE','IS' FROM DUAL;

LPAD('문자열',자릿수,'채울문자') = 왼쪽남는자리에 문자열채우기

SELECT LPAD('HELLO',10,'*') FROM DUAL;

RPAD('문자열',자릿수,'채울문자') = 오른쪽남는자리에 문자열채우기

ELECT RPAD('HELLO',10,'*') FROM DUAL;
이름 앞자리 2자만 보이고 나머지 *로 채워서 출력
SELECT EMPNO,RPAD(SUBSTR(ENAME,1,2),LENGTH(ENAME),'*') ENAME FROM EMP;

LTRIM('문자열','없앨문자') = 왼쪽에 문자열 없애기

SELECT LTRIM('THE TIGER','THE') FROM DUAL;

RIM'문자열','없앨문자') = 오른쪽에 문자열 없애기

SELECT RTRIM('TIGER GOOD','GOOD') FROM DUAL;

날짜함수

SYSDATE = 현재날짜와 시간 얻어오기

SELECT SYSDATE FROM DUAL;) 사원들의 사원번호,이름,입사일,입사일로부터 1년후의 날짜 조회하기
SELECT EMPNO,ENAME,HIREDATE,ADD_MONTHS(HIREDATE,12) 입사1년후 FROM EMP;

MONTHS_BETWEEN(날짜1,날짜2) = 날짜사이의 개월수 구하기

SELECT MONTHS_BETWEEN(HIREDATE,SYSDATE) FROM EMP;

TO_CHAR(날짜,'출력형식') = 날짜형식을 지정된 형식의 문자열로 얻어오는 함수

SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD HH:MI:SS') FROM DUAL;

수학함수

ABS(숫자) = 절대값 구하기

SELECT ABS(-10) FROM DUAL;

CEIL(숫자) = 올림값 구하기

SELECT CEIL(10.4) FROM DUAL;

FLOOR(숫자) = 내림값 구하기

SELECT FLOOR(10.4) FROM DUAL;

ROUND(숫자) = 반올림값 구하기

SELECT ROUND(10.5) FROM DUAL;

TRUNC(숫자,절삭할소수점 자리수) = 소수점이하 절삭하기

SELECT TRUNC(10.323,3) FROM DUAL;

NVL

NVL(컬럼,NULL일때 치환할 값)

SELECT EMPNO,ENAME,SAL,NVL(COMM,0) FROM EMP; --NULL를 0으로 지정해줌

0개의 댓글