본문 바로가기

DataBase

(8)
SQL - Set Operator(집합 연산자) SQL에는 집합 개념을 이용한 Union(합집합), Intersect(교집합), Except(차집합) 연산자가 존재한다. 먼저 union 연산자 부터 살펴보자. Union 연산자는 연결된 select문의 결과 값을 합집합으로 묶어준다. 조회된 데이터에 대해서 기본적으로 중복을 허용하는 Relation Algebra나 SELECT문과는 달리 SET operator에서는 데이터의 중복을 허용하지 않기 때문에, Union 연산의 결과 값은 중복이 제거되어 있다. 아래 사진을 보자. 실제로 조회된 결과를 보면 college의 이름과 student의 이름이 같이 존재하는 것을 확인할 수 있다. 이때 출력된 데이터의 column이름을 확인하면 Cname으로 되어있는 것을 볼 수 있다. 즉 union연산에서는 먼저 ..
SQL - natural join, cross join, self join natural join은 Equi join과 유사하다. natural join에서는 조인 조건을 기술하지 않아도 자동으로 두 테이블의 이름과 자료형이 같은 공통 컬럼을 찾아서 조인(equi join)한다. 또 select 절에 테이블 명을 기술하지 않고 검색하는 것이 가능하다. 아래의 사진을 살펴보자. natural join에서는 equi join과 같이 테이블을 조인시킬 조건을 명시해주지 않아도 알아서 공통 컬럼을 찾아서 조인해주어, 두 쿼리문의 결과가 일치하는 것을 볼 수 있다. 하지만 natural join에는 하나의 제약이 따른다. natural join은 테이블을 조인 시킬 때, 이름이 같은 모든 컬럼을 조인 조건으로 사용한다. 만약 두개의 테이블에서 두개의 컬럼이 공통된다면, 두개의 컬럼 모두..
SQL - Equi Join(등가 조인) 과 non Equi Join(비등가 조인) 데이터 베이스에서는 여러가지의 join이 존재한다. 연산자에 따라 join 방식을 분류하면, equi join/non equi join으로 나뉘게 되고, from절의 join 형태에 따라 분류하면 inner join, outer join으로 나뉘게 된다. 오늘은 연산자에 대한 join 방식을 알아보겠다. 먼저, Equi join이란 두 테이블에서 공통적으로 존재하는 컬럼의 값의 행을, 즉 특정 Attribute의 tuple 값이 일치하는 경우 해당 행을 연결하여 데이터를 조회하는 방법이다. 아래 사진을 살펴보자. 위 쿼리를 보면 먼저 student 테이블과 apply 테이블의 공통되는 column에서 같은 값을 가지는 데이터에 한해서 조회를 하고 있다. 물론 같은 컬럼으로 table을 조인시키고 나면, ..
SQL - Alias/Order by/Like 키워드를 이용한 SELECT 문 해당 키워드들을 설명하기에 앞서 아래 SQL문과 조회된 결과를 확인해보자. 제대로 결과가 출력되었지만, 위 쿼리문을 봐서는 직관적으로 어떤 데이터를 찾는지 확인하기 힘들고, 테이블 이름이 길어지면 길어질수록 적어야 할 쿼리문의 길이가 늘어질 것이다. 따라서 우리는 Alias(별칭) 키워드를 사용하는데, 해당 키워드를 사용하면 긴 SQL문을 비교적 간편하게 만들 수 있다. 아래 쿼리문을 확인해보자. 첫번째 쿼리문과 비교했을 때, 조회된 결과는 동일하지만, 쿼리문이 간편해진것을 확인할 수 있다. 실제로 쿼리문을 작성할 때, 보통 테이블의 이름이 긴 경우 직관적이고 짧은 이름의 Alias를 이용하여 쿼리를 간결하게 만든다. alias는 테이블 뿐만 아니라, 컬럼에도 적용할 수 있다. 컬럼에 Alias를 사용하..
SQL - 테이블 JOIN을 이용한 SELECT문 두개의 테이블을 연결(결합)하여 데이터를 출력하는 것을 JOIN이라고 한다. 관계형 데이터베이스에서는 조인을 통해 여러 테이블의 데이터를 하나의 테이블의 데이터처럼 조회할 수 있다. SELECT 테이블1.칼럼명, 테이블2.칼럼명, ... FROM 테이블1, 테이블2 WHERE 테이블1.칼럼명1 = 테이블2.칼럼명2; (WHERE 절에 JOIN 조건을 표시) 위 형식은 일반적인 (Inner Join) 조인의 형식이며, 키 값이 있는 테이블의 컬럼 값을 비교한 후 조건에 맞는 값을 가져온다. 즉 연관이 있는 테이블의 데이터를 조회하는 조인 방법이다. 여기서 Equal 연산자(=)만을 사용했기 때문에 Equal Join이라고도 한다. 이제 아래 두 테이블을 이용히여 join을 통해 데이터를 조회해보자. 먼저 ..
SQL - SELECT문 SELECT문은 DB에 존재하는 데이터들을 조회하는데 사용한다. SELECT문은 기본적으로 select절과 from절을 기본 구성으로 하고 있고, where절을 통해 데이터를 조회할 때 조건을 걸어준다. SELECT A1,A2,...,An(Attribute) FROM R1,R2,...,Rm(Table list) WHERE condition 테이블에 존재하는 모든 Attribute(Column)에 대하여 데이터를 출력해주고 싶다면, attribute을 나열하지 않고, '*' 을 통해서 쿼리문을 실행시키면 된다. (ex, SELECT * FROM employees) Student table로 기본 SELECT문을 연습해보자. 여기서 GPA가 3.6이상인 학생들의 모든 정보(Attribute)를 출력해보자. ..
관계형 모델(Relational Model) 데이터 모델이란 데이터를 저장하는 방식을 정의한 개념 모형이다. 종류로는 계층형, 관계형, 객체 지향형 등이 있는데 이번에 볼 것은 이 중 관계형 모델이다. 관계형 데이터 모델은 1970년 E.F.Codd가 제안한 모델로서 수 십년동안 주류 데이터베이스 모델로 성장해 왔다. 이 관계형 데이터 모델(관계형 데이터베이스) 즉, RDB(Relational DataBase)는 데이터 간의 관계에 초점을 두고 있으며 키와 값들의 간단한 관계를 테이블화 시킨 매우 간단한 원칙의 개념의 데이터베이스이다. 일련의 정형화된 테이블로 구성된 데이터 항목들의 집합이며 각 테이블은 데이터의 성격에 따라 여러 개의 컬럼(키)이 포함된다. (관계형 데이터베이스를 관리하는 DBMS는 RDBMS라고 불리우며 Oracle, MySQL..
Database와 DBMS 데이터베이스란 여러 응용 시스템(프로그램)들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터의 집합으로, 효율적인 관리와 검색을 할 수 있게 해준다. 여러 사람들이 공유하면서, 효율적인 데이터 관리를 위해서(데이터의 저장, 검색, 갱신) 데이터베이스는 데이터를 통합하여 관리하여야 하고, 데이터 집합들끼리 연관시키고 조직화 되어야 한다. 물론 데이터의 누락을 방지해야하며, 중복도 제거해야한다. * 데이터베이스의 특성 1. 실시간 접근성 -> 사용자의 요구를 즉시 처리할 수 있다. 2. 계속적인 변화 -> 정확한 값을 유지하려고 삽입, 삭제, 수정 작업 등을 이용해 데이터를 지속적으로 갱신할 수 있다. 3. 동시 공유성 -> 사용자마다 서로 다른 목적으로 사용하므로 동시에 여러 사람이 동일한 데이터에..