Database

· Database
테이블에 계층형 데이터가 존재하는 경우 계층형 질의를 통해 데이터를 조회할 수 있다.계층형 데이터: 동일 테이블에 상위/하위 데이터가 포함되어 있는 데이터 (ex: 사원-관리자) WITH 구문: 서브쿼리에 이름을 붙여 사용할 수 있도록 하는 명령어CTE = Common Table Expression 예시 코드 1WITH RECURSIVE CTE(member_id, manager_id, lvl)AS ( SELECT member_id, manager_id, 0 AS lvl FROM MEMBER WHERE manager_id IS NULL // 최상위 레벨의 경우 lvl을 0으로 지정 UNION ALL // 중복 제거 없이 추가 SELECT M.member_id,..
· Database
집합 연산자란?두 개 이상의 테이블에서 JOIN을 사용하지 않고 연관 데이터를 조회하는 방법 중 하나두 테이블의 컬럼 수, 컬럼의 데이터타입이 일치해야 한다. (상호 호환 가능)정렬 기능을 제공하는 경우에도 최종적으로 정렬하는 데에 ORDER BY 를 사용해야 한다.   UNION - 합집합중복된 데이터를 제거(DISTINCT)하고 정렬SELECT * FROM TABLE1UNIONSELECT * FROM TABLE2; UNION ALLUNION과 같은 기능을 수행하나 중복 제거 및 정렬을 하지 않음SELECT * FROM TABLE1UNION ALLSELECT * FROM TABLE2; INTERSECT - 교집합두 테이블의 겹치는 부분을 추출, 중복된 결과를 제거SELECT A, B FROM TABLE..
· Database
서브쿼리란? 하나의 쿼리 안에 포함된 또 하나의 종속적 쿼리 (메인 쿼리가 서브쿼리를 포함한다.) 알려지지 않은 기준을 이용한 검색에 유용하다. 메인 쿼리가 실행되기 이전에 한 번만 실행된다. 한 문장에서 여러 번 사용 가능하다. 서브쿼리 사용 시 주의사항 괄호와 함께 사용되어야 한다. 서브쿼리 내에서 ORDER BY 절은 사용할 수 없다. 연산자의 오른쪽에 사용되어야 한다. 오로지 SELECT문으로만 작성할 수 있다. 서브쿼리 기본 문법 SELECT * FROM employee WHERE 급여 > (SELECT 급여 FROM employee WHERE 이름='elice'); 반환에 따른 분류 # 단일 행 서브쿼리 결과가 한 행만 나와 1개의 값만 반환하고 메인쿼리로 전달한다. 연산자 = 같다 같지 않다..
· Database
GROUP BY - 특정 컬럼을 기준으로 그룹화 SUM, AVG, COUNT, MAX, MIN를 활용하여 데이터를 그룹화할 수 있다. SELECT user_id, SUM(컬럼명)// user_id와 컬럼의 내용을 다 더한 값을 조회 FROM rental GROUP BY user_id;// user_id가 같은 열에서 SELECT user_id, MAX(컬럼명)// user_id와 해당 컬럼이 가장 큰 값을 출력 FROM rental GROUP BY user_id; HAVING - 데이터 그룹에 조건을 적용 SELECT user_id, COUNT(*) FROM rental GROUP BY user_id HAVING COUNT(user_id) > 1;// user_id가 같은 1개 초과의 데이터의 갯수 조회..
· Database
Key란? 조건에 만족하는 튜플을 찾거나, 정렬할 때에 기준이 되는 속성 #1 기본키 - Primary Key 서로 다른 튜플을 유일하게 식별할 수 있는 기준이 되는 속성 중복된 값을 가질 수 없다. 널 값을 가질 수 없다. 테이블 당 1개만 설정할 수 있다. #2 외래키 - Foreign Key 다른 테이블의 기본 키를 참조하는 속성으로 테이블의 관계를 정의, 데이터가 일관될 수 있도록 돕는 다리 역할을 한다. 한 테이블의 필드이며, 다른 테이블의 기본이다. 각 외부키와 기본키는 1:1로 매칭되어야 한다. 참조되는 테이블의 기본키에 없는 값은 지정할 수 없다. CREATE TABLE customer( idVARCHAR(10)PRIMARY KEY, nameVARCHAR(10), address VARCHA..
· Database
#1 데이터 정의어 DDL - Data Definition Language CREATE - 테이블 생성 CREATE TABLE 테이블명( 필드명1 타입, 필드명2 타입, ... ); CREATE TABLE 테이블명( idVARCHAR(10) NOT NULL, nameVARCHAR(10) NOT NULL, address VARCHAR(30) NULL ); SHOW - 테이블 목록 조회 // 데이터베이스가 가지고 있는 테이블의 목록을 출력 SHOW TABLES; DESC - 테이블 구조 확인 // 테이블이 가진 필드, 타입, 조건 등의 구조 출력 DESC 테이블명; ALTER - 테이블 수정 // 새로운 필드 추가 ALTER TABLE 테이블명 ADD 필드명 타입 AFTER 필드명(위치); // 기존 필드 ..
ov
'Database' 카테고리의 글 목록