태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

데이터베이스 이용하기 - (1) SQL의 기초

2009.06.23 05:22


  이번 강좌가 올라오기까지도 꽤 많은 시간이 걸렸습니다. ^^; 제 게으름(???)... 이 아니라, 사실 데이터베이스 쪽을 강좌에서 다루려고 하다 보니 어디부터 설명해야 쉬울까... 고민도 좀 했었고, 저도 공부를 하다가 막히는 부분이 좀 있어서 그것 때문에 계속 인터넷이랑 책을 찾아보기도 했었구요^^;;;

어쨌든, 데이터베이스를 다루는 어플리케이션을 제작하기 전에, 데이터베이스에 대한 기초 지식과 간단한 SQL문은 알고 있어야 앞으로 나올 코드들을 이해하는 데 어려움이 없을 것입니다. 우리가 어떤 프로그래밍 언어를 모른다면, 그 언어로 제작된 코드를 읽기 어려운 것과 마찬가지로, 간단하기는 하지만 데이터베이스를 다루는 하나의 언어라고 볼 수 있는 SQL문을 알아야 데이터베이스를 다룰 수 있을 것입니다.

데이터베이스?

  데이터베이스는 여러 가지 데이터들이 일목요연하게 정리되어있는 하나의 "리스트" 정도로 이해하시면 됩니다. 마치 엑셀 시트에 들어가있는 전화번호부 정도를 연상하시면 되겠네요. 사실, 데이터베이스 하면 가장 기초적인 테이블부터 시작하여 별의별 용어와 개념이 있지만, 이 강좌에서는 안드로이드 어플리케이션에서 주로 쓰이는 테이블 단위까지만 소개하도록 하겠습니다.

테이블(Table) 이란?



테이블이란, 서로 관련 있는 정보들을 묶어 놓은 것입니다. 조금 더 구체적으로 말하면, 자신이 보고자 하는 항목들로 열을 구성해놓은 것이라 할 수 있습니다. 예를 들면, 주소록에서 이름, 전화번호만을 묶어서 한 테이블을 만들 수도 있고, 이름, 이메일주소를 묶을 수도 있으며, 이름, 전화번호, 이메일주소 모두를 묶어서 한 테이블을 만들 수도 있습니다.


테이블 생성하기

create table notes (_id integer primary key autoincrement, title text not null, body text not null);


create table notes
"notes"라는 이름을 가진 테이블을 생성합니다. 이후 괄호 안의 항목들은 테이블을 구성하는 열(Column)과 열들의 속성을 지정해주는 구문입니다.

_id integer primary key autoimcrement
정수형 데이터를 갖는 _id라는 이름을 가지는 열(필드)을 생성합니다. primary key는 이 열이 기준열이 됨을 의미합니다. 이 기준열이 되는 열의 내용은 각 레코드별로 달라야 합니다. autoincrement는 레코드가 추가될 때마다 해당 열의 데이터가 자동으로 증가함을 나타냅니다.

title text not null, body text not null
text형 데이터를 갖는 title과 text 열을 생성합니다. 이 두 열(필드)는 값이 항상 있어야(not null) 합니다.



테이블 삭제하기

drop table if exists notes


drop table if exists notes
"notes"라는 테이블이 있을 경우(if exists) 테이블을 삭제합니다.



기초적인 SQL문은 "읽으면 이해가 되는"정도라 그다지 부담갖지 않으셔도 됩니다. 데이터베이스를 다루는 SQL문은 여러 종류가 있지만, 기초적인 과정에서 전체 구문을 모두 사용하는 것은 위의 두 가지 정도 뿐이므로 이 정도만 알아도 무난합니다. 
저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

커니 데이터 관리/SQLite3 , , , , , , ,

  1. Blog Icon
    감딩이

    안녕하세요 강좌 정말 잘보고 있습니다 ^-^

    한가지 질문이 있는데요.

    제가 대학교내에 있는 각시설(재무실,취업정보센터,휴계실,영성교육상담실 기타등등..) 들을 리스트뷰로 쫙나열해서
    원하는 곳을 클릭시 (예를 들자면 리스트뷰에있는 재무실을 눌렀을 떄 재무실은 어떤곳이면 어떻게 찾아가고 ~~기타등등 설명을 써넣으려고함) 정보를 출력을 하고자 하는데 sql을 구지 써서 해야되나요?ㅜ

    제가 데이터베이스쪽은 잼병이라 -0-;;

    이런 일을 가장 간단히 표현할 수 있는 방법이 무었이 있을까요 ㅎ

  2. SQL을 사용하지 않고도 구현할 수 있지만, 다른 방법으로 구현하게 되면 다소 비효율적일 것 같기도 하네요 ㅎㅎ

    그 정도의 구현은 데이터베이스의 기초 정도만 알아도 구현 가능합니다 :)

  3. Blog Icon
    실버레인

    모든 강좌 너무 잘 보고 있습니다. 진심으로 감사드려요 ^^

  4. Blog Icon
    윤승

    복사해서 담아갈게요~ 강의 감사합니다.

  5. 커니님의 강좌를 너무 잘보고 너무나 도움이 많이 되고 있습니다 ^^

    제 블로그에 정리를 하려고 내용을 참고해 될까요?

    커니님이 작성하신 글에 참고된 내용은 제가 따로 링크를 걸겠습니다^^

  6. 네 출처만 밝혀주시면 언제라도 가능합니다 :)

  7. 좋은글 출처를 표시하고 블로그에 담아갑니다. ^^

  8. Blog Icon
    dasdfsd

    테이블을 만들기전에 DB는 자동으로 만드러져있는거에요?? 따로 DB만들지 않아도되는건가요?

  9. 아니요, 데이터베이스 파일도 먼저 생성해야 합니다.
    안드로이드에서는 대부분 헬퍼 클래스를 사용해서, 데이터베이스를 최초로 사용할 때 파일도 함께 생성하므로 크게 신경쓸 일은 없습니다~