
DB/DBMS
DB : 데이터의 집합
DBMS : DB를 관리 및 운영하는 역할
특징
데이터의 무결성
데이터베이스 안의 데이터에는 오류가 있어서는 안 된다.
무결성을 위해 데이터베이스는 제약 조건이라는 특성을 가진다.
데이터의 독립성
데이터베이스의 크기를 변경하거나 데이터 파일의 저장소를 변경하더라도 기존에 작성된 응용 프로그램은 전혀 영향을 받지 않아야 한다.
보안
데이터베이스 안의 데이터에 아무나 접근할 수 있는 것이 아닌 데이터를 소유한 사람이나 데이터에 접근이 허가된 사람만 접근할 수 있어야 한다.
데이터 중복의 최소화
동일한 데이터가 여러 개 중복되어 저장되는 것을 방지한다.
응용 프로그램 제작 및 수정이 쉬워짐
통일된 방식으로 응용 프로그램 작성이 가능하다.
유지보수가 쉽다.
데이터의 안전성 향상
대부분의 DBMS가 제공하는 백업 및 복원 기능을 이용한다.
데이터가 깨질 경우 원상으로 복구/복원하는 방법이 명확해진다.
DBMS 종류
계층형 DBMS, 망형 DBMS, 관계형 DBMS, 객체지향형 DBMS, 객체관계형 DBMS 등이 있다.
계층형 DBMS
처음으로 나온 DBMS 개념이다.
각 계층은 트리 형태를 가지며 1:N 관계를 갖는다.
망형 DBMS
1:1, 1:N, N:N 관계가 지원되어 효과적이고 빠른 데이터 추출이 가능하다.
관계형 DBMS
테이블이라는 최소 단위로 구성되어 있다.
테이블은 하나 이상의 열로 구성되어 있다.
모든 데이터는 테이블에 저장된다.
SQL
관계형 데이터베이스에서 사용되는 언어이다.
특징
DBMS 제작 회사와 독립적이다.
다른 시스템으로 이식성이 좋다.
표준이 계속 발전한다.
대화식 언어이다.
분산형 클라이언트/서버 구조이다.
데이터베이스 필수 용어
데이터
하나하나의 단편적인 정보이다.
정보는 있으나 아직 체계화 되지 못한 상태이다.
테이블
데이터를 입력하기 위해, 표 형태로 표현한 것이다.
데이터베이스
테이블이 저장되는 저장소이다.
각 데이터베이스는 서로 다른 고유한 이름을 가지고 있어야 한다.
DBMS
DataBase Management System의 약자이다.
데이터베이스를 관리하는 시스템 또는 소프트웨어이다.
열
컬럼/필드라고 표현하기도 한다.
열 이름
각 열을 구분하기 위한 이름이다.
각 테이블 내에서 중복되지 않고, 고유하다.
데이터 형식
열의 데이터 형식이다.
테이블을 생성할 때 열 이름과 함께 지정해 준다.
행
로우/레코드라고 표현하기도 한다.
실질적인 데이터이다.
기본 키 열
Primary Key(PK)라고 표현하기도 한다.
각 행을 구분하는 유일한 열이다.
중복되어서 안되고, 비어 있어서도 안된다.
각 테이블에는 기본 키가 하나만 지정되있다.
외래 키 필드
투 테이블의 관계를 맺어주는 키이다.
SQL(Structured Query Language)
DBMS에서 작업을 할 때 사용한다.
MySQL 터미널 명령어
터미널에서
mysql.server start
MySQL 서버를 실행한다.
mysql.server stop
MySQL 서버를 중단한다.
mysql -u root -p
MySQL 진입 명령어이다.
mysql을 실행한 후
;
모든 명령아 뒤에 ;를 붙여줘야 한다.
show databases;
현재 모든 데이터베이스 목록을 출력한다.
create database DB이름;
DB이름의 데이터베이스를 생성한다.
use DB이름;
DB이름의 DB를 선택한다.
show tables;
선택한 DB의 테이블 목록을 출력한다.
desc 테이블명;
선택한 DB의 테이블 구조를 출력한다.
SELECT * FROM 테이블명;
선택한 DB의 테이블 내용을 출력한다.
exit
터미널로 나올 때 쓰는 명령어이다.
DROP DATABASE DB이름;
DB이름의 DB이름 전체 삭제 명령어이다.
DROP TABLE 테이블명;
테이블명의 테이블 전체 삭제 명령어이다.
MySQL 활용
샘플 데이터베이스 가져오기
대량의 샘플 데이터베이스인 employees라는 이름의 샘플 데이터베이스를 다운로드 받은상태에서 이 샘플 데이터베이스를 mySQL로 가져오는 작업이다.
경로를 샘플 데이터베이스가 있는 경로로 이동하기

MySQL 서버를 가동시키기

MySQL에 접속하기

mysql -u (id) -p 명령을 입력하고, 비밀번호를 입력한다.
SQL문으로 샘플 데이터베이스 가져오기

source employees.sql;문으로 employees 샘플 데이터베이스를 가져온다.
SQL문으로 데이터베이스 확인하기

show databases;를 입력한 뒤, 데이터베이스 목록을 확인하면 employees 데이터베이스가 새롭게 추가되어있다.
Dbeaver
SQL 클라이언트이자 데이터베이스 관리 도구이다.
수업에서는 윈도우 기반에서 사용할 수 있는 laragon으로 DB를 관리하는 툴로 사용했지만, 나는 맥을 사용하기 때문에 조금이나마 써본 경험이 있는 Dbeaver를 이용해서 수업을 진행하였다.
Dbeaver 이외에도 xampp라는 DB 관리 툴도 있다.
데이터베이스 생성

Databases에 우클릭 후 Create New Database를 누르게 되면 새로운 데이터베이스를 생성할 수 있다.

위와 같은 창이 뜰텐데, 만들고 싶은 데이터베이스 이름을 지정할 수 있다.
나는 member라는 데이터베이스를 만들었다.

Databases 하위에 member라는 데이터베이스가 만들어진 것을 볼 수 있다.
테이블 생성

Create new Table을 누르게 되면 새로운 테이블을 생성할 수 있다.

NewTable로 새로운 테이블이 생성된 것을 볼 수 있다.

테이블명을 Info로 설정해주었고, Create New Column으로 새로운 컬럼을 생성할 수 있다.

컬럼 이름을 memberId로 설정하였고, 데이터 타입을 VARCHAR(8), 즉, 8글자 문자로 설정했고, NULL을 허용하지 않는다고 설정했고, Null을 허용하지 않는다고 설정해놓았다.

모두 설정이 완료되었으면 아래의 Save 버튼을 누른다.
데이터 추가하기


Data탭에서 우클릭 후 Edit의 로우 추가를 이용하여 데이터를 직접 입력하고 추가할 수 있다.
혹은 아래의 로우 추가 버튼을 이용하여 데이터를 직접 입력하고 추가할 수 있다.

데이터 입력을 전부 마친후 왼쪽 아래의 Save 버튼을 눌러야 정상적으로 저장이 된다.
데이터 활용

상단 탭의 SQL 편집기 - 새 SQL 편집기를 통해 SQL 편집기를 열 수 있다.
모든 데이터 조회하기

SELECT * FROM (테이블이름)을 사용하면 (테이블이름)의 모든 데이터를 조회할 수 있다.
특정 열만 조회하기

뷰
가상의 테이블이라고 보면 된다.
사용자의 입장에서는 테이블과 동일하게 보이지만, 실제로는 데이터를 가지고 있지 않다.
뷰 생성
CREATE VIEW uv_info | |
AS | |
SELECT member_id, member_name FROM INFO; |
CREATE VIEW view_name
AS SELECT data1, data2 FROM table_name;
이와 같이 사용해서 VIEW를 생성할 수 있다.
이렇게 생성한 VIEW는 다른 테이블과 동일하게 사용할 수 있다.
스토어드 프로시저
여러 개의 SQL문을 하나로 묶어서 편리하게 사용하는 기능이다.
CREATE PROCEDURE procedure_name() | |
BEGIN | |
SQL문 | |
SQL문 | |
... | |
END; |
이러한 SQL문으로 스토어드 프로시저를 생성할 수 있고,
CALL procedure_name(); 으로 프로시저를 실행할 수 있다.

위와 같은 SQL문을 스토어드 프로시저로 만들면 어떻게 해야될까 ?

이러한식으로 스토어드 프로시저를 생성하고 실행할 수 있다.
실행 결과 하단의 탭을 보면 info 1, employees 1로 실행 결과가 두개로 나온 것을 볼 수 있다.
'SKN Family AI Camp > MySQL' 카테고리의 다른 글
SQL(2) (0) | 2024.05.21 |
---|