1. SQL?
- Structured Query Language를 줄인 말이다.
- 관계형 데이터 베이스를 다룰 수 있게 되며, MySQL을 설계하며 이를 SQL로 수정하게 된다.
2. Database
- in memory에 파일을 저장하게 되면 컴퓨터가 꺼지면 사라진다. 그래서 서버에 파일 자체에 저장을 해 놓는다면, 클라이언트가 원하는 정보만 받아 올 수 없고, 모든 정보를 싹 다 가져와야 한다. 그래서 그러한 데이터들을 한 곳에 저장하고 필터링을 해서 필요한 정보만 클라이언트에 주기 위해 만든 것이다.
- 생긴 모습은 '엑셀'과 같다.
3. SQL과 NoSQL의 미묘한 관계
- SQL은 관계형 데이터 베이스이다. 그래서 정보를 입력하기 전에 '테이블'에 저장할 데이터의 구조를 짜 놓는다. 그래서 알아보기 편하다.
- NoSQL은 정보를 입력하기 전이 아닌, 정보를 읽어 올 때 정보에 생김새에 따라 맞는 방식으로 읽어 온다고 생각하면 편하다.
- 둘 다 각자의 장, 단점이 있다. (속도 적인 측면에서는 NoSQL이 뛰어나기도 하지만, 데이터들의 크기가 크지 않은 경우, 읽어오고 사용하기 복잡한 NoSQL 보다 SQL을 사용한다.)
- 각각의 상황과 데이터들에 따라 바꿔서 사용한다.
4. MySQL 설치하기.
- 우분투를 사용한다면, sudo apt-get update 와 sudo apt-get install mysql-server 로 설치 가능.
- 설치가 완료되면 sudo systemctl start mysql로 실행시킨다.
- 실행 이후, mysql -u root로 접속한다. 만약 안된다면, sudo mysql -u root로 관리자 권한으로 해보자.
- 처음 접속하면 조금 당황스럽다. 커서 앞으로 'mysql>' 이 보이고 엔터를 치면 아래줄로 내려가면서 아무 일도 일어나지 않는다. 잘 실행된 것이니 일단 로그인 비밀번호를 설정해 줄 것이다.
- ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourPassword'; 으로 비밀번호를 설정할 것이다. 'yourPassword' 부분에 설정할 비밀번호를 입력해 주자. 이제 이 비밀번호로 접속을 하게 될 것이다.
- '\(백 슬레쉬)q'로 접속을 종료할 수 있다. 설정된 비밀번호를 테스트하기 위해 한번 접속을 종료해 보자.
- 이제는 mysql -u root -p를 입력해서 접속하자.
- 비밀번호를 물어볼 것이다. 잘 입력해주면, 접속이 완료된다.
5. 뭐든지 해 보자!
- 먼저, 가장 중요하게 알아 두어야 할 것은 ';'이다. 꼭 마지막에 세미콜론을 붙여주자. 안 그러면 계속 줄 바꿈을 하게 된다.
- 모든 명령은 대문자로 적는다. 투철한 실험 정신으로 소문자로도 적어 보니 작동한다! 하지만 모두 대문자로 적고 있다. 왜 일까..?
- SHOW DATABASES; 를 입력해 보면 지금 있는 데이터베이스의 목록이 뜬다.
- 데이터베이스를 만들때는 CREATE DATABASE 데이터베이스 이름; 을 사용한다. 이후 SHOW DATABASES; 로 확인해 주면 되겠다.
- USE 데이터베이스 이름;으로 데이터베이스를 선택해서 사용할 수 있다.
- 삭제할 때는 DROP DATABASE 삭제할 데이터 베이스 이름을 사용한다.
6. 아주 간단한 연습을 할 때 유용한 명령어
- SELECT 필드 이름 : 데이터를 선택한다.
- FROM 테이블 이름 : 테이블의 이름 앞에서 어떤 테이블을 받아올지를 정해준다.
- UPDATE 테이블 이름 SET 필드 = 값 : 데이터를 수정할 수 있다. 테이블 이름과 필드 이름을 입력해 주어 어떤 데이터를 어떻게 바꿀지 적을 수 있다.
- WHERE 필드 이름 조건 : 마치, 필터처럼 작동한다. UPDATE나 SELECT 뒤에 붙어서 특정 값을 만족시키는 데이터만 뽑아낸다.
- * : 모든 것. 예를 들어 SELECT * 한다면, 모든 필드를 다 선택하는 것이 된다. 주의해서 사용하자.
7. 필수로 알아야 할 다양한 명령어
https://www.w3schools.com/sql/exercise.asp
- 퀴즈를 직접 풀어보면서 자연스럽게 배울 수 있다. 이것이 가장 빠른 방법인 것 같다.
- 만약 모르겠다면, 오른쪽 아래에 'Show Answer'을 눌러서 확인할 수도 있지만, 왼쪽 텝에 Tutorial 페이지로 연결해주는 링크가 있으니 그곳부터 천천히 읽어보고 오는 것을 추천한다.
- 영어의 장벽이 무섭다면 번역을 번갈아 보면서 해도 충분하다. 오히려 영어로 보는 게 번역보다 매끄러울 수 있다.
- 위의 문제들을 충분히 풀어본 후에 터미널 창에서 직접 해 보면 무엇보다 재미있다...!
'Coding > Today I Learned' 카테고리의 다른 글
2021.08.31(Tue.) <데이터 베이스를 이용한 데이터 저장과 팁> (0) | 2021.09.01 |
---|---|
2021.08.30(Mon.) <Database JOIN을 알아보자> (0) | 2021.08.30 |
2021.08.25(Wed) <다이나믹 프로그래밍(Dynamic Programming)> (0) | 2021.08.25 |
2021.08.24(Tue.) <시간복잡도와 Greedy Algorithm> (0) | 2021.08.24 |
2021.08.23(Mon.) <리눅스의 사용권한> (0) | 2021.08.23 |