DDL(Data Definition Language) - 데이터 정의 언어 : 테이블이나 관계의 구조를 생성하는데 사용하며 CREATE, ALTER, DROP,TRUNCATE 문 등이 있다. CREATE - 새로운 데이터베이스 관계 (테이블) View, 인덱스 , 저장 프로시저 만들기. DROP - 이미 존재하는 데이터베이스 관계 ( 테이블 ) , 뷰 , 인덱스 , 저장 프로시저를 삭제한다. ALTER - 이미 존재하는 데이터베이스 개체에 대한 변경 , RENAME의 역할을 한다. TRUNCATE - 관계 ( 테이블 )에서 데이터를 제거한다. ( 한번 삭제시 돌이킬 수 없음.) DML(Data Manipulation Language) - 데이터 조작 언어 : 테이블에 Record의 데이터 검색, 삽입, ..
우리는 DB에서 원하는 정보를 가져와서 사용합니다. 원하는 정보를 가져와서 활용하는데에는 모바일용 SQL Lite에 저장하는 과정이나, 바로 DB에서 전달된 Response를 보고 정보를 Client에서 보여주기 위한 과정에서 사용합니다. 그런데 그 과정에서 사용하다보면 어떤 기준에 맞게 레코드(행)을 정렬하는 과정이 정말 중요합니다. 저도 서비스를 개발하면서 사용하다보니 느낀거지만 정말 중요합니다. 예를 들면, 시간 정렬, 사용자 검색 문자 기준 정렬 등 많은 기준으로 Response를 만드는데 사용했습니다. 그러면 정렬 쿼리에 대한 이야기를 시작하겠습니다. 정렬 쿼리 ORDER BY SELECT [열,...] FROM [테이블명] WHERE [조건식] ORDER BY [정렬할열 정렬방식,...]; e..
SQL에서 SELECT를 이용한 검색을 하는 경우에 많은 프로그래머들이 테이블의 모든 레코드를 불러와서 사용하는 경우는 없을 겁니다. 원하는 레코드만을 가져와서 원하는 컬럼을 뽑아서 사용하기를 바랍니다. 그래서 조건 검색을 하게 됩니다. 조건 검색 문법 기존 검색 문법인 SELECT [테이블열,...] FROM [테이블명,...]; 에서 WHERE 키워드 문법을 추가하면 조건 검색 문법이 됩니다. 조건 검색을 추가한 문법은 다음과 같습니다. SELECT [테이블열,...] FROM [테이블명,...] WHERE [검색조건]; Ex) 예를 들면, pin_info라는 다음과 같은 테이블이 존재하고 레코드도 들어가 있다고 가정합니다. 다음과 같은 명령어를 실행합니다. SELECT p_id, cr_time FR..
우리 테이블은 다음과 같은 과정으로 구조가 결정됩니다. 첫번째, 테이블에 구조를 설계한다. 두번째, 실제 테이블을 만든다. 세번째, 실제 테이블에 설계한 구조에 맞게 컬럼을 만든다. 네번째, 제대로 테이블의 구조가 생성되었는지 확인한다. 위에서 바로 네번째에 해당하는 부분을 테이블 구조 확인이라고 합니다. 이 네번째를 대해서 다뤄 보겠습니다. 테이블의 구조를 확인할 수 있는 그래픽 기반 프로그램인 "MySQL Workbench"나 "Sequel Pro" 등이 있습니다. MySQL Workbench는 윈도우즈 OS 환경에서 최적화된 솔루션이라고 생각합니다. Workbench는 사용할 수 있는 기능도 많고, 다이어그램까지 테이블에 맞추어서 제공해줄 정도로 기본과 향상된 추가 기능을 제공합니다. 또한, Seq..
SQL을 사용하여 테이블을 구성하려면, 테이블을 설계하고, 테이블을 설계하려면, 컬럼을 구성해야합니다. 컬럼을 구성 하기 위해서는 기술적으로 인덱스를 사용하고 구조를 짜는 것도 중요하지만, 기본적으로 컬럼의 자료형을 적재적소에 사용하는 것이 제일 중요합니다. 이번 글은 컬럼의 자료형에 대한 설명을 하겠습니다. 컬럼의 자료형 1) 숫자형 TINYINT, INT, FLOAT 2) 문자형 CHAR, VARCHAR, TEXT, ENUM 3) 날짜형 DATE, DATETIME, TIMESTAMP 크게 나누면 위 3가지의 자료형이 존재합니다. 아래에 각 자료형에 따라서 자세한 설명을 하겠습니다. 숫자형 자료형 1) TINYINT- 가장 작은 숫자 자료형.- 부호가 있는 경우 -128 ~ 127. - 부호가 없는 경..
실제 검색어 사용 원칙을 저 같은 경우에는 다음과 같이 두고 있습니다. 1. SQL 문법은 대문자 2. 테이블명은 소문자 3. 컬럼명은 소문자 4. 띄어쓰기가 필요한 경우 언더바 "_" 사용 5. SQL 문법 사용의 구분자로는 스페이스 " " 사용 6. SQL 문법의 마지막은 세미콜론 ";"으로 마무리 1. 기본 검색 문법 SELECT [* 또는 컬럼명,...] FROM [테이블명,...]; SELECT 와 FROM : 문법을 구분하기 위한 예약어입니다. 검색을 쿼리를 사용하기 위한 예약어. * : 애스터 리스크라고 불리고, 라틴어로 작은 별이라고 합니다. 모든 열(컬럼)을 상징하는 메타문자입니다. 테이블명 : 원하는 검색 내용을 가져올 테이블을 지정합니다. 테이블은 여러개를 지정할 수 있습니다. EX)..
데이터베이스를 사용하면서 우리는 SQL과 NoSQL로 구분을 해왔습니다. SQL은 SQL이라는 문법을 사용해서 RDBMS를 이용하는 데이터베이스라는 뜻으로 사용해왔고, NoSQL은 말 그대로 SQL이 아닌 모든 데이터베이스를 통칭합니다. 우리는 여기서 SQL 문법을 사용하는 RDBMS의 종류를 살펴보겠습니다. 여기서는 대중적이고 가장 오래된 RDBMS부터 순서대로 설명하겠습니다. 1. Oracle - 1979년 Oracle에서 상업화된 SQL RDBMS를 처음 서비스하기 시작했습니다.- 현재 가장 많이 쓰이는 RDBMS중 하나이고 사실상 SQL의 표준라고 볼 수 있습니다.- 유닉스 기반의 워크스테이션에서 최적화 시켜서 작은 네트워크를 기반으로 서비스를 시작했습니다.- 현재는 윈도우, 유닉스 기반의 모든 ..
MySQL을 사용하게 되면, 사용자가 원하는 내용을 제공해주기 위해서 많은 고민을 하게됩니다. 1 . "어떻게 하면 빠르게 정보를 검색,제공 해줄 수 있을까?" - 빠른 서비스 제공 2 . "가능한 적은 자원으로 동일한 서비스를 제공할 수 있을까?" - 효율적인 서비스 운영 위 두가지 질문을 많이 떠올린다고 생각합니다. 2번 질문은 쿼리 최적화, 캐싱의 이용과 같은 로우 레벨의 운영부분이다. 여기서는 1번 질문을 해결할 수 있는 인덱스에 대한 이야기를 해보겠습니다. 빠른 속도의 서비스 제공을 하기 위해서는 DB를 정규화하는 방법도 있지만, 다른 한편으로는 인덱스를 사용하는 방법도 있습니다. 이 글을 읽고 있는 사용자들이 어떤 DB 구조를 사용하고 있는지 모르고 있기 때문에 인덱스를 설명하는 게 DB를 빠..