[OnAir_FreeNote_MySQL] 기본적인 쿼리를 익히자

FreeNote/My_SQL 2011. 3. 27. 17:15

안녕하세요!
이번 포스팅은 기본적인 쿼리에 대한 얘기를 해볼까합니다~

기본적인 쿼리를 익히자

쿼리란 무엇일까요?~
앞서 SQL에 대한 설명을 했습니다.
SQL은 Structured Query Language 라고 말씀드렸습니다.
즉, 데이터베이스의 표준 질의어라는 것인데요.
DB에 물음을 던져 원하는 값을 추출해내는 역할을 하는게 SQL, 쿼리라는 것입니다.
물음을 던지는 그 역할을 하는것이죠.
간단히 명령어로 이해하시면 되겠습니다.
그럼 기본적인 쿼리라는 말은 DB에서 쓰는 기본적인 명령어라는 말이겠죠~?
그럼 이것저것 해보도록 하겠습니다.

우선 ! 지금 쓰고 있는 MySQL 이 어떤 DB를 가지고 있는지 보도록하죠~


show databases; 라는 쿼리입니다.
즉, show 보여라, databases 를!
이라는 뜻이죠.
출력되는 결과는 현재 MySQL에 있는 Database 를 출력하고 있습니다.
음.. test 라는 DB가 보이네요..
간단히 여기서 연습하도록 하겠습니다.


use test; 라는것은 test DB를 사용하겠다는것입니다.
간단하죠?~
그럼... 예로 상품 테이블을 만들고 값을 넣어보겠습니다.
쇼핑몰을 운영하시는 분들이라면 이런 DB가 필요하겠죠?~

- shop 테이블을 만들고 데이터 넣기.
MySQL을 이용하여 기본적인 질문을 해서 답을 얻어 내는 방법에 대해 알아보겠습니다.

우선 shop(상품) 테이블을 만들고 그안에 컬럼 3개를 만들어보도록 하겠습니다.


article 물품 번호 -> 양수형이며 주키입니다.
dealer 파는 사람 -> 문자형이며 주키입니다.
price 가격 -> 실수형(double)으로 정의, 실수형으로 정의한 이유는 미국 딜러화를 입력하기 위해서 입니다.

눈여겨 볼 것은 주키가 2개이며, 주키에 같은 값이 들어가도 된다는것입니다.
그러나 일반적으로 삭제가 들어간 것이라면 주키를 auto_increment 속성으로 단 1개만 들어갈 수 있게 만드는 것이 좋습니다.

여기서 보시면 생소한 형식들이나 이상한것들이 보이는데요.
간단히 정리하겠습니다.


데이터 타입은 그 컬럼의 형태가 어떤 것으로 쓰여지느냐를 보고 결정합니다.
예를들어 이름은 문자열이기 때문에 char()를 사용하며, 학번은 숫자이기 때문에 int를 사용합니다.

- not null
커럼 값이 null 이 될 수 없다는 것을 나타냅니다. Null 은 값이 없어도 된다는 것입니다. not null 은 주키에 사용되며, 주키의 경우 값이 없을 경우 다른 값과 비교를 할 수 없기 때문에 not null 을 넣어주는 것입니다.

- primary key
주키임을 표시해주는 것입니다. 테이블 내에서 레코드를 구분할 수 있는 유일한 컬럼입니다.
예를 들면 학생 테이블에서는 학번이, 한국 국민 테이블에서는 주민등록번호가 주키 입니다.

그럼 계속해서 진행해도록 하겠습니다.
table 이 제대로 만들어 졌나 한번 봅시다~


Tables_in_test 가 출력되었습니다. 딱 보면 아시겠지만,
show tables; 라는 쿼리로 테이블명을 출력하고 있습니다.
test라는 DB안에 있는 table을 출력한 결과라는것이죠.
정상적으로 만들어졌습니다.
그러나 shop table에는 아무런 데이터가 없습니다.


이렇게요.
음~
여기서 한가지 더 나오네요.
select * from shop;
이라는 쿼리입니다.
간단하게 알아보고 넘어가죠~

-데이터 검색 ( SELECT )
세로줄을 선택하여 보여줍니다. 테이블에서 컬럼값(필드값)을 뽑습니다.
간단한 문법으로는

Select 컬럼명 from 테이블명;

이렇게 됩니다.
참고로 MySQL은 대소문자를 구분하지 않습니다^^; 아! DB나 컬럼명에서는 구분합니다. 즉 Test DB와 test DB는 다른것이죠.
쿼리를 입력할 때 대소문자를 구분하지 않습니다!

음... 예를 들어 학생 테이블에 이름과 전화번호를 출력하고 싶다! 라면
select 이름,전화번호 from 학생;
이렇게 되겠죠?~
그리고 와일드카드(*) 라는것을 사용할 경우 모든 칼럼을 보여줍니다.
흔히, 유닉스계열에서 * 가 All 이라는 의미를 같는것과 동일합니다.

간단한 팁으로 where 문을 사용해서 조건을 줄 수 있습니다.
음... 수학점수가 90점 이상인 사람의 이름과 학번을 출력하고자 할땐,

select 이름,학번 from 학생 where 수학점수>=90;

이런식으로 조건을 줄 수 있습니다~

그럼 계속해보도록 하죠.


shop 이라는 컬럼에 값들을 넣어주었습니다.
여기서 또 모르는 쿼리가 등장하네요~
insert into shop values ~~
딱 봐도 아시겠지만, shop 이라는 컬럼에 values , 값을 insert ,삽입 하는 쿼리입니다.

간단한 문법은
insert into 테이블명(컬럼명1, 컬럼명2, ...)
values (컬럼값 1, 컬럼값2, ...);
이렇게 됩니다.
즉,
insert into 테이블명 values (컬럼값1, 컬럼값2, ...);

이렇게 사용할 수 있습니다.
주의 할 것은 반드시 작은 따옴표( ' ) 안에 넣어야 합니다.
그럼 정상적으로 들어갔는지 select 문으로 확인해보도록 하겠습니다.


짠~ 깔끔하게 insert 되었네요~

그럼 다음 포스팅에서는 이 값들을 원하는 조건에 맞게 출력해보도록 하겠습니다.
그럼 다음 포스팅에서 뵈요~

블로그코리아에 블UP하기