본문 바로가기

Database

05.02. 집계와 서브쿼리 - 서브쿼리 서브쿼리서브쿼리는 SELECT 명령에 의한 데이터 질의로, 상부가 아닌 하부의 부수적 질의를 의미합니다.서브쿼리를 지정하는 방법은 간단하게 SELECT 쿼리를 괄호로 묶어서 SELECT / FROM / WHERE 구 등에서 사용할 수 있습니다.스칼라 값서브쿼리를 다른 구에서 사용하는 것을 설명하기전에 스칼라 값이라는 것에 대해 설명해 보겠습니다.서브쿼리를 사용할 때는 그 쿼리가 어떤 값을 반환하는지 주의할 필요가 있습니다. SELECT 쿼리를 실행 시 여러가지 패턴들이 나올수 있지만 일반적인 패턴에 대해 아래 표에 설명하겠습니다. #쿼리설명1SELECT MIN(컬럼) FROM 테이블명하나의 값을 반환2SELECT 컬럼 FROM 테이블명하나의 컬럼에 복수의 레코드3SELECT MIN(컬럼1), MAX(컬럼.. 더보기
05.01. 집계와 서브쿼리 - 집계 집계 함수이번에는 대표적인 집계 함수 COUNT, SUM, AVG, MIN, MAX와 GROUP BY를 사용하여 그룹화하는 방법을 알아보겠습니다.SQL은 집합을 다루는 집계함수를 제공합니다. 일반적으로 함수는 파라미터로 하나의 값을 지정합니다. 하지만 집계함수의 경우는 파라미터로 집합을 지정합니다.여기서 얘기하는 집계함수의 파라미터로 집합을 지정한다는 말이 쉽게 이해하기 어려울 수 있습니다. 이것에 대해서는 COUNT에서 한번 설명해 보겠습니다.COUNTCOUNT 함수는 파라미터로 주어진 집합의 개수를 반환합니다. 1SELECT COUNT(컬럼명) FROM 테이블명 WHERE 조건식;[표 1. COUNT 함수의 사용 방법] 간단합니다. 뭘 어떻게 더 설명하기 어려울 정도로 간단합니다. 추가로 설명을 하면.. 더보기
04. 데이터의 추가, 삭제, 갱신 INSERT이전 글들은 SELECT를 활용해서 데이터를 검색하는 것이었다면 지금은 데이터를 입력할 때의 방법을 설명하겠습니다. 우리가 게시판을 하나 만들었다고 한다면 최초 서비스가 올라갔을 때는 게시글이 하나도 없을 것입니다. 그러면 우리는 ‘글쓰기' 또는 ‘만들기’와 같은 버튼을 클릭했을 때 데이터 추가 기능을 사용할 것입니다. 여기서 사용하는 것이 INSERT라고 생각하면 됩니다.INSERT로 레코드 추가하기RDBMS에서는 INSERT 명령으로 레코드 단위로 데이터를 추가합니다. 1INSERT INTO 테이블명 VALUES (값1, 값2, 값3 ...);[표 1. INSERT를 사용하는 방법] 해당 쿼리의 형식으로 실행 시 지정한 테이블에 레코드가 추가됩니다. INSERT 쿼리는 실행을 하면 처리 상.. 더보기
03.02. 정렬과 연산 - 연산 수치 연산SQL은 기본적으로 계산 기능을 포함하고 있습니다. 이번에는 이런 계산하는 기능을 사용하는 방법 중 수치 데이터의 연산에 대해 이야기 하겠습니다. 수치 연산을 하는 산술 연산의 경우는 다른 프로그래밍에서도 사용하는 기본 개념이니 기존에 프로그래밍을 하셨던 분들은 익숙하실 수 있고, 처음 접하시는 분은 이번에 잘 알아두길 바랍니다.사칙 연산사칙 연산은 우리가 알고 있는 덧셈, 뺄셈, 곱셈, 나눗셈에 한가지 더 있다면 나눗셈의 나머지를 구하는 것 입니다. 연산자는 기호로 표기하고 아래 표로 정리해 보겠습니다. 연산자연산예+덧셈1+2 → 3-뺄셈1-2 → -1*곱셈1*2 → 2/나눗셈½ → 0.5%나머지1%2 → 1[표 9. 산술 연산자] [표 9]의 연산자들은 여러 데이터베이스에서 동일하게 사용합니.. 더보기
03.01. 정렬과 연산 - 정렬 정렬 - ORDER BYSELECT 쿼리에서 ORDER BY를 지정하면 검색 결과의 행 순서를 바꿀 수 있습니다.검색 결과 정렬SELECT 쿼리의 ORDER BY 뒤에 정렬하고 싶은 컬럼을 지정하면 지정된 컬럼을 기준으로 레코드를 정렬합니다.ORDER BY는 아래 표와 같이 두가 방법으로 사용이 가능합니다. 1SELECT * FROM 테이블 ORDER BY 컬럼명2SELECT * FROM 테이블 WHERE 조건식 ORDER BY 컬럼명[표 1. ORDER BY 의 사용 위치] [표 1]에서 보듯이 별도 검색 조건이 없을 경우에는 테이블명 바로 뒤에 지정하면 됩니다.내림차순 정렬ORDER BY는 별도 옵션 지정이 없다면 오름차순 정렬을 기본으로 합니다.내림차순으로 정렬해야 할때는 “ORDER BY 열명” .. 더보기
02.04. 테이블에서 테이터 검색 - 검색 조건 조합 및 패턴 매칭 검색 조건 조합SELECT 쿼리를 사용하여 검색 시 실제로는 하나의 조건만 사용하는 경우보다 2개 이상의 조건식을 조합해 검색하는 경우가 많이 있습니다. 이렇게 조건식을 조합할 때 사용하는 AND, OR, NOT 3가지에 대해서 알아 보겠습니다.AND 조건복수 조건을 조합할 때 AND를 많이 사용합니다. AND는 논리 연산자의 하나로 좌우에 항목이 필요한 이항 연산자입니다.좌우의 조건식이 모두 참일 경우 AND는 참을 반환합니다. 그래서 좌우 조건식, 즉, 모든 조건을 만족할 경우 조건식은 참이된다라고 할 때 AND를 사용합니다. “SELECT * FROM 테이블명 WHERE 조건식1 AND 조건식2;” AND는 위와 같은 문법으로 사용합니다. AND 연산은 조건을 만족하는 레코드을 집합으로 표현했을 때.. 더보기
02.03. 테이블에서 데이터 검색 - 검색 조건 지정 검색 조건 지정데이터베이스의 테이블에는 컬럼이 많이 있습니다. 한번에 화면에 표시하여 확인할 수 있는 데이터의 양은 한정되어 있습니다. 컬럼이나 레코드를 선택해서 데이터를 읽어오는 검색이 빈번하게 일어 납니다.이번에는 컬럼이나 열을 선택해서 테이블의 데이터를 조회하는 방법에 대해 알아보겠습니다. SELECT 구에서 컬럼 지정여기서는 데이터베이스의 테이블에서 자신이 원하는 컬럼들을 한정하여 검색하는 방법에 대해 알아보겠습니다. 결과로 표시하고 싶은 컬럼을 지정할 수 있습니다. “SELECT 컬럼1, 컬럼2, 컬럼3, … FROM 테이블 명; 이전에 제가 올렸던 글에서 보면 샘플 데이터에서 컬럼의 정보들을 가져올때는 애스터리스크(*)를 사용하여 모든 컬럼을 표시하였습니다. 컬럼을 한정하기 위해서는 * 부분을.. 더보기
02.02. 테이블에서 데이터 검색 - 테이블 구조 참조 테이블 구조 참조 여기서부터는 지금까지 열이라고 했던것을 컬럼이라고하겠습니다. 자꾸 열로 쓰다보니 글을 정리하면서도 헷갈려서 지금부터는 컬럼으로 하겠습니다. SELECT 명령으로 테이블의 데이터를 읽어봤습니다. 테이블은 여러개의 컬럼으로 구성 됩니다. 뒤에서 설명하겠지만 SELECT 쿼리는 조건을 지정하여 특정 컬럼의 값을 불러올 수 있습니다. 그래서 테이블에 어떤 컬럼들이 있는지 참조할 수 있다면 SELECT 쿼리를 작성하기 수월해 집니다. 그럼 테이블의 구조는 어떻게 참조하는지 알아보겠습니다.DESC 명령DESC 쿼리를 사용하면 테이블에 어떤 컬럼이 정의되어 있는지 확인할 수 있습니다. [그림 2. DESC 쿼리 실행 화면] DESC쿼리를 실행했을 때 위 [그림 2]와 같은 결과를 볼 수 있습니다. .. 더보기
02.01. 테이블에서 데이터 검색 - SELECT 명령 이번에는 Select 명령을 이용한 데이터 검색에 대해 설명해 보겠습니다.이제부터 모든것은 Mysql을 기준으로 설명하겠습니다. Select 명령SQL에서는 아래와 같이 기본적인 구조의 Select 명령어를 사용할 수 있습니다. “SELECT * FROM 테이블명;" 이 구조를 가지고 계속 설명을 하겠습니다.위 명령문을 가지고 mysql에서 실행시 테이블명에 해당하는 테이블에서 데이터를 검색하여 결과를 보여줍니다.[그림 1. 명령어 실행 화면] 명령어들은 우리가 흔히 ‘질의' 또는 ‘쿼리'라고 부릅니다. 앞으로는 쿼리라는 명칭으로 통일하겠습니다. 그러면 위 그림에서 실행한 쿼리를 한번 살펴 보겠습니다. 예약어테이블명 SELECT*FROMexam01;쿼리의 종류모든 컬럼~테이블로부터테이블 명쿼리의 마지막[.. 더보기
01. 데이터베이스와 SQL 데이터베이스란?데이터 : 컴퓨터 안에 기록되어 있는 숫자데이터베이스 : 데이터의 집합 넓은 의미에서 컴퓨터 안에 기록되는 모든 것이라고 생각할 수 있고 일반적으로 통용되는 데이터베이스의 개념은 특정 데이터를 확인하고 싶을 때 간단하게 찾아낼 수 있도록 정리된 형태를 가리킵니다. 데이터베이스 내의 데이터는 영구적으로 보존되어야 합니다. 주기억장치에만 데이터를 저장한다면 저장하는 순간 데이터는 날아갑니다. 그러면 영구적이라고 할 수 없습니다. 그래서 데이터베이스의 데이터는 하드디스크와 같은 비휘발성 저장장치에 저장합니다. 데이터베이스는 데이터센터에 있을 수 있지만 우리의 주변에도 밀접하게 있습니다. 웹서버를 통해서 데이터베이스에 접근할 수 있고, 우리가 사용하는 휴대전화에도 데이터베이스가 사용되고 있습니다... 더보기