목록DataBase (24)
만족
Data Modeling을 위한 기본 개념에 무지하다면 아래 포스트를 읽어보고 오는 것을 추천한다. https://satisfactoryplace.tistory.com/232 [Database] Data Modeling (ER Modeling) 관계형 DB를 설계할 때 가장 많이 사용되는 기법으로 ER Modeling이 있다. ER Modeling은 이름에서부터 알 수 있듯이, Entity와 Relation을 이용해 현실 세계를 묘사한다. Entity Entity는 개체라고도 하며, 단독 satisfactoryplace.tistory.com Attribute ER 다이어그램이 Entity를 위와 같이 표현한 것과 달리, Crow Foot Notation에서는 아래와 같이 표현한다. 개체 표현이 더 간소화..
관계형 DB를 설계할 때 가장 많이 사용되는 기법으로 ER Modeling이 있다. ER Modeling은 이름에서부터 알 수 있듯이, Entity와 Relation을 이용해 현실 세계를 묘사한다. Entity Entity는 개체라고도 하며, 단독으로 존재할 수 있으며 다른 개체와 구별되는 object이다. 개체는 이름과 애트리뷰트를 갖는다. 이름은 개체의 이름이고, 애트리뷰트는 개체가 가질 수 있는 속성이다. 예를 들어, 사람이라는 개체는 성별, 나이, 키, 몸무게라는 애트리뷰트를 가질 수 있다. Attribute 첫 번째로 애트리뷰트는 단순 애트리뷰트와, 복합 애트리뷰트로 나눌 수 있다. 가령 사람의 나이라는 애트리뷰트는 더 이상 나눌 수 없는 단순 애트리뷰트이지만, 사람의 거주지 주소라는 애트리뷰트..
부속질의문(Sub-query): 다른 SELECT 문에 포함되어지는 SELECT 문 중첩질의문(Nested-query): 하나 이상의 부속질의문을 포함하는 SELECT 문 SELECT * FROM ( SELECT * FROM Person WHERE city='서울' ) P WHERE name='홍길동'; => 서울에 사는 사람들 중 이름이 홍길동인 사람 모두 출력 에서 붉은색이 중첩질의문, 초록색이 부속질의문이다. 너무 용어에 얽메일 필요는 없다. 주의할 점은 부속질의문의 결과를 외부에서 사용(참조)하고자 할 때는 반드시 부속질의문에 Alias를 붙여주어야 한다는 점이다 SELECT 절의 부속질의문 SELECT city, (SELECT count(*) FROM Person ip WHERE ip.perso..
조인에 개념에 대해 아예 무지한 상태라면 아래 포스트를 읽고 오는 것을 추천한다. satisfactoryplace.tistory.com/201?category=933598 [Database] 관계대수 (Relational Algebra): 조인(JOIN), 외부 합집합(OUTER UNION) 세타조인, 동일조인, 자연조인, 세미조인, 외부조인에 대해 알아보자. 조인은 기본적으로 두 개의 릴레이션에 대해 진행하는 연산으로 이항 연산자이며, 두 개의 릴레이션에서 공통된 애트리뷰 satisfactoryplace.tistory.com SQL에서 조인은 2개 이상의 테이블에 대해 특정 조건을 만족하는 rows끼리 결합하여 새로운 테이블을 만드는 연산이다. 이 때 대상 테이블은 서로 같을 수도 있고, 다를 수도 있..
집계함수: Aggregation 집계 함수는 말 그대로 어떤 열에 대해, 여러개의 행을 집계한 값을 반환한다. SELECT COUNT(*) FROM student; 와 같이 사용하면 결과값의 행은 1개이고, 거기에 student 행의 갯수를 출력한다. count(*) 3 단, 집계 함수를 사용하면 SELECT 출력에서 일반 열은 사용할 수 없고 집계 함수만 사용할 수 있다. 집계 함수의 종류 MAX(열 이름): 해당 열의 최댓값 출력 AVG(열 이름): 해당 열의 평균값 출력 MIN(열 이름): 해당 열의 최솟값 출력 등 여러가지가 있다. 집계 함수에서 DISTINCT 단순히 집계함수(열 이름)하면 모든 열에 대해 계산한 값을 하나의 행에 전달한다. category hospital_name city 정형..
이번에는 열 이름 위치에 추가적으로 사용할 수 있는 DISTINCT와 ALIAS에 대해 알아보겠다. DISTINCT 해당 열의 중복을 제거하는 방법이다. 가령 학교 학생의 과 정보를 저장하는 major 테이블이 아래와 같다고 해보자 student_id major_name 1234 컴퓨터공학 1234 화학공학 9999 기계공학 8888 전자공학 이 테이블에서 학번 리스트를 중복 없이 뽑고 싶다면 SELECT student_id FROM major; 가 아닌 SELECT DISTINCT student_id FROM major; 를 사용해 중복되는 student_id(1234)를 한 번만 표시할 수 있다. ALIAS 열 이름이 지저분하다거나, 테이블 형태를 바꿀 수 없는데 열 이름이 부적절한 상황, 두 개 이..
셀렉트는 일정 조건에 따라 새로운 테이블을 만드는 키워드이다. SELECT 열이름[, 열이름2, ...] FROM 테이블이름 [WHERE 조건식1 ...] [ORDER BY 열이름 [ASC|DESC]] [LIMIT 출력행갯수]; 일단 간단한 서식은 위와 같다. ([]는 생략 가능하다) student_id student_name 1 홍길동 2 길동홍 3 동홍길 (student 테이블) SELECT student_name FROM student; student_name 홍길동 길동홍 동홍길 (쿼리 실행 결과; 열 이름에 student_name만 입력했기 때문에 위와 같이 나온다) WHERE 조건식 WHERE 조건식 을 나열하여 원하는 row만 출력할 수도 있다. SELECT student_name FROM ..
테이블의 생성: CREATE CREATE TABLE 테이블이름( 열이름1 타입 [키 타입] [기본값] [on update 값], 열이름2 타입 [키 타입] [기본값] [on update 값], ... [constraint 제약사항 이름 check(조건식)], ... ); []로 된 부분은 선택사항이다. 위 문법을 이용해 간단한 테이블을 생성해보자 CREATE TABLE student( student_id integer PRIMARY KEY, student_name varchar(3) NOT NULL, semester int integer DEFAULT 1, enter_date datetime DEFAULT NOW() ON UPDATE NOW(), constraint SEMESTER_CONST check(..