그룹함수의 실행 결과는 하나이기 때문에 단순 컬럼과 그룹 함수는 SELECT절에서 동시 사용이 불가능하다. 이 때, GROUP BY절을 사용하여 단순 컬럼을 그룹으로 묶으면 동시 사용이 가능하다. GROUP BY 절 GROUP BY는 특정 컬럼값을 기준으로 그룹으로 묶을 때 사용하는 방법이다. 주로 ~별 로 표현된다. (대표적으로 부서별, 성별, 직급별 또는 학년별) 💡 GROUP BY절을 작성할 때 알아야 될 작성 지침 SELECT절 뒤에 사용할 수 있는 컬럼은 GROUP BY뒤에 작성된 컬럼이거나 그룹함수가 적용된 컬럼만 사용 가능 WHERE 절에는 그룹함수를 사용할 수 없다. WHERE 절을 사용하여 행을 그룹으로 그룹핑(Grouping)하기 전에 제외 시킬 수 있다. 그룹으로 묶은 후 행을 제외 ..
그룹 함수는 여러 행 또는 테이블 전체에 대해 함수가 적용되어 하나의 결과를 반환하는 함수를 의미한다. 함수 설명 SUM 해당 컬럼의 총 합계 AVG 해당 컬럼의 평균 MAX 해당 컬럼의 최대값 MIN 해당 컬럼의 최소값 COUNT 행의 개수를 카운트 SELECT SUM(salary) 총액, TRUNC(AVG(salary)) 평균, MAX(salary) 최대값, MIN(salary) 최소값 FROM employees; COUNT 함수 COUNT( DISTINCT | ALL | 컬럼명 | * ) COUNT 함수에 특정 컬럼을 지정하면 널(null)값을 제외한 해당 컬럼값이 가지고 있는 행의 개수를 반환한다. 만약 DISTINCT 키워드를 사용하면 중복된 행을 제외하고 행의 개수를 반환하게 된다.
단일행 함수(Single-Row Function) 란 모든 행에 대해서 각각 적용되어 행의 개수와 동일한 개수를 반환하는 함수를 의미한다. SELECT WHERE ORDER BY절에 사용 가능하다. 문자처리 함수 함수 설명 INITCAP() 첫 글자만 대문자로 변환 UPPER() 모든 글자를 대문자로 변환 LOWER() 모든 글자를 소문자로 변환 CONCAT() 두 개의 문자열을 연결 LENGTH() 문자열의 길이 반환 INSTR() 특정 문자의 위치 반환 SUBSTR() 문자의 일부분 반환 REPLACE() 특정 문자열을 치환 LPAD() 오른쪽 정렬 후 왼쪽에 생긴 빈 공백에 특정 문자 채우기 RPAD() 왼쪽 정렬 후 오른쪽에 생긴 빈 공백에 특정 문자 채우기 LTRIM() 왼쪽에서 특정 문자 삭제..
객체 의미 💡 Table 데이터 저장소 💡 Index 테이블의 검색을 빠르게 💡 View 여러 테이블의 데이터를 조회하는 가상 테이블 💡 Sequence 테이블의 특정 컬럼값을 자동으로 넘버링 💡 Synonym 테이블 접근 시 별칭 지정하여 보안 강화 테이블 (Table) 가장 기본이 되는 객체, 데이터 저장소 Row와 Column으로 구성 CREATE TABLE 테이블명 ( ) 인덱스 (Index) 테이블에 있는 데이터를 빨리 찾기 위한 용도의 객체 단일 인덱스와 결합 인덱스 : 인덱스 구성 컬럼 개수에 따른 분류 UNIQUE 인덱스 NON-UNIQUE 인덱스 : 유일성 여부에 따른 분류 B-tree 인덱스 비트맵 인덱스 함수기반 인덱스 : 인덱스 내부 구조에 따른 분류 -- 인덱스 생성 CREATE ..
Oracle SQL 함수의 종류로는 단일행 함수와 그룹함수가 있다. 단일행 함수 모든 행에 대해서 각각 적용되어 행의 개수와 동일한 개수를 반환하는 함수이다. SELECT WHERE ORDER BY 절에 사용 가능하다. [SQL] 단일 행 함수 (Single-Row Funtion) 단일행 함수(Single-Row Function) 란 모든 행에 대해서 각각 적용되어 행의 개수와 동일한 개수를 반환하는 함수를 의미한다. SELECT WHERE ORDER BY절에 사용 가능하다. 문자처리 함수 함수 설명 INITCAP() 첫 gangintheremark.tistory.com 그룹 함수 여러 행 또는 테이블 전체에 대해 함수가 적용되어 하나의 결과를반환하는 함수이다. [SQL] 그룹 함수 그룹 함수는 여러 행..
기본적으로 테이블에 저장된 데이터는 정렬되어 있지않다. 따라 데이터를 조회할 때 특정 컬럼을 기준으로 정렬해서 검색해야 한다. ORDER BY의 옵션으로 오름차순인 ASC와 내림차순인 DESC 가 있으며 기본은 오름차순이다. 수치데이터 정렬 -- 월급이 가장 높은 순서로 출력 SELECT employee_id,last_name, salary FROM employees ORDER BY salary DESC; -- 별칭(alias)으로 지정 가능 SELECT employee_id,last_name, salary as 월급 FROM employees ORDER BY 월급 DESC; -- SELECT 절에서 지정된 컬럼의 순서값으로 지정 가능 SELECT employee_id,last_name, salary a..
SELECT문에 WHERE절을 추가하여 특정 조건에 일치하는 데이터만 조회할 수 있다. 비교 연산자 두 개의 값을 비교할 때 사용하는 연산자를 비교 연산자라 한다. = != ^= > >= '07/12/31'; 💡 Oracle은 기본적으로 날짜 데이터를 RR/MM/DD 형식으로 관리한다 💡 SQL문은 대소문자를 구별하지 않지만 데이터 값인 리터럴은 대소문자를 구별한다. BETWEEN a AND b 연산자 -- 월급이 7000과 8000 사이에 있는 사원 조회 SELECT employee_id,last_name FROM employees WHERE salary BETWEEN 7000 AND 8000; -- 2007년부터 2008년 사이에 입사한 사원 조회 SELECT employee_id,last_name ..
✨ SELECT문 구조 ✨ SELECT FROM [WHERE 조건식] 👉 WHERE 바로가기 [GROUP BY 단순 컬럼] 👉 GROUP BY 바로가기 [HAVING 조건식] 👉 HAVING 바로가기 [ORDER BY 표현식]; 👉 ORDER BY 바로가기 SELECT문은 데이터베이스에 저장된 데이터를 검색할 때 사용되는 SQL문장으로 DQL (Data Query Lanuage) 라고 한다. SELECT와 FROM키워드를 기본으로 사용하며 SELECT 키워드는 원하는 컬럼을 지정할 때 사용되고 FROM은 데이터가 저장된 테이블명을 기술할 때 사용된다. 모든 데이터 조회 -- * 은 모든(all) 컬럼을 의미하기 때문에 모든 데이터가 검색 SELECT * FROM 테이블명; 특정 데이터 조회 SELECT ..
제약조건(constraint)이란 테이블에 부적절한 자료가 입력되는 것을 방지하기 위해서 데이터에 제한을 두는 것 제약조건 타입 설명 💡 primary key - 레코드를 식별하기 위한 용도 - unique & Not Null - 테이블 당 하나만 지정 - 자동으로 인덱스 생성 💡 unique - 컬럼에 유일한 값을 저장하기 위한 용도 - NULL 값 지정 가능 - 테이블 당 여러개 지정 💡 not null - 컬럼에 반드시 값을 저장해야 하는 용도 - 테이블 당 여러개 지정 - 컬럼 레벨로만 지정 가능 💡 check - 컬럼에 임의의 조건에 일치하는 데이터만 저장하기 위한 용도 - 테이블 당 여러개 지정 💡 foreign key - 하나의 테이블에서 다른 테이블을 참조하기 위해 사용되는 용도 - 테이블..
릴레이션 튜플(행)들의 집합 릴레이션 스키마 내포 : 릴레이션의 이름과 릴레이션의 애트리뷰트들의 집합 💡 표기법 : 고객정보(고객 아이디, 고객이름, 나이, 등급, 직업, 적립금) 릴레이션 인스턴스 외연 : 릴레이션 스키마가 아닌 튜플들의 집합 튜플 Tuple (= 레코드) 테이블에서 행을 의미 속성 Atrribute (= 필드, 컬럼) 테이블에서 열을 의미 도메인 Domain 한 애트리뷰트에 나타날 수 있는 값들의 집합 차수 degree 릴레이션의 속성의 수 카디널리티 Cardinality 릴레이션의 튜플의 수 💡 위 테이블의 카디널리티는 4
데이터베이스 란? 데이터베이스는 많은 사람들이 공유해서 사용할 목적으로 통합 관리되는 정보(데이터)의 집합을 의미한다. 단순하게 통합만 하는 것이 아니고 논리적으로 연관시키고 구조화함으로써 자료의 중복을 없애고 검색과 갱신을 효율적으로 처리되도록 관리된다. 데이터베이스 관리 시스템 데이터베이스 관리 시스템 (DBMS, DataBase Management System)은 데이터베이스에 적재된 데이터 작업을 수행할 뿐만 아니라 데이터베이스를 보호하고 보안을 제공한다. 관계형 데이터베이스 관계형 데이터베이스(RDB, Relational DB)는 행과 열로 이루어진 각각의 테이블을 고유값을 참조하여 서로 종속되는 관계를 표현하는 데이터 베이스 구조이다. 대표적은 관계형 데이터베이스 관리 시스템으로는 Oracle..
잘못된 설계로 인한 이상(Anomaly) 💡 삭제 이상 : 하나의 데이터를 삭제하면 다른 데이터도 같이 삭제됨 ex. 200번 학생이 'C123' 과목을 등록 취소 → 200번 학생의 학년정보 소실 💡 삽입 이상 : 불필요한 정보를 채워서 삽입해야함 ex. 학번이 600, 이름이 홍길동, 2학년, 전기과인 학생 정보를 삽입 → insert into 수강 values(600, 'NONE', 'N', 2, '홍길동','전기') 💡 갱신 이상 : 하나의 속성값을 변경하려면 여러개의 투플을 갱신해야함 ex. 400번 '송병길'의 학년을 4에서 3으로 변경 → 4개의 투플을 모두 갱신해야함 정규화의 필요성 Anomaly가 발생한 이유 : 상이한 종류의 정보를 하나의 릴레이션으로 표현했기 때문 정규화 : 속성들 간..