언어/SQL or Database

SQL 공부하기 for 정보처리기사 실기 [2023-03-21 학습일지]

플광 2023. 5. 28. 19:49

 

올해 3월 정보처리기사 필기를 통과하고, 4월 말 중에 실기 시험을 예정하고 있다.

 

대부분의 문제가 실무 위주의 코딩 + DB 위주의 문제라고 하니 직접 타이핑하면서 공부해보고자 한다.

 

꼭 그럴 필요는 없지만, linux 상에서 db 환경을 조성하기 위해..

 

저는 실습실 Windows 에 WSL 을 설치하고, Ubuntu 상에서 mysql 을 설치하여 진행했습니다.

 

(WSL : 윈도우 기본 배포로 리눅스 가상환경을 간편하게 설치해줌)

(Ubuntu : Microsofts 에서 기본 제공하는 유명한 무료 리눅스 운영체제)

(mysql : Oracle사의 무료 DB)

 

Ubuntu logo image
MySQL logo image

(설치 방법은 검색으로 쉽게 찾을 수 있으니, 학우분들 중에 혹시나 안되면 설치 도와드리겠습니다)

 

https://www.mysqltutorial.org/

MySQL Tutorial – A comprehensive MySQL Tutorial

MySQL Tutorial website provides a comprehensive MySQL tutorial that helps you master MySQL fast, easy & fun.

www.mysqltutorial.org

 

Window 커맨드창에서 '''wsl'''을 명령하면, linux 가상 환경으로 접속된다.

C:\Users\KDT107>wsl
 

그러면, sudo 명령어를 통해 mysql을 실행시킨다.

user@DESKTOP-R7GJ6RM:/mnt/c/Users/KDT107$ sudo mysql
 
 
사진 삭제

사진 설명을 입력하세요.

그럼 다음과 같은 화면으로 정상접속 되는 것을 확인해볼 수 있다.

 

혹시나 다시 안들어가지는 경우가 있는데, 다음 명령어를 한 번 실행시키면 접속 가능해진다.

$ sudo service mysql restart
 

 

 

===========================================

 

 

※ SQL 은 무엇인가?

Structured Query Language 의 약자이다. 해석하면 구조화된 질의 언어.

 

결론은 구조가 정해진 구문을 만들어 전달하면 DB가 이를 대답하는 것이다.

 

 

※ 왜 SQL, DB를 사용하는가?

SQL을 사용하는 이유는 DB를 조작하기 위해 있는 것. DB는 Database의 약자로 데이터를 저장하는 곳이란 의미이다.

현재엔 컴퓨터 과학의 발전으로 많은 데이터들을 구조화하여 빠르게 저장하고 불러올 수 있는 능력을 가지고 있다. 또한, 연결의 가지(connection pool)를 조절함으로써 다중 접속이 가능하게 정보에 접근할 수 있다. 이 이후로는 너무 깊어지므로 이정도만 정리한다.

 

※ RDBMS?

relational database management system의 약어로 DB들 중에서, 중복을 줄이고 속도를 올리기 위해 관계형 데이터베이스란 것이 있다. 일단 RDBMS 타입이 현재 주류를 이루고 있으며, 오늘 사용할 MySQL도 RDBMS이다. 조작한다는 건, 표도 만들고 지우고 수정하고, 정보(row)를 추가하고, 롤백(?)하고 할 수 있어야한다.

 

※ 트랜잭션? (Transaction)

한 번 내뱉은 말은 수정할 수 있나? 없다. 그러기 때문에 신중해야한다.

DB는 중요한 정보가 담긴 곳이며, 여러 사람이 볼 수 있는 곳이다.

만약 정보를 쓰다가 중간에 에러가 발생하면 어떻게 해야하는가? 그대로 놔두어도 될까? 안된다.

이런 일을 방지하기 위해 DB에는 트랜잭션이라는 일련의 과정을 거쳐, 수정할 테이블을 잠깐 복사해서 입력 처리를 마무리하고, 이상이 없으면 본체에 합본(commit) 시킨다. 만약 중간에 에러가 발생하면 없던 일로 되돌리기 위해 롤백(rollback) 한다. 이런 과정을 Transaction 이라 한다.

 

 

※ 배우면 좋은 점?

모든 RDBMS SQL syntax에 대해 알 필요는 없다. SQL자체가 ISO 국제 공통 기준으로 어느정도 비슷하며, 요즘은 ORM(Object-Relational Mapping) 이라고 해서 자동으로 테이블 생성도 해준다. 그래도 기본은 알면, 원하는 만큼 DB를 직접 다룰 수 있게 된다.

 

더군다나 우린 데이터 기반 AI SW개발자이다. 데이터 기반이면, DB와 친해질 수 밖에 없다!

 

===========================================

 

※ SQL은 크게 네 가지로 분류한다. DDL, DCL, DML, TCL

DDL : Database Definition Language

DCL : Database Control Language

DML : Database Manipulation Language

TCL : Transaction Control Language

 

쉽게 생각한다. 만드는 말, 정보 접근에 대해 통제하는 말, 정보를 추가/삭제/수정하는 말, 트랜잭션을 조작하는 말들로 분류해놓고, 모두 RDBMS 롤 조작하므로 SQL이라고 통칭한다.

 

감사합니다.