전공심화동아리에서 데이터베이스를 배우기 위해 MySQL
을 배우기 시작했다.
그 준비 과정으로 workbench
설치 완료!
: 데이터를 등록하고, 수정하고, 삭제하고, 조회하고..
데이터베이스에는 CRUD (Create Read Update Delete)
가 있다.
MySQL
에 데이터를 넣어두고 다른 사람이 데이터를 볼 수 있게끔 하는 것이라고 하는데, 쉽게 말해 데이터베이스란 데이터를 보관할 수 있는 하나의 중앙 서버를 만드는 것이다.
모든 프로그램들이 같은 데이터를 공유할 수 있게 만드는 시스템이기 때문에
같은 데이터를 공유할 수 있다는 장점이 있다.
: 데이터 베이스를 조작하는 프로그래밍(구조적 질의) 언어
: DB
구조에 대한 언어
SQL
에는 DDL
, DCL
, DML
등이 있지만, 내 머릿속 용량과 수업시간은 한계가 있기 때문에 오늘은 DML
만 배우기 시작했다.
: Data Manipulation Language
Manipulation
은 내 마음대로 주무르는 느낌
데이터를 CRUD
만들고, 읽고, 수정하고 제거할 수 있는 것이 DML
언어이다.
자, 그럼 근본적인 질문을 해보자.
왜 프로그래밍 언어는 이렇게 생긴 것인가?
이것은 영어권 문화에서 만들었기 때문이다.
나는 치킨을 좋아한다.
- 한국어 일본어는 끝에 동사가 나옴
He loves you
- 영어는 동사가 먼저, 말하고자 하는 목표가 가장 먼저 나옴
그래서 SQL
도 영어 문화권의 영향을 받았기 때문에
SELECT(데이터 조회)
와 같은, 핵심이 먼저 나오는 것이다.
*
: 모든 컬럼을 다 보여줘FROM
: 어떤 테이블의만약 SELECT city, id, citycitycity
로 하면 두 개의 열만 가지겠다는 뜻이다.
SELECT *
하면 모든 것을 다 보여줘라는 뜻이다.
<>
: 서로 다르다.=
: 같다.AND
: 자바의 &&
OR
: 자바의 ||
여기까지 보았을 때
"어? 뭔가 MySQL의 문법이 사람 언어와 비슷한데?"
라고 생각했다면 그게 맞다.
위에서 알 수 있듯이 SQL
은 사람 언어에 친화적이다.
반대로 Java
C언어
는 컴퓨터 친화적이다.
ASC
: 오름차순DESC
: 역순이제 기본적인 문법을 알았으니 코딩테스트로 MySQL
의 기본 문법을 다루는 기본적인 방법을 익혀보자.
SELECT *
FROM ANIMAL_INS
ANIMAL_INS
테이블의 모든 자료를 조회하겠다는 의미이다.
여기서 테이블의 이름은 소문자로 쳐도 상관없다.
SELECT NAME, DATETIME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID DESC; # ASC 오름차순 DESC 내림차순
ANIMAL_INS
테이블의 NAME
, DATETIME
데이터를 DESC
내림차순으로 정렬한다.
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION = "Sick"
ORDER BY ANIMAL_ID, NAME;
ANIMAL_INS
테이블에서 ANIMAL_ID
, NAME
데이터를
INTAKE_CONDITION
이 "Sick"
인 경우의 데이터만 조회한다.
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION <> "Aged"
ORDER BY ANIMAL_ID ASC;
ANIMAL_INS
테이블에서 ANIMAL_ID
, NAME
데이터를 오름차순 정렬한 것의 INTAKE_CONDITION
이 Aged
가 아닌 경우의 데이터만 조회한다.