DATA ON-AIR에서 12번 관계형 데이터베이스 개요와 13번 DDL, 14번 DML, 15번 TCL, 그리고 27번 DCL을 요약 정리한 내용이다.
데이터베이스(DB, Database)
- 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장해 놓은 것을 의미한다.
- DB의 종류
- 계층형 DB : 트리(Tree) 형태에 데이터 저장 및 관리. 1:N 관계를 표현
- 네트워크형 DB : 오너(Owner)와 멤버(Member) 형태로 데이터를 저장 및 관리
- 관계형 DB : 릴레이션에 데이터를 저장 및 관리. 릴레이션을 사용해 집합, 관계 연산
- DBMS
- 계층형 / 네트워크형 / 관계형 DB 등을 관리하기 위한 SW
- 효율적인 데이터 관리뿐만 아니라 예기치 못한 사건으로 인한 데이터의 손상을 피하고, 필요시 데이터를 복구하기 위한 강력한 기능의 SW
- Oracle, MS-SQL, MySQL, Sybase 등
테이블(Table)
용어 | 설명 |
테이블(Table) | 행과 칼럼의 2차원 구조를 가진 데이터의 저장 장소, 데이터베이스의 가장 기본적인 개념 |
칼럼/열(Column) | 2차원 구조를 가진 테이블에서 세로 방향으로 이루어진 하나하나의 특정 속성 더이상 나눌 수 없는 특성을 가짐 |
행(Row) | 2차원 구조를 가진 테이블에서 가로 방향으로 이루어진 연결된 데이터 |
- 테이블은 행(Row) / 튜플(Tuple)과 열(Column)으로 구성된다.
- 칼럼은 어떤 데이터를 저장하기 위한 필드로 속성이라고도 한다.
- 테이블 구조를 정리하자면,
- 가로 = 행 = 로우 = 튜플 = 인스턴스
- 세로 = 열 = 칼럼
- 테이블 명은 다른 테이블의 이름과 중복되면 안된다.
- 테이블 내의 칼럼명은 중복될 수 없다.
- 칼럼 뒤에 데이터 유형은 꼭 지정되어야 한다.
- 테이블명과 칼럼명은 반드시 문자로 시작해야 한다.
- 글자는 A - Z, a - z, 0 - 9, _, $, #만 허용한다.
| 테이블(Table) 관계 용어들
- 정규화(Normalization) : 테이블을 분할하여 데이터의 정합성을 확보하고, 불필요한 중복을 줄이는 프로세스
- 기본키(Primary Key) : 테이블에 존재하는 각 행을 한 가지 의미로 특정할 수 있는 한 개 이상의 칼럼
- 외부키(Foreign Key) : 다른 테이블의 기본키로 사용되고 있는 관계를 연결하는 칼럼
데이터 유형
데이터 유형은 데이터베이스의 테이블에 특정 자료를 입력할 때, 그 자료를 받아들일 공간을 자료의 유형별로 나누는 기준이라고 생각하면 된다. 즉, 특정 칼럼을 정의할 때 선언한 데이터 유형은 그 칼럼이 받아들일 수 있는 자료의 유형을 규정한다.
- CHAR(s) : 고정 길이 문자열 정보. 최대 길이만큼 공간을 채움, 'AA' = 'AA '
- VARCHAR2(s) : 가변 길이 문자열 정보. 할당된 변수 값의 바이트만 적용 'AA' != 'AA '
- NUMBER : 정수, 실수 등 숫자 정보
- DATE : 날짜와 시각 정보
SQL(Structured Query Language)
- SQL은 관계형 데이터베이스에서 데이터 정의, 조작, 제어를 위해 사용하는 절차형 언어이다.
- SQL은 ANSI/ISO 표준을 준수하므로 DBMS가 변경되어도 그대로 사용할 수 있다.
| SQL 문장들의 종류
명령어의 종류 | 명령어 | 설명 |
데이터 조작어 (DML : Data Manipulation Language) |
SELECT | 데이터베이스에 들어 있는 데이터를 조회하거나 검색하기 위한 명령어. RETRIEVE라고도 한다. |
INSERT UPDATE DELETE |
데이터베이스의 테이블에 들어 있는 데이터에 변형을 가하는 종류의 명령어들을 말한다. 데이터를 테이블에 새로운 행을 집어넣거나, 원하지 않는 데이터를 삭제하거나 수정하는 것들의 명령어들. |
|
데이터 정의어 (DDL : Data Definition Language) |
CREATE ALTER DROP RENAME |
테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어. 그러한 구조를 생성하거나 변경/ 삭제/ 이름을 바꾸는 데이터 구조와 관련된 명령어들을 DDL이라고 부른다 |
데이터 제어어 (DCL : Data Control Language) |
GRANT REVOKE |
데이터베이스에 접근하고 객체들을 사용하도록 권한을 주거나 회수하는 명령어 |
트랜잭션 제어어 (TCL : Transaction Control Language) |
COMMIT ROLLBACK |
논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어하는 명령어 |
- DDL 명령어는 명령어를 실행하는 순간 명령어에 해당하는 작업이 즉시 완료(AUTO COMMIT) 된다.
- DML 명령어는 조작하려는 테이블을 메모리 버퍼에 올리고 작업하기 때문에 COMMIT을 입력해야 한다.
| 작업 순서
DCL(권한 부여) → DDL(데이터 구조 정의) → DML(데이터 조회 등)
CREATE TABLE
테이블은 일정한 형식에 의해서 생성된다. 테이블 생성을 위해서는 해당 테이블에 입력될 데이터를 정의하고, 정의한 데이터를 어떠한 데이터 유형으로 선언할 것인지를 결정해야 한다.
| 테이블과 칼럼 정의
- 테이블에 존재하는 모든 데이터를 고유하게 식별할 수 있으면서 반드시 값이 존재하는 단일 칼럼이나 칼럼의 조합들(후보키) 중에 하나를 선정하여 기본키 칼럼으로 지정
- 기본키는 단일 칼럼이 아닌 여러 개의 칼럼으로도 만들어질 수 있다.
- 테이블과 테이블 간에 정의된 관계는 기본키(PRIMARY KEY)와 외부키(FOREIGN KEY)를 활용해서 설정하도록 한다.
DDL(Data Definition Language)
- DB를 사용하기 위해서는 테이블을 먼저 생성해야 한다.
- 테이블 관리 SQL문
SQL문 | 설명 |
Create Table | 새로운 테이블을 생성한다. 테이블을 생성할 때 기본키 / 외래키 / 제약조건 등을 설정할 수 있다. |
Alter Table | 생성된 테이블을 변경한다. 칼럼을 추가 / 변경 / 삭제할 수 있고, 기본키 / 외래키를 설정할 수 있다. |
Drop Table | 해당 테이블을 삭제한다. 테이블의 데이터 구조와 저장된 데이터 모두 삭제된다. |
| 제약조건(CONSTRAINT)
- 사용자가 원하는 조건의 데이터만 유지하기 위해 데이터의 무결성을 유지하기 위한 방법으로, 테이블의 특정 칼럼에 설정하는 제약이다.
- 테이블을 생성할 때 제약조건을 반드시 기술할 필요는 없지만 이후 ALTER TABLE을 이용해서 추가, 수정하는 경우 데이터가 이미 입력된 상태라면 처리 과정이 쉽지 않아서 초기 테이블 생성 시점부터 적합한 제약 조건에 대한 검토가 필요하다.
- 칼럼명 앞에 'constraint'를 입력하여 제약조건을 설정한다.
구분 | 설명 |
PRIMARY KEY (기본키) |
- 테이블에 저장된 행 데이터를 고유하게 식별하기 위한 기본키를 정의 - 하나의 테이블에 하나의 기본키 제약만 정의할 수 있다. - 기본키 제약을 정의하면 DBMS는 자동으로 UNIQUE 인덱스를 생성한다. - 기본키를 구성하는 칼럼에는 NULL을 입력할 수 없다. |
UNIQUE KEY (고유키) |
- 테이블에 저장된 행 데이터를 고유하게 식별하기 위한 고유키를 정의 - 단, NULL은 고유키 제약의 대상이 아니므로, NULL 값을 가진 행이 여러 개가 있더라도 고유키 제약 위반이 되지 않는다. |
NOT NULL | - NULL 값의 입력을 금지한다. - 디폴트 상태에서는 모든 칼럼에서 NULL을 허가하고 있지만, 이 제약을 지정함으로써 해당 칼럼은 입력 필수가 된다. - NOT NULL을 CHECK의 일부분으로 이해할 수도 있다. |
CHECK | - 입력할 수 있는 값의 범위 등을 제한한다. - CHECK 제약으로는 TRUE or FALSE로 평가할 수 있는 논리식을 지정한다. |
FOREIGN KEY (외래키) |
- 관계형 데이터베이스에서 테이블 간의 관계를 정의하기 위해 기본키를 다른 테이블의 외래키로 복사하는 경우 외래키가 생성된다. - 외래키 지정 시 참조 무결성 제약 옵션을 선택할 수 있다. - NULL 입력 가능하고, 여러 개 생성 가능하다. |
기본적인 테이블 생성, Create Table문의 구조
CREATE TABLE 테이블명
(
칼럼명1 DATATYPE [DEFAULT 형식] primary key,
칼럼명2 DATATYPE [DEFAULT 형식],
칼럼명2 DATATYPE [DEFAULT 형식]
);
-- 예제
CREATE TABLE PLAYER
(
PLAYER_ID CHAR(7) NOT NULL,
PLAYER_NAME VARCHAR2(20) NOT NULL
);
- CREATE TABLE A : 'A'라는 테이블을 생성하라는 의미. 각 칼럼은 쉼표(,)로 구분 짓고, 세미콜론(;)으로 끝난다.
- (칼럼 정보) : 테이블에 생성되는 칼럼 이름(영문자)과 데이터 타입을 입력
- DATATYPE : NUMBER - 숫자형 타입 / VARCHAR2 - 가변 길이 문자열 / CAHR - 고정 길이 문자열 / DATE : 날짜
- 기본키 : 칼럼 옆에 'Primary Key'를 입력하여 기본키로 설정
-- CONSTRAINT를 사용한 PK, FK 지정
CREATE TABLE 테이블명
(
칼럼명1 DATATYPE [DEFAULT 형식],
칼럼명2 DATATYPE [DEFAULT 형식],
칼럼명2 DATATYPE [DEFAULT 형식],
COSNTRAINT 제약조건명 PRIMARY KEY (칼럼명1),
CONSTRAINT 제약조건명 FOREIGN KEY (칼럼명2) REFERENCES 테이블명2(칼럼명2)
-- 테이블2가 먼저 생성되어 있어야함
);
테이블 구조 변경
-- 테이블명 변경
ALTER TABLE 기존 테이블명 RENAME TO 새로운 테이블명;
ALTER TABLE TEAM RENAME TO PLAYER;
-- 칼럼 추가
ALTER TABLE PLAYER ADD(ADDRESS VARCHAR2(80));
-- 칼럼 삭제
ALTER TABLE PLAYER DROP COLUMN ADDRESS;
-- 칼럼 수정
ALTER TABLE PLAYER MODIFY (ORIG_YYYY VARCHAR2(8) DEFAULT '20020129' NOT NULL);
-- 컬럼명 변경
ALTER TABLE PLAYER RENAME COLUMN TEAM_ID TO T_ID ;
-- 조건명 제약조건 추가
ALTER TABLE PLAYER ADD CONSTRAINT 제약조건명 제약조건 (칼럼명);
-- 제약조건 삭제
ALTER TABLE PLAYER DROP CONSTRAINT 제약조건명;
-- 테이블 이름 변경
RENAME 변경전 테이블명 TO 변경후 테이블명;
-- 테이블 전체 삭제 (롤백 불가)
DROP TABLE PLAYER;
-- 테이블 내 데이터 삭제 (롤백 불가)
TRUNCATE TABLE PLAYER;
DML(Data Manipulation Language)
만들어진 테이블에서 관리하기를 원하는 자료들을 입력, 수정, 삭제, 조회하기 위해 사용하는 명령어
| INSERT
INSERT문은 테이블에 데이터를 입력하는 명령어이다.
- INSERT를 실행했다고 데이터 파일에 저장되는 것은 아니고, 최종적으로 TCL문인 COMMIT을 실행해야 한다.
- 테이블에 데이터를 입력하는 방법은 두 가지 유형이 있으며 한 번에 한 건만 입력된다.
1. 해당 칼럼명과 입력되어야 하는 값을 서로 1:1로 매핑해서 입력하면 된다.
INSERT INTO 테이블명 (컬럼명1, 컬럼명2, ...) VALUES (값1, 값2, ...);
2. 만약 테이블의 모든 칼럼에 데이터를 입력한다면 칼럼명을 생략할 수 있지만, 칼럼의 순서대로 빠짐없이 데이터가 입력되어야 한다.
INSERT INTO 테이블명 VALUES (값1, 값2, ...);
| UPDATE
입력한 정보 중에 잘못 입력되거나 변경이 발생하여 정보를 수정해야 하는 경우에 사용하는 명령어이다.
- UPDATE는 원하는 조건으로 검색해서 해당 데이터를 수정한다.
- UPDATE에 조건문을 입력하지 않으면 모든 데이터가 수정되므로 유의해야 한다,
UPDATE 테이블명 SET 수정할칼럼명 = 새로운값 WHERE 조건;
| DELETE
테이블의 정보가 필요 없게 되었을 경우 데이터 삭제를 수행하기 위한 명령어이다.
- DELETE는 원하는 조건을 검색해서 해당되는 행을 삭제한다.
- 조건문을 입력하지 않으면 테이블의 모든 데이터가 삭제된다.
-- 테이블 내 행 삭제
DELETE FROM 테이블명 WHERE 조건;
-- 테이블 내 모든 데이터 삭제
DELETE 삭제할 테이블명;
| SELECT
사용자가 입력한 데이터는 언제라도 조회가 가능하다. SELECT는 앞에서 입력한 자료들을 조회해 보는 SQL문이다.
- SELECT는 특정 칼럼이나 특정 행만을 조회할 수 있다.
SELECT 조회할데이터 FROM 테이블명 WHERE 조건 ;
+ SELECT 예제
SELECT * FROM EMP WHERE 사번 = 10;
SELECT 문법 | 설명 |
SELECT * | 애스터리스크( * )는 모든 칼럼을 의미한다. 즉, 모든 칼럼을 출력한다. |
FROM EMP | FROM절에는 테이블 명을 쓴다. 즉, EMP 테이블을 지정했다는 의미이다. |
WHERE 사번 = 10; | WHERE절에서는 조건문을 지정한다. 즉, EMP 테이블에서 사번이 10인 행을 조회한다. |
+ SELECT 칼럼 지정 예제
SELECT A || '맛' FROM FLAVOUR;
- FLAVOUR 테이블의 모든 행에서 'A' 칼럼을 조회한다.
- 'A' 칼럼 뒤에 '맛'이라는 문자를 결합한다.
- 'A맛'이라는 형태로 출력된다.
+ 와일드카드(WILDCARD)
와일드카드로 애스터리스크( * )를 사용하여 해당 테이블의 모든 칼럼 정보를 조회할 수 있다.
* | 모든 |
% | 모든 |
- | 한 글자 |
+ DISTINCT와 ALIAS
- DISTINCT
- DISTINCT 옵션은 칼럼명 앞에 지정하여 중복된 데이터를 한 번만 조회하게 한다.
- 모든 조인을 다 실행한 다음에 중복을 제거한다. → 그래서 효율적이지는 않다.
SELECT DISTINCT 칼럼명 FROM 테이블명 WHERE 조건 ;
- ALIAS
- 조회된 결과에 일종의 별명(ALIAS, ALIASES)을 부여해서 칼럼명/테이블명을 변경할 수 있다.
SELECT 칼럼명 [AS] 별칭 FROM 테이블명 WHERE 조건 ;
| 산술 연산자와 합성 연산자
+ 산술 연산자
- NUMBER와 DATE 자료형에 대해 적용되며 일반적으로 수학에서의 4칙 연산과 동일하다.
- 우선순위를 위한 괄호 적용이 가능하다.
- 칼럼의 LABEL이 길어지게 되고, 기존의 칼럼에 대해 새로운 의미를 부여한 것이므로 적절한 ALIAS를 새롭게 부여하는 것이 좋다.
- 수학에서와 같이 (), *, /, +, - 의 우선순위를 가진다.
산술 연산자 | 설명 |
( ) | 연산자 우선순위를 변경하기 위한 괄호 (괄호 안의 연산이 우선된다.) |
* | 곱하기 |
/ | 나누기 |
+ | 더하기 |
- | 빼기 |
+ 합성 연산자
- 문자와 문자를 연결하는 경우 2개의 수직 바(||)에 의해 이루어진다. (Oracle)
- 문자와 문자를 연결하는 경우 + 표시에 의해 이루어진다. (SQL Server)
- 두 벤더 모두 공통적으로 CONCAT (string1, string2) 함수를 사용할 수 있다.
- 칼럼과 문자 또는 다른 칼럼과 연결시킨다.
- 문자 표현식의 결과에 의해 새로운 칼럼을 생성한다.
-- 출력 형태 : 선수명 선수, 키 cm, 몸무게 kg
-- Oracle
SELECT PLAYER_NAME || '선수,' || HEIGHT || 'cm,' || WEIGHT || 'kg' 체격정보 FROM PLAYER;
-- SQL Server
SELECT PLAYER_NAME +'선수, '+ HEIGHT +'cm, '+ WEIGHT +'kg'체격정보 FROM PLAYER;
TCL(Transaction Control Language)
트랜잭션(TRANSACTION)이란 밀접히 관련되어 분리될 수 없는 한 개 이상의 데이터베이스 조작을 가리킨다.
- 데이터베이스의 논리적 연산단위이다.
- 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함된다.
- 분할할 수 없는 최소의 단위이다. 그렇기 때문에 전부 적용하거나 전부 취소한다. (ALL or NOTHING)
- 트랜잭션은 SQL문 실행시 자동 시작, COMMIT/ROLLBACK 실행시 종료된댜.
COMMIT | 올바르게 반영된 데이터를 데이터베이스에 반영시키는 것 |
ROLLBACK | 트랜잭션 시작 이전의 상태로 되돌리는 것 |
| 트랜잭션의 특징
특성 | 설명 |
원자성 (Atomicity) |
트랜잭션에서 정의된 연산들은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 남아 있어야 한다. (ALL or NOTHING) |
일관성 (Consistency) |
트랜잭션이 실행되기 전의 데이터베이스 내용이 잘못 되어 있지 않다면 트랜잭션이 실행된 이후에도 데이터베이스의 내용에 잘못이 있으면 안된다. |
고립성 (Isolation) |
트랜잭션이 실행되는 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안된다. |
지속성 (Durability) |
트랜잭션이 성공적으로 수행되면 그 트랜잭션이 갱신한 데이터베이스의 내용은 영구적으로 저장된다. |
| SAVEPOINT
저장점(SAVEPOINT)을 정의하면 롤백(ROLLBACK)할 때 트랜잭션에 포함된 전체 작업을 롤백하는 것이 아니라 현시점에서 SAVEPOINT까지 트랜잭션의 일부만 롤백할 수 있다.
- 복수의 저장점을 정의할 수 있으며, 동일이름으로 저장점을 정의했을 때는 나중에 정의한 저장점이 유효하다.
저장점까지 롤백할 때는 POLLBACK 뒤에 저장점 명을 지정한다.
SAVEPOINT SVPT1;
롤백(ROLLBACK)에 SAVEPOINT 명을 부여하여 실행하면 저장점 설정 이후에 있었던 데이터 변경에 대해서만 원래 데이터 상태로 되돌아가게 된다.
ROLLBACK TO SVPT1;
DCL(Data Control Language)
유저를 생성하고 권한을 제어할 수 있는 명령어
- Oracle을 설치하면 기본적으로 제공되는 유저들
유저 | 역할 |
SCOTT | Oracle 테스트용 샘플 유저 Default 패스워드 : TIGER |
SYS | DBA ROLE을 부여받은 유저 |
SYSTEM | 데이터베이스의 모든 시스템 권한을 부여받은 DBA 유저 Oracle 설치 완료 시에 패스워드 설정 |
| Oracle과 SQL Server의 사용자 아키텍처
- Oracle
- 유저를 통해 데이터베이스에 접속을 하는 형태
- ID와 PW 방식으로 인스턴스에 접속을 하고 그에 해당하는 스키마에 오브젝트 생성 등의 권한을 부여받게 된다.
- SQL Server
- 인스턴스에 접속하기 위해 로그인이라는 것을 생성하게 되며, 인스턴스 내에 존재하는 다수의 데이터베이스에 연결하여 작업하기 위해 유저를 생성한 후 로그인과 유저를 매핑해 주어야 한다.
- SQL Server 로그인은 두 가지 방식으로 가능하다( Windows 인증 방식과 혼합 모드 방식
| 시스템 권한
사용자가 SQL문을 실행하기 위해 필요한 적절한 권한
- 대부분의 데이터베이스는 데이터 보호와 보안을 위해서 유저와 권한을 관리한다.
- 개별 오브젝트에 대한 작업을 위해서는 오브젝트 권한 부여 필요하다.
GRANT | 권한 부여 |
REVOKE | 권한 회수 |
| GRANT
GRANT문은 DB 사용자에게 권한을 부여해 연결, 입력, 수정, 삭제, 조회를 할 수 있다.
-- SCOTT 유저에게 유저 생성 권한 부여
GRANT CREATE USER TO SCOTT;
-- SCOTT 유저 연결(ID: SCORR / PW: TIGER)
CONN SCOTT/TIGER
-- PJS 유저(패스워드: KOREA7) 생성
CREATE USER PJS IDENTIFIED BY KOREA7;
-- PJS 유저가 로그인할 수 있도록 CREATE SESSION 권한을 부여
GRANT CREATE SESSION TO PJS;
-- SYSTEM 유저를 통하여 PJS 유저에게 CREATE TABLE 권한을 부여
CONN SYSTEM/MANAGER
GRANT CREATE TABLE TO PJS;
-- PJS 유저로 테이블 생성
CREATE TABLE MENU ( MENU_SEQ NUMBER NOT NULL, TITLE VARCHAR2(10) );
+ GRANT문 구조 및 권한(Privilege)
GRANT 권한 ON 테이블명 TO 유저;
권한 | 설명 |
SELECT | 지정된 테이블에 대해 SELECT 권한 부여 |
INSERT | 지정된 테이블에 대해 INSERT 권한 부여 |
UPDATE | 지정된 테이블에 대해 UPDATE 권한 부여 |
DELETE | 지정된 테이블에 대해 DELETE 권한 부여 |
REFERENCES | 지정된 테이블을 참조하는 제약조건을 생성하는 권한 부여 |
ALTER | 지정된 테이블에 대해 수정 권한 부여 |
INDEX | 지정된 테이블에 대해 인덱스를 생성할 수 있는 권한 부여 |
ALL | 테이블에 대한 모든 권한 부여 |
| REVOKE
REVOKE문은 DB 사용자에게 부여된 권한을 회수한다.
-- SCOTT 유저에게 유저 생성 권한 회수
REVOKE CREATE USER FROM SCOTT;
REVOKE 권한 ON 테이블명 FROM 유저;
| ROLE
관리해야 할 유저가 점점 늘어나고 자주 변경되는 상황에서 유저들과 권한들 사이에서 중개 역할을 하는 ROLE을 제공한다. 데이터베이스 관리자는 ROLE을 생성하고, ROLE에 각종 권한들을 부여한 후 ROLE을 다른 ROLE이나 유저에게 부여할 수 있다. ROLE을 만들어 사용하는 것이 권한을 직접 부여하는 것보다 빠르고 안전하게 유저를 관리할 수 있는 방법이다.
+ LOGIN_TABLE이라는 ROLE을 만들고, JISUNG 유저에게 권한을 부여하는 방법
-- SYSTEM 연결
CONN SYSTEM/MANAGER
-- 롤 생성
CREATE ROLE LOGIN_TABLE;
-- 권한 부여
GRANT CREATE SESSION, CREATE TABLE TO LOGIN_TABLE;
-- JISUNG 유저에게 권한 부여
GRANT LOGIN_TABLE TO JISUNG;
+ CASCADE
해당 유저가 생성한 하위 오브젝트까지 삭제하는 옵션
DROP USER JISUNG CASCADE;
[관련 글 보러가기]
- [자격증 / SQLD] SQL 기본(2)_WHERE 조건절(연산자)과 함수
- [자격증 / SQLD] SQL 기본(3)_GROUP BY, ORDER BY, 조인(JOIN)
- [자격증 / SQLD] SQL 활용(1)_표준 조인과 집합 연산자
- [자격증 / SQLD] SQL 활용(2)_계층형 질의, 서브쿼리
- [자격증 / SQLD] SQL 활용(3)_그룹 함수와 윈도우 함수
- [자격증 / SQLD] SQL 활용(4)_절차형 SQL
[참고자료]
https://dataonair.or.kr/db-tech-reference/d-guide/sql/?pageid=4&mod=list
SQL – DATA ON-AIR
dataonair.or.kr
'Certificate > SQLD' 카테고리의 다른 글
[자격증 / SQLD] SQL 활용(1)_표준 조인과 집합 연산자 (1) | 2023.10.29 |
---|---|
[자격증 / SQLD] SQL 기본(3)_GROUP BY, ORDER BY, 조인(JOIN) (0) | 2023.10.29 |
[자격증 / SQLD] SQL 기본(2)_WHERE 조건절(연산자)과 함수 (1) | 2023.10.29 |
[자격증] SQLD 실습준비(2)_디비버(dbeaver) 설치하고, 오라클(oracle)에 연동하기 (ft. 윈도우 환경) (1) | 2023.10.26 |
[자격증] SQLD 실습준비(1)_도커(docker)에 오라클(oracle) 설치하기 (ft. 윈도우 환경) (1) | 2023.10.26 |