memo6759 님의 블로그
2025-09-24(SQL-1) 본문
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 |