테이블
- 데이터베이스에서 데이터의 실질적인 저장소 역할을 수행
- 2차원 표(테이블)의 형태로 데이터를 저장한다
- 하나의 데이터베이스는 여러 개의 테이블이 존재한다
테이블의 구성요소
행
- 다른 행과 와전히 독립적이다
- 행의 순서는 중요하지 않으며, 행은 특정한 정보의 모든 데이터를 나타낸다
열
- 데이터의 속성을 나타낸다 (데이터의 이름, 데이터의 자료형)
- 같은 열은 같은 종류의 값을 가진다
- 열은 서로 다른 이름을 가지고 있다
- 하나의 테이블에 이름이 같은 열은 존재할 수 없다
DML
- 데이터 조작어다
- 데이터의 추가, 조회, 변경, 삭제 명령어
데이터 조회(SELECT)
테이블의 모든 행, 모든 컬럼을 조회
SELECT *
FROM 테이블명;
테이블의 특정 행, 특정 컬럼을 조회
SELECT 컬럼명, 컬럼명, ...
FROM 테이블명;
테이블 조회의 예시
산술식 사용하기
- SELECT절, WHERE절, GROUP BY절, HAVING절 등에서 산술연산자를 사용할 수 있다
- 숫자와 날짜 데이터를 대상으로 만 사용할 수 있다
중복 제거하기
- 동일한 컬럼값을 가진 행이 한 번만 조회된다
SELECT DISTINCT 컬럼명, ...
FROM 테이블;
별칭(Alias) 사용하기
- SELECT절과 FROM 절에서는 별칭을 정의할 수 있다
- 별칭이 특수문자, 공백을 포함하고 있을때는 " " 안에 적는다
SELECT 컬럼명 as 별칭, 컬럼명 as "별칭", 연산식 as 별칭, ...
FROM 테이블명
SELECT 컬럼명 별칭, 컬럼명 "별칭", 연산식 별칭, ...
FROM 테이블명
행의 제한(데이터 필터링)
- WHERE절을 사용한다
- 제시된 조건식을 만족하는 행만 조회된다
SELECT 컬럼명, 컬럼명,....
FROM 테이블
WHERE 조건식;
논리연산자
- 두 개이상의 조건식으로 데이터를 제한할 수 있다
- AND, OR, NOT
SELECT 컬럼명, 컬럼명,....
FROM 테이블명
WHERE 조건식 AND 조건식;
SELECT 컬럼명, 컬럼명,....
FROM 테이블명
WHERE 조건식 OR 조건식;
SELECT 컬럼명, 컬럼명,....
FROM 테이블명
WHERE 조건식 AND (조건식 OR 조건식);
기타 연산자
- BETWEEN 값 AND 값 : 컬럼의 값이 하한값과 상한값 범위내면 TRUE다.
SELECT 컬럼명, 컬럼명, ....
FORM 테이블명
WHERE 컬럼명 BETWEEN 값 AND 값;
IN (값, 값, 값, ... ) : 컬럼의 값이 제시된 값들 중 하나와 일치하면 TRUE다
OR와 흡사하다는 것을 알 수 있다
SELECT 컬럼명, 컬럼명, ....
FROM 테이블명
WHERE 컬럼명 IN (값, 값, ...);
LIKE 패턴 : 컬럼의 값이 제시된 패턴과 일치하면 TRUE다
패턴문자 | 설명 |
'%' | 0개 이상의 일련의 임의의 문자를 나타낸다 |
' _ ' | 임의의 문자 하나를 나타낸다 |
SELECT 컬럼명, 컬럼명, ....
FROM 테이블명
WHERE 컬럼명 LIKE '%패턴%'
/*
이름 LIKE '이_'; 성이 이씨고, 이름이 한 글자인 사람
이름 LIKE '이%'; 성이 이씨인 사람
책제목 LIKE '%자바%'; 제목에 '자바'가 포함되어 있는 모든 책
IS NULL, IS NOT NULL
- IS NULL : 컬럼의 값이 NULL인 행이면 TRUE 출력
- IS NOT NULL : 컬럼의 값이 NULL이 아니면 TRUE 출력
SELECT 컬럼명, 컬럼명, ....
FROM 테이블명
WHERE 컬럼명 IS NULL
SELECT 컬럼명, 컬럼명, ....
FROM 테이블명
WHERE 컬럼명 IS NOT NULL;
행의 정렬(ORDER BY)
- ORDER BY 절은 SELECT문의 맨 마지막에 써야한다
- ASC는 오름차순, DESC 오름차순. (생략하면 자동으로 오름차순으로 정렬한다)
SELECT 컬럼명, 컬럼명, ....
FROM 테이블명
[where 조건식]
[order by {컬럼명|표현식} [ASC|DESC]]
-- ASC : 오름차순 정렬
-- DESC : 내림차순 정렬
데이터 추가 (INSERT INTO)
- 테이블에 데이터를 추가한다
-- 값이 저장될 컬럼명을 직접 나열하는 방식
-- 생략된 컬럼에는 NULL값이 저장된다.
INSERT INTO 테이블명 (컬럼명, 컬럼명, 컬럼명)
VALUES (값, 값, 값);
-- 컬럼명을 생략하는 방식
-- 모든 컬럼의 값을 전부 적어야 한다.
-- 테이블의 컬럼 순서와 동일한 순서로 값을 적어야 한다.
INSERT INTO 테이블명
VALUES (값, 값, 값);
insert into contacts(name, tel, fax)
values('홍길동', '010-1111-111', '02-1111-1111')
insert into contacts
values('홍길동', '010-1111-111', '서울', 'hong@gmail.com', NULL, sysdate)
데이터 변경 ( UPDATE )
- 테이블에 저장된 데이터를 변경
UPDATE 테이블
SET
컬럼명 = 값,
컬럼명 = 값,
컬럼명 = 값
[WHERE 조건식]
-- WHERE 조건식이 없으면 모든 행에서 해당 컬럼의 값을 변경한다.
-- WHERE 조건식이 있으면 조건식을 만족하는 행에서만 해당 컬럼의 값을 변경한다.
데이터 삭제 ( DELETE )
- 테이블에 저장된 데이터를 삭제
DELETE FROM 테이블명
[WHERE 조건식]
-- WHERE 조건식이 없으면 테이블의 모든 행이 삭제된다.
-- WHERE 조건식이 있으면 조건식을 만족하는 행만 삭제한다.
테이블의 모든 데이터 삭제하기
DELETE FROM 테이블명
제시된 조건과 일치하는 행을 삭제하기
DELETE FROM 테이블명
WHERE 조건식
'SQL' 카테고리의 다른 글
SQL_오라클 내장함수(변환함수, 기타함수) (0) | 2023.12.12 |
---|---|
SQL_오라클 내장함수 (문자함수, 숫자함수, 날짜함수) (1) | 2023.12.11 |
SQL_오라클의 데이터타입 (2) | 2023.12.07 |
SQL_데이터베이스와 SQL (0) | 2023.12.05 |
Oracle 설치 (0) | 2023.09.14 |