9월 9일 목요일 TIL

김병훈·2021년 9월 9일
0

til

목록 보기
76/89

MySQL(Structured Query Language)

  • DB와 대화화기 위해 디자인 된 언어이다.
  • 가장 널리 사용되고 있는 관계형 데이터베이스 관리 시스템(RDBMS: Relational DBMS)
  • 오픈소스이며, 다중 사용자와 다중 스레드를 지원한다.
  • 여러 프로그래밍 언어를 위한 다양한 API를 제공한다.
  • 유닉스 , 리눅스, 윈도우 등 다양한 운영체제에서 사용가능하며, 특히 PHP와 함께 웹 개발에 사용된다.
  • 오픈 소스 라이센스를 따르긴하지만, 상업적으로 사용할 때는 상업용 라이센스 구입이 필요하다.
  • DB에는 두 가지 종류가 있다.
    • Relational(SQL)
      • mysql, postgresql, sqlite
    • Non-Relational(Non-SQL)
      • mongoDB, DynamoDB, couchDB
  • MySQL을 설치한 것은 DB서버를 설치한 것이고, MySQL 이 가지고 있는 기능을 통하여 데이터와 관련된 여러가지 작업을 한다.
  • SQL에서 사용할 때 DB에서 검색하려는 내용에 집중해야 한다.

SQL DB는 어떻게 생겼고, 어떻게 작동하는가?

  • SQL === EXCEL document
  • 데이터베이스엔 테이블이 존재하고, 엑셀문서에는 시트가 있다.
  • 그리고 테이블에는 행(row)과 열 (column), 엑셀문서도 똑같이 행과 열이 있다.

테이블 예시 1

  • SQL 에 4개의 column 열 이 있다고 가정한다.
    • ID, name, email, age
  • 행 row 에는 5명의 정보가 있다고 가정한다.
    • 만약, SQL command select를 사용해서 해당 테이블 유저의 모든 이메일을 갖고 오려한다면,
      • SELECT email FROM students; 를 하면 된다.
      • 보통 영어와 비슷한데 그 이유는 프로그래밍 언어가 아니라 쿼리용 언어라서 그렇다.

테이블 예시 2

  • 만약에, 21살보다 많은 유저의 이메일을 가져온다고 가정하면?
  • SELECT email FROM students WHERE age > 21;

테이블 예시 3

  • 유저의 이메일이 naver인 경우의 나이를 찾아본다고 가정하면?
  • SELECT age FROM students WHERE email LIKE "%naver.com";
    • %싸인을 사용하였는데, naver.com으로 끝나는 경우라서 특정값을 찾으려고 할 때 사용하는 것이다.

테이블 예시 4: 유저 삭제

  • 만약, ID가 2인 경우의 유저를 지운다고 가정한다면?
  • DELETE FROM students WHERE id=2;

테이블 예시 5

  • 만약, 15~18살 사이의 학생들만 찾는다고 가정하면?
  • SELECT name FROM students WHERE age(15<= 18); 가 아니라
  • SELECT email FROM students WHERE age BETWEEN 15 AND 18

ORM?

  • ex) 파이썬을 가져와서 SQL코드로 바꿔주는 작업
  • ORM에 과도하게 의존해서 SQL 공부를 안하는 경향이 있다.
    그러다가 어느순간엔 ORM으로 부족한 상황이 다가온다.

데이터베이스를 알아두면

  • 데이터베이스를 이해할 수 있다
  • 데이터를 어떻게 모델할지에도 도움이 된다
  • 아주 약간의 SQL만 배워도 장기적으로 좋고 이득을 볼 수 있다.
profile
블록체인 개발자의 꿈을 위하여

0개의 댓글