테이블에 존재하는 레코드의 값을 조회
예제 데이터(학사정보.sql)

SELECT * FROM 테이블명;해당 테이블의 모든 칼럼값 조회
SELECT [ALL/DISTINCT]칼럼1, 칼럼2, ... FROM 테이블명ALL : 중복데이터 모두 출력(DEFAULT)
DISTINCT: 중복 데이터를 1건으로 출력
- DISTINCT 키워드는 첫 칼럼의 앞에 위치해야 함
- 칼럼의 조합에 대해 중복 체크
- NULL 값도 하나의 값으로 간주함(NULL값도 1회만 표시)
구조 확인
DESC 학생;모든 필드 조회
SELECT * FROM 학생 ;특정필드 조회
SELECT 학번, 이름, 성별, 생년월일, 접공 FROM 학생;



조회 결과에 일종의 별칭(ALIAS)을 부여하여 칼럼 레이블을 변경함
칼럼명과 별칭 사이에 AS 키워드를 사용(Optional)
별칭이 공백, 특수문자 등을 포함하는 경우 큰 따옴표 사용



출력 시 정렬 기준 설정, SQL 문장의 맨 마지막에 위치
내림차순
DESC
참고 : ORACLE에서 NULL은 가장 큰 값으로 취급됨




테이블에서 조건에 만족하는 칼럼값들을 조회

학생테이블에서 전공이 'AI'인 학생의 학번, 이름, 전공을 표시




NUMBER와 DATE 자료형에 대해 적용
연산자는 SELECT문에도 사용 가능




NULL과 산술 연산한 결과는 NULL


생년월일 확인
2001년 3월 30일

3개월 더하기

3년 더하기


모든 자료형에 대해 적용함
문자열의 크기 비교는 사전 순으로 수행됨
예) '01' < '02'< '11' < '2'
NULL에는 비교 연산자 사용이 불가함





모든 자료형에 대해 적용

실행 결과가 나머지 두 가지와 다른 것?

진리표


AND 연산
☑ 두 조건이 모두 참일 때 TRUE
☑ 하나라도 거짓이면 FALSE
☑ 하나라도 NULL이면 NULL (참이 보장되지 않음)
OR 연산
☑ 두 조건 중 하나라도 참이면 TRUE
☑ 모두 거짓일 때 FALSE
☑ 하나라도 NULL이면 결과는 TRUE나 NULL(다른 값에 따라 다름)
합성(연결) 연산자
문자열과 문자열을 연결



CONCAT은 두 개의 문자열만 연결할 수 있음.








문자열 비교 연산
와일드 카드 사용가능
%
임의의 문자 N개
_
임의의 문자 1개

사용자가 아닌 시스템이 관리하는 Pseudo Column
사용 가능한 부등호
- =1
- <
- <=
사용 불가능한 부등호
- =2~= n
- '>'
- '>'=


INSERT INTO 테이블명(COLUMN_LIST) VALUES (VALUE_LIST);
- 일부 특정한 칼럼에 대응되는 값만 입력
- 칼럼 순서는 실제 테이블의 칼럼 순서와 무관
- 정의하지 않은 칼럼은 NULL 값이 입력됨
INSERT INTO 테이블명 VALUES (전체 COLUMN의 VALUE_LIST);
- 전체 칼럼의 모든 값을 순서대로 입력해야 함
- 빈 값은 NULL 또는 작은따옴표 둘(")로 입력(주의' ' 이 아님)
동시에 여러 레코드를 추가하는 경우
INSERT ALL은 반드시 SELECT문을 사용해야 함
새로운 값을 직접 입력하는 경우 아래와 같이 DUAL 테이블을 사용함
테이블에 존재하는 전체 레코드 삭제
DELETE 테이블명 / DELETE FROM 테이블명
- DELETE FROM 장학금;
- DELETE 장학금;
테이블에 존재하는 값 변경
WHERE절을 사용하여 특정 레코드의 값을 변경함
- UPDATE 과목 SET 학점 = 2;
- UPDATE 학생 SET 몸무게=999 WHERE 이름='라레';