[SQL] 오리엔테이션

Shy·2023년 12월 28일

MySQL

목록 보기
1/7

데이터, 데이터베이스 그리고 DBMS

이 세 개념은 서로 밀접하게 연결되어 있다. 데이터는 정보의 기본 단위로, 데이터베이스에 저장되며, DBMS를 통해 관리되고 활용된다. 데이터베이스와 DBMS의 사용은 조직의 정보 관리를 극대화하고, 데이터 기반 의사결정을 가능하게 하는 핵심 요소이다.

데이터

데이터는 사실이나 정보의 원시 형태를 의미한다. 이는 숫자, 문자, 이미지 등 다양한 형태로 존재할 수 있으며, 자체적으로는 큰 의미가 없을 수도 있다. 예를 들어, 특정 날짜의 기온, 사람의 이름, 또는 이미지 파일 등이 데이터의 예시가 된다.

데이터베이스(Database)

데이터베이스는 조직적으로 구성된 데이터의 모음이다. 이는 데이터를 효율적으로 저장, 검색, 수정, 삭제할 수 있도록 돕는 구조를 가지고 있다. 예를 들어, 학교에서 학생의 성적, 출석, 개인 정보 등을 저장하는 시스템이 데이터베이스의 예가 된다. 데이터베이스는 일반적으로 표, 필드, 레코드 등으로 구성되어 있으며, 각 항목은 특정 정보를 포함한다.

데이터베이스의 특징은 다음과 같다.

  1. 자료를 구조화하여 저장하기 때문에, 효율적인 관리가 가능하다.
  2. 여러 업무에 여러 사용자가 동시에 사용 가능하다.
  3. 사용자가 데이터베이스의 기능을 사용 하기 위해서는 응용 프로그램을 활용해야 한다.

DBMS(Database Management System)

DBMS(Database Management System): DBMS는 데이터베이스를 관리하는 소프트웨어 시스템이다. 이는 데이터베이스 내의 데이터를 생성, 검색, 업데이트, 그리고 관리하는 기능을 제공한다. DBMS는 데이터의 무결성, 보안, 백업, 복구 등을 관리하여, 데이터가 안전하고 효율적으로 운영될 수 있도록 돕는다. 대표적인 예로는 MySQL, Oracle, SQL Server, PostgreSQL 등이 있다.

데이터베이스 언어와 SQL

SQL (Structured Query Language)은 데이터베이스를 관리하고 조작하기 위해 사용되는 프로그래밍 언어이다. SQL은 특히 관계형 데이터베이스 관리 시스템(RDBMS)에서 널리 사용된다. 이 언어의 주요 특징과 기능은 다음과 같다.

  1. 표준화된 언어: SQL은 데이터베이스 작업을 위한 표준화된 언어로, 대부분의 데이터베이스 시스템에서 사용된다. ANSI (American National Standards Institute)와 ISO (International Organization for Standardization)에 의해 표준화되었다.
  2. 다양한 데이터베이스 작업 지원: SQL은 데이터 삽입, 조회, 수정, 삭제와 같은 기본적인 데이터베이스 작업을 지원한다. 이러한 작업은 SQL의 기본 명령어, 즉 INSERT, SELECT, UPDATE, DELETE를 통해 수행된다.
  3. 복잡한 쿼리 가능: SQL은 WHERE, JOIN 등의 절을 사용하여 복잡한 쿼리를 작성할 수 있게 해준다. 이를 통해 사용자는 여러 테이블에서 데이터를 결합하고, 특정 조건에 따라 데이터를 필터링할 수 있다.
  4. 데이터베이스 스키마 관리: SQL을 사용하여 데이터베이스의 구조를 정의하고 관리할 수 있다. 이는 테이블 생성(CREATE TABLE), 수정(ALTER TABLE), 삭제(DROP TABLE) 등의 작업을 포함한다.
  5. 데이터 무결성 및 트랜잭션 관리: SQL은 데이터 무결성을 보장하는 제약 조건(예: PRIMARY KEY, FOREIGN KEY)을 정의할 수 있다. 또한, 트랜잭션을 관리하는 명령어(COMMIT, ROLLBACK)를 통해 데이터의 일관성과 정확성을 유지할 수 있다.
  6. 접근 권한 관리: 사용자의 데이터베이스 접근을 관리하기 위해 권한 부여(GRANT) 및 권한 회수(REVOKE) 명령어를 사용한다.
  7. 호환성 및 이식성: SQL은 다양한 데이터베이스 시스템에서 지원되므로, 한 시스템에서 작성된 SQL 쿼리는 다른 시스템에서도 사용될 수 있는 이식성을 갖는다.

이러한 특징들로 인해 SQL은 데이터베이스 관리에 있어서 중요한 도구로 널리 인정받고 있으며, 데이터 관리 및 분석 분야에서 필수적인 기술로 여겨진다.

쿼리

쿼리(Query)는 데이터베이스에서 정보를 요청하고 검색하는 데 사용되는 특정 요청 또는 명령이다. 쿼리는 일반적으로 SQL(Structured Query Language)을 사용하여 작성되며, 데이터베이스 시스템에서 정보를 검색, 수정, 삭제 또는 삽입하는 데 사용된다. 쿼리의 주요 특징과 사용 방법은 다음과 같다.

  1. 정보 검색: 가장 일반적인 쿼리 유형은 데이터 검색입니다. SQL에서 이는 SELECT 문을 사용하여 수행된다. 예를 들어, 특정 테이블에서 모든 레코드를 검색하거나 특정 조건을 만족하는 레코드만 검색할 수 있다.
  2. 데이터 조작: 쿼리는 데이터를 삽입(INSERT), 수정(UPDATE), 삭제(DELETE)하는 데에도 사용된다. 이를 통해 데이터베이스 내의 정보를 관리할 수 있다.
  3. 복잡한 질의: SQL 쿼리는 여러 테이블에서 데이터를 결합하고, 다양한 조건을 적용하여 복잡한 질의를 수행할 수 있다. 예를 들어, JOIN을 사용하여 관련 있는 여러 테이블에서 데이터를 결합할 수 있다.
  4. 집계 함수: 쿼리는 데이터의 집계(예: 평균, 최대값, 최소값, 합계 등)를 계산하는 데 사용될 수 있다. SQL의 GROUP BY와 집계 함수(예: AVG, MAX, SUM)를 사용하여 이러한 계산을 수행할 수 있다.
  5. 서브쿼리: 복잡한 쿼리를 작성할 때, 서브쿼리(subquery)를 사용하여 하나의 큰 쿼리 내에 작은 쿼리를 포함시킬 수 있다. 서브쿼리는 보통 괄호 안에 작성되며, 메인 쿼리의 일부로 사용된다.
  6. 데이터 정렬 및 필터링: 쿼리를 사용하여 결과 데이터를 특정 순서로 정렬(ORDER BY)하거나, 특정 기준에 따라 데이터를 필터링(WHERE)할 수 있다.
  7. 데이터베이스 스키마 조작: 또한, 쿼리는 데이터베이스의 구조를 변경하기 위해 사용될 수 있다. 이를 위해 CREATE, ALTER, DROP과 같은 DDL(Data Definition Language) 명령어가 사용된다.

쿼리는 데이터베이스 관리 및 분석의 핵심 도구이며, 효율적이고 정확한 데이터 관리를 위해 필수적이다. 사용자의 요구 사항에 따라 다양하게 구성될 수 있으며, 복잡한 데이터 집합에서도 원하는 정보를 추출하는 데 매우 유용하다.

MySQL, MySQL Workbench 설치 및 구성(Mac)

MySQL Workbench 사용법

# 모든 데이터베이스 목록 보기
SHOW DATABASES;
# 데이터베이스 만들기
CREATE DATABASE mydatabase;
# 사용할 데이터베이스 지정하기
USE mydatabase;
# 테이블 만들기
CREATE TABLE mytable (
		col1 INT,
        col2 CHAR(2)
);
# 테이블에 데이터 삽입하기
INSERT INTO mytable (col1, col2)
VALUES (1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e');
# 모든 데이터 가져오기
SELECT * FROM mytable;

실행하게 되면 이 Result Grid에 결과값이 나오게 되고, 그 다음에 Action Output에는 어떤 액션이 실행이 되었는지 간단하게 요약을 해서 보여주게 된다.

  1. CREATE TABLE mytable: mydatabase 데이터베이스 내에 mytable이라는 새로운 테이블을 생성한다. 이 테이블은 두 개의 열을 가집니다: col1은 정수형 데이터를, col2는 최대 2자까지 저장할 수 있는 문자형 데이터를 저장한다.
  2. INSERT INTO mytable (col1, col2), VALUES (1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e');: mytable 테이블에 여러 행의 데이터를 삽입한다. 각 행은 col1과 col2 열에 대한 값을 갖습니다. 예를 들어, 첫 번째 행은 col1에 1을, col2에 'a'를 저장한다.
  3. SELECT * FROM mytable: mytable 테이블에서 모든 행과 열의 데이터를 조회한다. *는 모든 열을 선택한다는 뜻이다.
profile
신입사원...

0개의 댓글