본문 바로가기

MySQL11

간단한 SQL DDL, DML, DCL 설명 DDL(Data Definition Language) - 데이터 정의 언어 : 테이블이나 관계의 구조를 생성하는데 사용하며 CREATE, ALTER, DROP,TRUNCATE 문 등이 있다. CREATE - 새로운 데이터베이스 관계 (테이블) View, 인덱스 , 저장 프로시저 만들기. DROP - 이미 존재하는 데이터베이스 관계 ( 테이블 ) , 뷰 , 인덱스 , 저장 프로시저를 삭제한다. ALTER - 이미 존재하는 데이터베이스 개체에 대한 변경 , RENAME의 역할을 한다. TRUNCATE - 관계 ( 테이블 )에서 데이터를 제거한다. ( 한번 삭제시 돌이킬 수 없음.) DML(Data Manipulation Language) - 데이터 조작 언어 : 테이블에 Record의 데이터 검색, 삽입, .. 2019. 1. 30.
SQL 정렬 ORDER BY 우리는 DB에서 원하는 정보를 가져와서 사용합니다. 원하는 정보를 가져와서 활용하는데에는 모바일용 SQL Lite에 저장하는 과정이나, 바로 DB에서 전달된 Response를 보고 정보를 Client에서 보여주기 위한 과정에서 사용합니다. 그런데 그 과정에서 사용하다보면 어떤 기준에 맞게 레코드(행)을 정렬하는 과정이 정말 중요합니다. 저도 서비스를 개발하면서 사용하다보니 느낀거지만 정말 중요합니다. 예를 들면, 시간 정렬, 사용자 검색 문자 기준 정렬 등 많은 기준으로 Response를 만드는데 사용했습니다. 그러면 정렬 쿼리에 대한 이야기를 시작하겠습니다. 정렬 쿼리 ORDER BY SELECT [열,...] FROM [테이블명] WHERE [조건식] ORDER BY [정렬할열 정렬방식,...]; e.. 2017. 6. 5.
SQL 조건 검색 SQL에서 SELECT를 이용한 검색을 하는 경우에 많은 프로그래머들이 테이블의 모든 레코드를 불러와서 사용하는 경우는 없을 겁니다. 원하는 레코드만을 가져와서 원하는 컬럼을 뽑아서 사용하기를 바랍니다. 그래서 조건 검색을 하게 됩니다. 조건 검색 문법 기존 검색 문법인 SELECT [테이블열,...] FROM [테이블명,...]; 에서 WHERE 키워드 문법을 추가하면 조건 검색 문법이 됩니다. 조건 검색을 추가한 문법은 다음과 같습니다. SELECT [테이블열,...] FROM [테이블명,...] WHERE [검색조건]; Ex) 예를 들면, pin_info라는 다음과 같은 테이블이 존재하고 레코드도 들어가 있다고 가정합니다. 다음과 같은 명령어를 실행합니다. SELECT p_id, cr_time FR.. 2017. 6. 2.
SQL 테이블 구조 확인 우리 테이블은 다음과 같은 과정으로 구조가 결정됩니다. 첫번째, 테이블에 구조를 설계한다. 두번째, 실제 테이블을 만든다. 세번째, 실제 테이블에 설계한 구조에 맞게 컬럼을 만든다. 네번째, 제대로 테이블의 구조가 생성되었는지 확인한다. 위에서 바로 네번째에 해당하는 부분을 테이블 구조 확인이라고 합니다. 이 네번째를 대해서 다뤄 보겠습니다. 테이블의 구조를 확인할 수 있는 그래픽 기반 프로그램인 "MySQL Workbench"나 "Sequel Pro" 등이 있습니다. MySQL Workbench는 윈도우즈 OS 환경에서 최적화된 솔루션이라고 생각합니다. Workbench는 사용할 수 있는 기능도 많고, 다이어그램까지 테이블에 맞추어서 제공해줄 정도로 기본과 향상된 추가 기능을 제공합니다. 또한, Seq.. 2017. 6. 1.
SQL 자료형 SQL을 사용하여 테이블을 구성하려면, 테이블을 설계하고, 테이블을 설계하려면, 컬럼을 구성해야합니다. 컬럼을 구성 하기 위해서는 기술적으로 인덱스를 사용하고 구조를 짜는 것도 중요하지만, 기본적으로 컬럼의 자료형을 적재적소에 사용하는 것이 제일 중요합니다. 이번 글은 컬럼의 자료형에 대한 설명을 하겠습니다. 컬럼의 자료형 1) 숫자형 TINYINT, INT, FLOAT 2) 문자형 CHAR, VARCHAR, TEXT, ENUM 3) 날짜형 DATE, DATETIME, TIMESTAMP 크게 나누면 위 3가지의 자료형이 존재합니다. 아래에 각 자료형에 따라서 자세한 설명을 하겠습니다. 숫자형 자료형 1) TINYINT- 가장 작은 숫자 자료형.- 부호가 있는 경우 -128 ~ 127. - 부호가 없는 경.. 2017. 6. 1.
SQL 테이블 검색 실제 검색어 사용 원칙을 저 같은 경우에는 다음과 같이 두고 있습니다. 1. SQL 문법은 대문자 2. 테이블명은 소문자 3. 컬럼명은 소문자 4. 띄어쓰기가 필요한 경우 언더바 "_" 사용 5. SQL 문법 사용의 구분자로는 스페이스 " " 사용 6. SQL 문법의 마지막은 세미콜론 ";"으로 마무리 1. 기본 검색 문법 SELECT [* 또는 컬럼명,...] FROM [테이블명,...]; SELECT 와 FROM : 문법을 구분하기 위한 예약어입니다. 검색을 쿼리를 사용하기 위한 예약어. * : 애스터 리스크라고 불리고, 라틴어로 작은 별이라고 합니다. 모든 열(컬럼)을 상징하는 메타문자입니다. 테이블명 : 원하는 검색 내용을 가져올 테이블을 지정합니다. 테이블은 여러개를 지정할 수 있습니다. EX).. 2017. 5. 29.
SQL 기반 RDBMS 종류 데이터베이스를 사용하면서 우리는 SQL과 NoSQL로 구분을 해왔습니다. SQL은 SQL이라는 문법을 사용해서 RDBMS를 이용하는 데이터베이스라는 뜻으로 사용해왔고, NoSQL은 말 그대로 SQL이 아닌 모든 데이터베이스를 통칭합니다. 우리는 여기서 SQL 문법을 사용하는 RDBMS의 종류를 살펴보겠습니다. 여기서는 대중적이고 가장 오래된 RDBMS부터 순서대로 설명하겠습니다. 1. Oracle - 1979년 Oracle에서 상업화된 SQL RDBMS를 처음 서비스하기 시작했습니다.- 현재 가장 많이 쓰이는 RDBMS중 하나이고 사실상 SQL의 표준라고 볼 수 있습니다.- 유닉스 기반의 워크스테이션에서 최적화 시켜서 작은 네트워크를 기반으로 서비스를 시작했습니다.- 현재는 윈도우, 유닉스 기반의 모든 .. 2017. 5. 26.
MySQL 인덱스란? MySQL을 사용하게 되면, 사용자가 원하는 내용을 제공해주기 위해서 많은 고민을 하게됩니다. 1 . "어떻게 하면 빠르게 정보를 검색,제공 해줄 수 있을까?" - 빠른 서비스 제공 2 . "가능한 적은 자원으로 동일한 서비스를 제공할 수 있을까?" - 효율적인 서비스 운영 위 두가지 질문을 많이 떠올린다고 생각합니다. 2번 질문은 쿼리 최적화, 캐싱의 이용과 같은 로우 레벨의 운영부분이다. 여기서는 1번 질문을 해결할 수 있는 인덱스에 대한 이야기를 해보겠습니다. 빠른 속도의 서비스 제공을 하기 위해서는 DB를 정규화하는 방법도 있지만, 다른 한편으로는 인덱스를 사용하는 방법도 있습니다. 이 글을 읽고 있는 사용자들이 어떤 DB 구조를 사용하고 있는지 모르고 있기 때문에 인덱스를 설명하는 게 DB를 빠.. 2017. 5. 22.
MySQL 스토리지 DB의 성능 튜닝은 어떻게 디스크 I/O를 줄이면서 최대한의 작업을 할 수 있는가에 대한 고민입니다. 그래서 여기서는 스토리지 I/O 속도와 I/O의 방식에 대해서 이야기 해보겠습니다. 스토리지 속도는 서버에 사용하는 스토리지 종류에 따라서 다릅니다. 서버에 사용하는 스토리지 종류: 네가지로 나눌 수 있습니다. 아래로 내려가면 내려갈 수록 기존의 스토리지의 단점을 극복해나가면서 생겨난 스토리지의 종류입니다.1) Internal Disk - 내장 디스크라고 불리고 개인용 PC의 본체에 장착된 디스크와 비슷한 구성과 종류로 구성됩니다.- 다만 DB용으로 최적화된 스토리지를 개인 PC에 장착하는 것처럼 4~6개 정도를 연결해서 사용하는 형태입니다.- 연결할 수 있는 공간과 갯수가 제한적이기 때문에 용량의 한계.. 2017. 5. 22.
MySQL Full Text Search Index 사용하기 전문 검색(Full Text Search)은 검색 기능을 서비스에 도입하고 싶은 분들에게 필요한 기능입니다. 기존의 인덱스와 다른 방식의 인덱스입니다. MySQL의 B-Tree Index ( 보통 그냥 Index 라고 불림 ): Index의 경우에는 한 컬럼 안에서 비슷한 형식의 데이터 중에서 원하는 데이터를 찾는 경우 사용하는 것이 일반적입니다. 예를 들면,위도, 경도, 나이 등등, 비슷한 특정한 범위 안에서 데이터를 찾을 수 있게 인덱싱을 도와주는 경우입니다.위도 -90.0~+90, 경도 -180~+180, 나이 0~150 MySQL의 Full-text Index ( 보통 Full-text Index 라고 부름 ): Full-text Index의 경우에는 한 컬럼 안에서 많은 형태의 데이터가 담겨있어.. 2017. 5. 18.
MySQL에 대한 간단한 설명 MySQL이란 무엇인지 간단하게 소개하겠습니다. 이미 많은 개발자들이 RDBMS를 배우면서 가장 기본 베이스로 배우는 MySQL입니다. 1979년 MySQL은 스웨덴의 TcX라는 회사의 터미널 인터페이스로 제공하는 라이브러리 데이터베이스 UNIREG로 시작되었습니다. 1994년 UNIREG는 웹 시스템 데이터베이스로 TcX 회사 내에서 최초 MySQL 1.0을 사용하기 시작했습니다. 1996년 MySQL은 대중에 공개되었습니다. 2000년 TcX 회사에서 MySQL을 개발한 몬티와 데이빗이 MySQL AB라는 회사로 독립하면서 FPL(Free Public License) 정책으로 바뀌었습니다. 2006년 최종적으로 두 가지 라이센스 정책(MySQL 엔터프라이즈 버전, 커뮤니티 버전)으로 서비스를 하게되었.. 2017. 5. 11.