Notice
Recent Posts
Recent Comments
Link
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Archives
Today
Total
관리 메뉴

memo6759 님의 블로그

2025-09-24(SQL-1) 본문

HDC 학습일지

2025-09-24(SQL-1)

heewon09 2025. 9. 24. 23:54

MySQL 기초 정리 (DBMS / 계정 / 권한 / SELECT)

1. 데이터베이스 개념

 데이터베이스 (Database)

  • 기업/조직에서 필요한 데이터를 저장한 데이터 집합
  • DBMS(Database Management System): 데이터를 관리하는 소프트웨어 (MySQL, Oracle, PostgreSQL 등)
  • DBA(Database Administrator): 데이터 설계, 인덱싱, 튜닝, 백업 등을 담당하는 데이터베이스 관리자

 DBMS 장점

  • 데이터 무결성 유지
  • 데이터 공유와 일관성 보장
  • 중복 최소화

관계형 데이터베이스 (RDBMS)

  • 데이터를 2차원 표(테이블) 형태로 저장
  • 최소 단위: 테이블(Relation)
  • 열 = 컬럼(Column, Attribute, 필드)
  • 행 = 레코드(Row, Tuple)
  • PK(Primary Key): 중복되지 않는 기본키
  • FK(Foreign Key): 다른 테이블의 기본키를 참조하는 외래키
  • 테이블 분리(정규화)를 통해 데이터 무결성 보장

2. SQL 언어 분류

  • DML (Data Manipulation Language): insert, update, delete → 데이터 조작
  • DDL (Data Definition Language): create, alter, drop → 객체 정의
  • DCL (Data Control Language): grant, revoke → 권한 제어
  • TCL (Transaction Control Language): commit, rollback → 트랜잭션 관리
  • Query (조회): select

 미션: SQL은 Structured Query Language의 약자


3. MySQL 접속 & 데이터베이스 명령어

 접속

mysql -u 계정 -p비밀번호
mysql -u root -p

→ -p만 입력하면 비밀번호 입력창이 뜸

 데이터베이스 관련 명령

-- DB 목록 확인
show databases;

-- 현재 사용 중인 DB 확인
select database();

-- DB 생성
create database mytestdb;

-- DB 선택
use mytestdb;

4. 사용자 관리

 사용자 생성

create user 계정명@호스트 identified by '비밀번호';
  • localhost → 로컬 접근만 가능
  • % → 모든 IP 접근 허용
  • 특정 IP만 허용 가능 (예: '192.168.%')

예시:

-- 로컬 전용 계정
create user mydb@localhost identified by '1234';

-- 외부 전체 허용
create user mydb@'%' identified by '1234';

 계정 삭제

drop user 계정명@호스트;

5. 권한 관리

 권한 부여

grant 권한리스트 on 데이터베이스.테이블 to 계정명@호스트;
-- 모든 권한 부여
grant all privileges on mytestdb.* to mydb@localhost;

-- 특정 권한 부여 (insert, update만 가능)
grant insert, update on mytestdb.emptest2 to mydb@localhost;

권한 확인

-- 특정 계정 권한 확인
show grants for mydb@localhost;

-- 현재 접속 계정 권한 확인
show grants for current_user;

6. SELECT 기본 문법

 구문

select 컬럼명1, 컬럼명2...
from 테이블명
where 조건
order by 컬럼 asc|desc;

 alias (별칭)

select ename as 이름, sal*12 as 연봉
from emp;
  • 연산식, 함수 결과에도 별칭 사용 가능
  • 공백/특수문자가 포함된 경우 큰따옴표(" ")로 묶음

7. 미션 정리

  • root 계정 접속 후 mytestdb 생성
  • mytestdb 선택 → 현재 DB 확인
  • sample 계정 생성 및 emptest2 테이블 insert 권한 부여
  • mydb 계정 생성 후 모든 권한 부여
  • test 계정 생성 후 emp 테이블 select 권한만 부여 → 제한 여부 확인
  • root 계정으로 접속 후 insert 권한 추가 → 다시 확인

8. 예제: CGV 데이터 모델링

  • 영화: (영화ID, 영화명, 사진, 가격, 장르, 감독, 제작사)
  • 배우: (배우ID, 배우명, 영화ID)
  • 고객: (고객ID, 이름, 연락처, 주소)
  • 구매내역: (구매ID, 고객ID, 영화ID, 구매일, 수량)
  • 극장: (극장ID, 지점명, 좌석수)

 데이터 간 관계를 고려하면 영화-배우 (1:N), 고객-구매내역 (1:N), 극장-영화상영 (1:N) 관계를 가질 수 있음.

'HDC 학습일지' 카테고리의 다른 글

2025-09-26(SQL-3)  (0) 2025.09.27
2025-09-25(SQL-2)  (0) 2025.09.25
2025-09-23(깃허브 사용법)  (0) 2025.09.24
2025-09-22(학습 리뷰)  (0) 2025.09.23
2025-09-22(자바 Stream, git)  (0) 2025.09.22