9절 JOINJOIN여러 테이블을 연결 또는 결합하여, 데이터를 출력하는 것일반적으로 PK 혹은 FK의 연관성에 의해 성립 등가 조인SELECT 칼럼명 FROM 테이블1 A, 테이블2 B WHERE A.칼럼명=B.칼럼명; 두 테이블의 칼럼 값이 정확하게 일치하는 경우, 대부분 PK와 FK 관계를 기본으로 함컬럼들은 A.컬럼명, B.컬럼명 등으로 나타낼 수 있음비등가 조인두 테이블의 컬럼 값이 정확히 일치하지 않는 경우 사용하며 , BETWEEN 등의 비교연산자 사용SELECT 컬럼명 FROM 테이블1 A, 테이블2 B WHERE A.컬럼명 연산자 B.컬럼명; 최종 수정일 : 2025/03/07틀린 사항이 있다면 댓글로 알려주시면 감사하겠습니다.
8절 ORDER BYORDER BY 절SELECT [DISTINCT] 컬럼명 [AS 별칭] FROM 테이블명 WHERE 조건식 GROUP BY 컬럼명/표현식 HAVING 그룹의 조건식 ORDER BY 컬럼명 [ASC/DESC];특정 컬럼을 기준으로 결과를 정렬하기 위해 사용하는 SQL 구문기본 옵션을 명시하지 않으면 오름차순(ASC), 내림차순은 DESCORDER BY의 컬럼명에는 아래를 사용가능컬럼 SELECT 절에 없어도 정렬 가능 단, GROUP BY 구문이 있다면 GROUP BY에 포함된 컬럼이나 집계함수만 정렬 가능별칭SELECT 절의 컬럼순서(1,2,3..)NULL 처리--OracleORDER BY 컬럼명 NULLS [FIRST | LAST];Oracle은 NULL을 최대값, SQL Serve..
7절 GROUP BY , HAVING집계함수 (Aggregate Function)여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 함수GROUP BY 절은 행들을 소그룹화SELECT 절, HAVING 절, ORDER BY 절에 사용집계 함수의 통계 정보는 NULL 값을 가진 행을 제외하고 수행집계 함수는 WHERE 절에는 올 수 없음 (GROUP BY 절보다 WHERE 절이 먼저 수행)집계함수명( ALL | DISTINCT 칼럼/표현식 ) -- Default = ALL 주로 숫자 유형에 사용하며 MAX, MIN, COUNT 함수는 문자, 날짜에도 적용 가능벤더별로 기타 다양한 통계 함수를 제공COUNT(*) : NULL 값을 포함한 모든 행의 수를 출력COUNT(표현식) : NULL 값인 것을..
6절 함수함수 (Function)SQL을 더욱 강력하게 해주고 데이터 값을 간편하게 조작하는데 사용입력값이 아무리 많아도 출력값은 하나라는 M:1 관계라는 중요한 특징핵심적인 기능들은 이름/표기법이 벤더별로 다르지만, 기능은 비슷함함수는 다양한 기준으로 분류 가능벤더에서 제공하는 함수인 내장 함수 (Built-In Function)사용자가 정의할 수 있는 함수 (User Defined Function)내장함수 (Built-In Function)내장함수는 함수의 입력 값에 따라 단일행 함수와 다중행 함수로 나뉨단일행 함수 : 단일행 내에 있는 하나의 값 또는 여러 값이 입력 인수로 사용다중행 함수 : 여러 레코드의 값들을 입력 인수로 사용 단일행 함수Oracle 함수 / SQL Server 함수로 표시 문..
5절 WHERE 절WHERE 절SELECT * FROM [WHERE 조건문]원하는 자료만을 검색하기 위해 검색 조건을 설정WHERE 절에 조건이 없는 FTS(Full Table Scan)은 SQL 튜닝 1차 검토 대상※ 병렬 처리 등을 이용해 FTS를 유용하게 사용하는 경우도 있음 연산자비교연산자 : =, >, >=, SQL연산자 BETWEEN a AND b : a와 b 사이에 있는 값들 IN (list) : 리스트에 있는 값중에서 하나라도 일치 여부. 리스트값은 쉼표로 구분LIKE '비교문자열' : 형태 일치 여부, 와일드 카드사용% : 0개 이상의 문자열 (이름이 S로 시작하면, LIKE 'S%')_ : 1개의 단일 문자 (두번째 글자가 A라면 LIKE '_A')IS NULL : NULL 값인지의 여..
4절 트랜잭션 제어어(TCL; Transaction Control Language)트랜잭션데이터베이스의 논리적 연산단위밀접히 관련되어 분리될 수 없는 한 개 이상의 데이터베이스 조작(SQL)데이터를 수정하는 DML(UPDATE, INSERT, DELETE)은 트랜잭션의 대상SELECT FOR UPDATE 등 배타적 LOCK을 요구하는 SELECT도 트랜잭션의 대상DDL은 트랜잭션의 대상이 아님(Auto-commit)Oracle은 Auto-Commit 옵션을 꺼놔도 자동으로 커밋함SQL Server는 BEGIN TRANSACTION을 명시적으로 사용하지 않으면 DML도 트랜잭션의 관리 대상이 아님트랜잭션의 특성(ACID)원자성(Atomicity) : 트랜잭션의 연산은 모두 적용되던지, 모두 취소되어야 한다..
3절 데이터 조작어(DML; Data Manipulation Language)데이터 조작어(DML)비절차적 데이터 조작어는, 사용자가 무슨(What) 데이터를 원하는 지만을 명세👉 추후에 배울 절차적 SQL (PL/SQL, T-SQL 등)은 어떻게(How) 까지 명세함INSERTINSERT INTO 테이블명 [(컬럼1, 컬럼2, 컬럼3 ...)]VALUES (컬럼1값, 컬럼2값, 컬럼3값 ...); 데이터(레코드)를 삽입하는 SQL 구문컬럼리스트를 생략할 경우 전체 컬럼을 의미하며, VALUES에 컬럼 순서에 맞게 입력하면 된다.컬럼값의 경우, 데이터타입이 문자형에 한하여 '(작은따옴표)로 묶어서 입력UPDATEUPDATE 테이블명 SET 컬럼명 = 값;데이터(레코드)를 수정하는 SQL 구문DELETE..
2절 데이터 정의어(DDL; Data Definition Language)데이터 타입 (앞은 Oracle, 뒤는 SQL Server)CHAR(s) : 고정 길이 문자열, 할당된 변수 값의 길이가 s 이하일 때 뒷부분은 공백으로 채워짐s는 최소 1byte, Oracle은 최대 2000 / SQL Server는 최대 8000byte비교시 뒷부분의 공백을 제거해서 비교VARCHAR2(s) : 가변 길이 문자열, 할당되는 변수 값의 길이의 최대값이 s으로 실제 길이(용량)은 줄어듬s는 최소 1byte, Oracle은 최대 4000byte (12c 이후론 Extended Data Types로 32767byte 까지 가능)SQL Server는 VARCHAR(L)을 사용하며, 최대 8000byte (VARCHAR(M..
- Total
- Today
- Yesterday
- db의 역사
- 데이터베이스
- db오브젝트
- 레코드
- APS
- DBMS
- BufferedWriter
- DB
- Scanner
- oracle
- 필드
- 자료구조
- dialect
- BufferedReader
- 테이블
- StringBuilder
- 알고리즘
- Java
- 입출력
- 배열
- SQL이란
- SQL
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |