Programming/SQL

[SQL] 한 장으로 정리하는 SQL 문법

앵도라지 2023. 2. 7. 09:46

 

 

SQL을 한 장으로 정리해봤다.

아래의 내용을 여러번 반복해 공부해보면 SQL을 쉽게 사용할 수 있을 것이다!

 

 

CREATE

  • 테이블 생성
Create Table Test
( name varchar2(20) primary key,
	age number(10),
	발매일 date
);

ALTER TABLE

  • RENAME T0 : 테이블명 변경
ALTER TABLE TEST RENAME TO NEW_TEST;
  • ADD : 칼럼 추가 / DROP : 칼럼 삭제
ALTER TABLE TEST ADD (age number(2) default 1);
ALTER TABLE TEST DROP COLUMN age;
  • RENAME COLUMN ~ TO : 칼럼 변경
ALTER TABLE TEST RENAME COLUMN ename to new_name;

DROP

  • 테이블 삭제
DROP TABLE TEST;

INSERT

  • 테이블에 데이터 삽입
INSERT INTO table (column1, column2, ..) VALUES (expression1, expression2 ..);

UPDATE

  • 데이터 내용 수정
#TEST테이블에서 NOMB가 100인 행의 ENAME 칼럼의 값을 '이름이름'으로 변경한다.
UPDATE TEST SET ENAME = '이름이름' WHERE NOMB = 100;

DELETE

  • 데이터 삭제
DELETE FROM TEST WHERE NOMB = 100;

SELECT

  • 데이터 조회
SELECT * #조회를 원하는 칼럼명을 입력한다. *는 전체 조회
FROM TEST
WHERE 사원번호 = 100;

ORDER BY

  • 특정 칼럼 기준으로 정렬
  • ASC : 오름차순 / DESC : 내림차순
SELECT * FROM TEST ORDER BY NAME, AGE DESC; #NAME은 오름차순, AGE는 내림차순.

WHERE

  • 특정 조건 추출 가능
  • BETWEEN / LIKE(와일드카드% , _ 사용 가능) / IN (or의 의미)
SELECT * FROM TEST WHERE NOMB = 100;

LIMIT

  • 특정 개수까지만 인출할 때
SELECT * FROM TEST LIMIT 10;

GROUP BY

  • 특정 칼럼 기준의 데이터 그룹핑
SELECT DEPTNO, SUM(SAL) FROM EMP GROUP BY DEPTNO ;
#EMP 테이블을 조회한 뒤, DEPTNO로 그룹을 만들고, 그룹별 합계를 계산한다.

HAVING

  • Group에 조건절 사용할 때
SELECT TEST, SUM(SAL) FROM EMP GROUP BY EPTNO HAVING SUM(SAL) > 10000;

DISTINCT

  • 중복 행을 제거
SELECT DISTINCT age FROM TEST 

ALIAS

  • 칼럼에 별칭을 주고 조회
SELECT NO_NUM AS 사원번호, NO_NAME AS 사원명, AGE AS 나이 FROM TEST

CASE

  • IF ~ THEN ~ELSE -END 같은 조건문
SELECT CASE
	WHEN test = 1000 THEN 'A'
	WHEN test = 2000 THEN 'B'
	ELSE 'C'
END

함수

집계 함수

  • COUNT() : 행 수를 조회
  • SUM() : 합계를 조회
  • AVG() : 평균을 계산
  • MAX() MIN() : 최댓값과 최솟값을 계산
  • STDDEV() : 표준편차를 계산
  • VARIAN() : 분산을 계산

문자 조작 함수

  • UPPER(str) : 대문자 변환
  • LOWER(str) : 소문자 변환
  • INITCAP(str) : 첫 글자만 대문자로 변환
  • CONCAT(str, tmp) : 두 문자값 결합
  • SUBSTR(str,a,b) : 문자 추출 a = 시작위치, b = 개수
  • LENGTH(str) : 문자열 길이 반환
  • REPLACE(대상문자열,바꾸고싶은대상,바꾸고싶은내용) : 대상문자열에서 바꾸고 싶은 대상을 바꾸고 싶은 내용으로 수정한 뒤 반환