SELECT 열이름 FROM 테이블이름 [ WHERE 조건 ]
SELECT * FROM 테이블명
SELECT col1, col2, ... FROM 테이블명
IS
와 =
는 다른 구문!SELECT * FROM emp WHERE sal BETWEEN 2000 AND 3000;
select * from emp where deptno IN(20,30)
20과 30인 것들만
문자열의 내용 검색 : LIKE 사용
%
: 0개 이상의 모든 문자
_
: 임의의 1개 문자
A%
: A로 시작하는 모든 문자
%A
: A로 끝나는 모든 문자
%A%
: A가 포함된 모든 문자
A_
: A로 시작하는 두글자
기본적으로 오름차순(ASCENDING)
내림차순으로 정렬하려면 열 이름 뒤에 DESC
Order by 뒤에 여러개일때 순차적으로 비교
중복된 것은 1개씩만 보여줌
SELECT DISTINCT col FROM table;
여러개 컬럼일때 모두 같아야 중복 제거
출력 개수 제한 : 상위 N개만 출력
데이터의 삽입
INSERT [INTO] 테이블[(열1, 열2, ... )] VALUES (값1, 값2, ...)
AUTO_INCREMENT
INSERT
에서는 해당 열이 없다고 생각하고 입력NULL
값을 지정하면 자동으로 값 입력기존에 입력되어 있는 값 변경
UPDATE 테이블이름
SET 열1=값1, 열2=값2, ...
[WHERE 조건] ;
WHERE
절을 생략가능하나 전체 행의 내용이 변경됨행 단위로 데이터를 삭제
DELETE FROM 테이블이름 [WHERE 조건] ;
WHERE
절이 생략되면 전체 데이터를 삭제테이블을 삭제하는 경우의 속도 비교
DML
문인DELETE
는 트랜잭션 로그 기록 작업 때문에 삭제가 느림
DDL
문인DROP
과TRUNCATE
문은 트랜잭션이 없어 빠름(복구 ❌)
- 테이블 자체가 필요 없을 경우 DROP으로 삭제
- 테이블의 구조는 남겨놓고 싶다면 TRUNCATE로 삭제