1. 테이블 생성
1-1. 테이블 명명 규칙
- 테이블명, 컬럼명은 반드시 문자로 최대 30자까지 작성
- A-Z, a-z, 0-9, $, #만으로 구성
- 동일한 사용자가 소유한 다른 객체의 이름과 중복 불가
- 오라클 서버의 예약어 사용 불가
1-2. 데이터 타입
1-3. SQL 명령어 종류
- 데이터 검색 및 조회
- SELECT
- 데이터 조작어(DML, Data Manipulation Language)
- rollback 가능
- INSERT, UPDATE, DELETE
- 데이터 정의어(DDL, Data Definition Language)
- rollback 불가능
- CREATE, ALTER, DROP, RENAME, TRUNCATE, COMMENT
- Transaction Control
- 논리적인 작업의 단위로, DML에 의해 조작된 결과를 다루는 명령어
- COMMIT, ROLLBACK, SAVEPOINT
- 데이터 제어어(Data Control Language)
- GRANT, REVOKE
1-4. 테이블 생성 CREATE
- 스키마는 객체의 집합으로, 테이블의 소유자를 의미한다.
CREATE TABLE [스키마]테이블명
(
컬럼명1 DATATYPE [DEFAULT 형식],
컬럼명2 DATATYPE [DEFAULT 형식],
...
)
CREATE TABLE test1 (
Id NUMBER(5),
name CHAR(25),
salary NUMBER(7, 2),
title CHAR(25) DEFAULT '사원',
In_date DATE DEFAULT SYSDATE,
dept_name CHAR(25)
);
1-5. 데이터 입력 INSERT
INSERT INTO 테이블명(컬럼1, 컬럼2, ...)
VALUES(값1, 값2, ...);
// 테이블에 있는 모든 컬럼의 데이터를 입력한다면 컬럼 리스트 생략 가능
INSERT INTO 테이블명 VALUES(값1, 값2, ...);
INSERT INTO test1(name)
VALUES('tester');
1-6. 데이터 수정 UPDATE
UPDATE 테이블명
SET 컬럼1 = 값1, [컬럼2 = 값2, ...]
[WHERE 조건식];
UPDATE test1
SET name = 'tester2';
1-7. 데이터 삭제 DELETE
DELETE FROM 테이블명
[WHERE 조건식];
DELETE FROM test1;
2. 데이터 검색
2-1. SELECT
- SELECT : 검색하고자 하는 데이터 나열
- DISTINCT : 중복 행 제거
- ALIAS : 컬럼에 별명 부여
- FROM : 데이터를 가져올 테이블
SELECT (DISTINCT) 컬럼명 (ALIAS)
FROM 테이블명;
2-2. 전체 데이터 검색
SELECT * FROM test1;
2-3. 특정 데이터 검색
SELECT 컬럼명1, [컬럼명2, 컬럼명3, ...] FROM 테이블명;
SELECT name, title FROM test1;
2-4. 산술식을 사용한 검색
- 산술 연산을 하거나 출력 방식을 변경하여 출력하고자 할 때 산술표현식 사용 가능
- `+, -, *, /, ()` 사용 가능
SELECT name, salary * 18 FROM test1;
2-5. 컬럼에 ALIAS 지정
- 컬럼에 ALIAS를 지정하여 검색 결과의 HEADING을 바꿀 수 있다.
- 산술연산을 수행했을 경우 유용하게 사용 가능
- `AS`는 생략 가능
- 영문으로 지정할 경우 대소문자를 구분하며, 두 단어 이상이라면 이중 따옴표를 함께 써줘야 한다.
SELECT name, salary * 18 AS 연봉 FROM test1;
2-6. 컬럼 합성 CONCATENATION
- 합성연산자`||`를 사용하여 컬럼을 다른 컬럼이나 값과 연결하여 하나의 컬럼으로 출력 가능
SELECT name || title AS "사원 목록" FROM test1;
2-7. 중복행 제거 DISTINCT
- DISTINCT 뒤에 적힌 모든 컬럼들에 대하여 중복 행을 제거한다.
SELECT DISTINCT name FROM test1;
2-8. 정렬 ORDER BY
- ASC : 오름차순 정렬. default 값
- DESC : 내림차순 정렬
SELECT (DISTINCT) 컬럼명 (ALIAS)
FROM 테이블명
ORDER BY 컬럼 또는 표현식 (ASC 또는 DESC);
SELECT name, title, salary
FROM test1
ORDER BY salary DESC;
2-9. 조건에 따른 검색 WHERE
- 조건을 추가할 때 `ORDER BY`는 가장 마지막에 작성해야 한다.
SELECT 컬럼명
FROM 테이블명
WHERE 조건식
ORDER BY 컬럼 또는 표현식 (ASC 또는 DESC);
SELECT name, salary
FROM test1
WHERE salary >= 500;
SELECT name, In_date
FROM test1
WHERE In_date > '24/01/01';
SELECT name, salary
FROM test1
WHERE salary BETWEEN 500 AND 600;
SELECT name, title, salary
FROM test1
WHERE salary LIKE '3%';
SELECT name, title, salary
FROM test1
WHERE (title='사원' OR In_date > '24/01/01') AND salary < 500;