데이터베이스(DB)의 테이블에서 만약 컬럼(필드)에 있는 값을 변경하려면 어떻게해야할까요. 이 경우 아래의 명령어를 사용하여 값을 변경할 수 있습니다. 이때 UPDATE 키워드를 사용합니다. UPDATE 키워드는 원하는 컬럼 안의 특정 값(레코드)의 값을 변경할 수 있게해줍니다. 먼저 간단한 사용방법은 아래와 같습니다.UPDATE 테이블명 SET 필드명='변경할값' WHERE 필드명=해당값;이처럼 update는 이미 존재하는 값을 변경하기 위해 사용되며 값을 찾기 위한 select문 다음으로 가장 많이 사용되지 않을까 생각됩니다. 그럼 아래는 간단한 사용 예제코드입니다.# update 사용해 하나의 값만 수정하기하나의 값을 수정하는 가장 기본적인 방법입니다. 수정할 필드와 찾을 값을 지정합니다.UPDATE
Last Modified : 2020-06-25 16:54:12PHP 언어에서 데이터베이스에 저장된 row의 모든 개수를 구하려면 어떻게 해야할까요? 우선 DB를 불러오기 위하여 SELECT문을 사용하여 일부 또는 모든 데이터를 얻고 해당하는 row 개수를 알아야할 것입니다. 이를 알기위한 방법으로 mysqli_num_rows() 함수를 사용할 수 있습니다.# PHP mysqli_num_rows() 함수 알아보기 이 함수는 해당하는 데이터의 총 개수를 숫자로 반환하여 줍니다. 만약 쿼리를 통해 가져온 데이터가 $data이라면 아래와 같이 간단하게 사용할 수 있습니다.mysqli_num_rows($data)위와 같이 상요하면 해당하는 쿼리문에서 반환된 row의 개수, 총 몇 개의 행을 가졌는지 그 개수를 반환하는 함수입니다. 예를 들어 아래와 같은 테이블이 존재하고 SE
Last Modified : 2017-12-18 07:45:48Redis 서버의 구축 및 운영 등 여러가지 방안에 대하여 생각한 바를 정리한 내용이다. 먼저 Redis 서버가 필요한 이유는 무엇일까...# Why Redis?Redis를 왜 구축하는가를 아려면 Redis가 무엇인지부터 알아야한다. ! Redis란?Redis는 데이터베이스의 여러 솔루션 중 하나로 메모리를 사용하는 키, 밸류 형식의 데이터베이스이다. Redis의 최고 장점은 메모리를 사용하기 때문에 매우 빠른 속도를 자랑한다. 일반적인 하드 디스크에 비하여 상대적으로 엄청나게 빠를수도 있다. 다만 메모리라는 제약으로 공간이 크지 않고 키, 밸류(Key, Value) 형식의 입출력 방식이기에 복잡한 데이터베이스에 적합하지 않다.위 내용만으로도 장점과 단점이 너무 극명하다. 빠르나 효과적인 주 데이터베이스로
Last Modified : 2017-10-27 06:31:50최근 PHP를 사용하여 간단한 공지사항을 만들 수 있는 방법에 대하여 알려주면서 이를 정리해보았습니다. 공지사항이지만 조금만 응용하면 바로 게시판 역시 만들 수 있을거라 생각합니다.아래의 수준은 HTML, CSS를 알고 클라이언트단의 UI만 구축할 수 있는 정도의 수준에서 설명하려 합니다. 이미 알고 계시는 부분이 있다면 양해바랍니다^^# PHP를 사용하여 공지사항을 어떻게 만들 것인가?공지사항을 만드려면 자료 구조, 데이터의 저장에 대한 고민이 선행되어야합니다. php는 서버를 구동하여 방문자의 접근이 가능한 환경을 구축할 뿐 데이터의 저장은 데이터베이스, db의 구축이 필요합니다.! 그럼 DB는 어떻게 구축해야하는가?DB가 있다면 우리는 그 곳에 원하는 정보를 저장하거나 읽을 수 있을 것입니다. 그리고
Last Modified : 2017-09-23 23:57:50인덱스 테이블에 대하여 알아보겠습니다. 인덱스 테이블(Indexes Table)이란 무엇일까요? 인덱스 테이블은 데이터베이스를 검색하기 위해 사용할 수 있는 특별한 테이블로써 데이터베이스 검색의 속도를 빠르게(?) 도와주는 역할을 합니다. 즉 데이터베이스를 사용하는데 있어 성능에 대한 문제 또는 개선을 위해 가장 먼저 확인하는 부분이 바로 인덱스 테이블입니다.인텍스 테이블은 테이블의 검색 속도를 빠르게 할 수 있는 별도의 테이블입니다. 이는 저절로 생성되지 않으며 관리자 또는 사용자에 의해 별도로 생성하거나 삭제할 수 있습니다. 이런 인덱스 테이블은 매우 간단한 방법을 통해 생성할 수 있으며 이에 대한 방법은 아래에 다뤄보도록 하겠습니다.인덱스 테이블은 간단하게 예를들어 책의 목차를 만드는 과정과 동일합니다
Last Modified : 2017-09-21 00:13:11데이터베이스의 조인이랑 다수의 테이블을 서로 묶어서 사용함에 있어 '조인(Join)한다'라고 합니다. 이때 서로 다른 테이블중 최소 하나의 필드는 서로 같은 값을 가지는 조인할 수 있는 컬럼(필드)이 반드시 필요합니다. 뒤의 예제는 각각의 id필드가 동일할 때 사용할 수 있습니다.조인(join)에서 각각의 테이블에 별칭(alias)를 설정할 수 있으며 별칭은 FROM절의 참조테이블 뒤에 한 칸 띄고 입력하면 됩니다. 이때 주의할 점이...i. 동일한 별칭이 존재할 수 없음ii. 테이블 내의 필드명과 동일한 별칭은 사용말 것위의 내용이 반드시 지켜져야만 합니다.그러면 아래에는 서로 다른 테이블의 조인 방법을 예제를 통해 알아보겠습니다. 만약 아래와 같이 두개의 서로 다른 테이블이 존재한다면...table 1
Last Modified : 2015-11-15 14:57:30Mysql의 경우입니다. PHP와 Database를 연결 및 동장 그리고 해제를 하기 위해서는 PHP 함수를 이용하며 3가지 함수를 사용합니다.1. mysqli_connect();mysqli_connect('host', 'user', 'password', 'dbname', 'port', 'socket');2. mysqli_query();3. mysqli_close();<?php// 파일 맨 상단에 추가$dbc = mysqli_connect(127.0.0.1, ensso, passwod, 'webisfree');if (mysqli_connect_errno($con)) { echo Failed to connect to MySQL: .mysqli_connect_errno();}$query = 'SELECT *
Last Modified : 2017-09-18 04:16:58SQL이 새로운 시대를 맞이하고 있다. NoSQL의 등장이후 변화의 모멘텀을 찾지 못했던 sql에게 클라우드(cloud)가 등장하면서 다시 한번 활기를 불어넣을 것 같다. 클라우드 sql은 무엇이고 차이점 및 장단전에 대하여 알아보고자한다.최근들어 여러업체에서 클라우드 데이터베이스 서비스를 제공하기 시작했다. 대표적으로 ms의 azure(애저)와 구글의 Google Cloud SQL, AWS가 대표적이다. 이 들 서비스들 모두 클라우드 sql의 대표적인 서비스 제공업체이며 Cloud DB와 NoSQL 역시 제공하고 있다. 데이터베이스 클라이두는 이제 본격적인 시작을 알리듯 치열한 홍보가 여러 곳에서 진행중으로 보이는데 이처럼 앞으로 DB 핵심 키워드는 클라우드 데이터베이스가 될 것으로 예상된다. 그럼 클라우
Last Modified : 2017-09-21 00:13:25Webisfree에는 다양한 메뉴가 존재하고 있다. 간단하게 HTML, CSS, Javascript 마지막으로 PHP의 카테고리가 존재한다고 생각해보자.이 메뉴들이 보여지는 순서를 만약 관리자가 직접 변경하는 것이 가능하다면? 또한 이렇게 구현하기 위한 방법으로 데이터베이스의 구조에 대하여 어떤 설계가 필요할지 논의해보고자 한다. 예를들어 ... 아래의 A는 B가 되고 싶다.< A >1. PHP2. HTML API3. Javascript< B >1. HTML2. PHP3. Javascript일반적으로 생성시점... 날짜에 따라 순서가 정해질 것이다. 또는 문자의 오름 및 내림차순으로 정렬할 수도 있다. 하지만 뭔가 더 중요하다고 판단되는 것이 위에 나오게 하기 위한 방법이 기획자의 의도라면?# 순서를 정하기
Last Modified : 2017-02-01 13:47:57간단한 몽고DB관련 명령어 및 MongoDB CLI(Command Line Interface)에서 사용 가능한 간단한 명령어들도 함께 알아보겠습니다. 먼저 데이터베이스를 조작하는 방법입니다.# 데이터베이스 관련 명령어 알아보기MongoDB CLI에서 출력, 조회를 비롯하여 생성, 삭제 등등의 다양한 명령어입니다. 아래에서 확인해보세요.! 설치된 모든 데이터베이스 리스트 출력하기존재하는 모든 데이터베이스를 보여줍니다.> show dbs> show databases아래와 같이 현재 MongoDB에 저장된 모든 데이터베이스의 이름과 크기를 출력합니다. 만약 local, test라는 데이터베이스를 가지는 경우라면 아래와 같이 나타납니다.local (empty)test 0.099GB여기서 local은 기본으
Last Modified : 2020-10-22 14:26:35가장 넓리 사용되는 Storage Engine 중 MyISAM과 InnoDB를 빼놓을 수는 없을 것입니다. 각각의 장점과 단점, 그리고 가장 큰 차이점은 무엇인지 알아보도록 하겠습니다. 우선 이 둘이 무엇인지 간략하게 알아봐야겠죠.먼저 일반적인 기업에서는 아무래도 복구 등의 기능을 가진 트랜잭션(Transaction)이 매우 중요하기 때문에 InnoDB를 사용하는 곳이 많을 것입니다. 특히 쇼핑몰처럼 많은 쿼리가 발생할 경우 InnoDB를 선호할 수 있다하겠습니다.1. MyISAM- ISAM의 업그레이드된 엔진임- 단순한 기능을 제공하는 대신 빠른 속도를 제공한다. (특히 Select문 반복사용시)- 무결성에 대한 보장이 되지 않는다.- 풀텍스트 인덱싱이 가능하다.- 테이블 단위의 락이 이루어짐2. Inno
Last Modified : 2016-05-03 01:27:54쿼리를 사용할 때 함게 사용가능한 함수들이 있습니다. 이런 함수를 사용하면 복잡한 쿼리문을 간단하게 코드에서 함수와 함께 사용하여 만들 수 있는데 아래는 자주쓰이는 대표적인 SQL 함수들을 정리한 내용입니다. 그럼 아래 목록을 봐주세요.!! 숫자 및 날짜 관련된 함수들1. ROUND() // 반올림을 수행SELECT ROUND(Column1, range of decimals)FROM tableA;2. TO_CHAR() // 현재의 타입에서 문자타입(String)으로 변환함SELECT TO_CHAR('ABC1234', 옵션)FROM tableC;3. TO_NUMBER() // 현재의 타입에서 number타입인 숫자로 변환함SELECT TO_NUMBER('ABC1234', 옵션)FROM tableD;4. TO_
Last Modified : 2016-01-13 13:15:14어제 새롭게 서버 이전을 계획하던 웹페이지에 접속했더니 데이터베이스의 자료를 읽어오지 못하던 오류가 나타났습니다... 갑자기 무슨 일인가 싶어 db에 직접 연결해보니 사용하던 MongoDB의 collection이 존재하지 않더군요. 이게 무슨 일인가 싶었는데 컬렉션을 조회해보니 모르는 데이터베이스가 새로 생성되어 있었습니다. 그 이름이 JUST_READ_ME였습니다..."혹시 해킹?"불길한 마음에 내용을 읽어보니 제 데이터를 보관하고 있다는 내용입니다. 내용은 길지 않았고 너는 해킹을 당했으며 아래로 비트코인을 보내라는 내용이었습니다. 또한 문의사항은 secmail.pro라는 곳의 이메일 계정으로 보내도록 되어있더군요... 그래서 알았습니다. 해킹은 결코 남의 일이 아니라는 것을!# 어떻게 해킹을 당했는가다
Last Modified : 2017-08-16 17:02:01데이터베이스로 사용되는 Redis와 MongoDB를 비교하는 글을 작성하려고 합니다.# Redis와 MongoDB 비교하기글을 시작하기에 앞서서 두 데이터베이스를 비교하는 것 자체는 무리가 있습니다. 그 이유는 보통 Redis와 MongoDB를 함께 사용하는 경우가 더 많기 때문입니다...이런 이유로 장점과 단점을 따지기는 조금 어렵습니다. 둘 다 사용하는 목적이 다르고 그 목적에 따라 각각의 장점을 지니고 있습니다.! 아래는 간략한 두 DB의 비교입니다.아래는 간략한 두 DB의 비교입니다. 두 개의 쓰임 및 목적에 차이가 있어 아무래도 비교보다는 어떤 장점이 있는지에 초점을 맞추었습니다.<table border="1"><tr><td bgcolor="#999" align="center">구분</td><td
Last Modified : 2020-07-23 23:25:31어플리케이션 아키텍처(Architecture) 단계에서 많이 고려되는 Redis 데이터저장소에 대하여 자세히 알아봅니다. Redis는 무엇이고 어떤 장점과 단점이 있는지 그리고 설치하는 방법 등에 대하여 알아봅니다.# Redis란 무엇인가, Redis의 이해Redis는 Remote Dictionary Server의 약자입니다. Redis는 In-Memory 방식으로 메모리를 사용하여 CRUD를 수행, 데이터를 저장하는 Data Storage입니다. NoSQL 방식의 데이터베이스로 Redis는 다른 데이터저장소에 사용되는 하드디스크(HDD), SSD 방식이 아닌 메모리를 사용하므로 성능 및 속도가 매우 빠르다는 장점이 있습니다. 다만 메모리는 용량에 따른 비용이 기하급수적으로 커지기 때문에 일반적으로 텍스트
Last Modified : 2020-08-09 12:23:20이번에 관계형 데이터베이스(RDBMS)에서 NoSQL로 이전을 진행하였습니다. 이런 과정에서 느낀 점들을 정리하려고합니다.? 왜 NoSQL로 바꾸었는가처음에는 스키마가 없는 구조의 NoSQL을 사용하여 성능 향상을 이루러던 것이 가장 큰 목적이었습니다. 하지만 RDBMS도 데이터에 따라서 어떤 솔루션을 사용하느냐에 따라서... 그리고 성능을 개선한 정도에 따라서 많은 속도 차이가 있더는 것을 알았습니다. 즉, 반드시 NoSQL이 빠르다고는 볼 수 없겠죠.? 직접 써보고 싶은 욕구"그렇다면 한번도 안써본 NoSQL을 사용해보자"라는 이유에서 선택하였습니다. 호스팅 역시 Cloud 형태의 AWS로 이전하였기에 AWS에서 제공하는DynamoDB를 사용할까 생각하였지만 NoSQL은 MongoDB를 먼저 접하는 것
Last Modified : 2017-08-16 17:08:50개발자들과의 미팅에서 아래와 같은 말을 쉽게 들을 수 있습니다."DB 스키마부터 정의하자.""데이터베이스 스키마가 잘못되어있었다" 등등...과연 데이터베이스 스키마란 무엇일까요? 아래에서 간단하게 알아보려고 합니다.# 데이터베이스 스키마란?먼저 스키마(Schema)란 용어는 심리학(Psychology)... 특히 인지 심리학에서 온 용어입니다. 스키마는 과거의 오래된 경험으로부터 생성된 것으로 생명체가 어떤 사물이나 대상으로부터 인지하고 반응하는 것을 말합니다. 즉 오랜 경험에 의하여 만들어진 행동의 결과가 바로 스키마죠.스키마가 무엇인지 알았다면 데이터베이스에서의 스키마 역시 비슷한 의미로 생각하면 될 것입니다. 물리적인 하드웨어 부분에서 데이터베이스가 생성되고 이를 직접적으로 사용하는 대상에게 인지하고
Last Modified : 2018-08-04 10:46:08SET연산자 중 하나인 union을 사용하면 두개 또는 그 이상의 테이블 결과를 합쳐서 나타낼 수 있습니다. 테이블을 합치는 union은 동일한 컬럼의 테이블 값을 찾는 조인(join) 구문과는 다른 점 유의하시기 바랍니다.UNION을 사용해 테이블을 합칠 경우 주의할 사항은 아래와 같습니다.사용할 컬럼의 수는 동일할 것ORDER BY를 사용해 정렬이 필요한 경우 맨 아래에 위치한 SELECT문에만 사용할 것중복된 값이 있는 경우 하나의 결과(distinct)만 가져옴# JOIN 구문 예제소스 보기SELECT *FROM sortWHERE name='apple'UNIONSELECT *FROM tagWHERE name='apple'LIMIT 10위 예제소스는 sort 테이블과 tag 테이블의 컬럼 name에 a
Last Modified : 2016-01-29 11:39:01MariaDB에 대하여 알아보려 합니다.# 마리아DB는?마리아DB는 관계형 데이터베이스(RDBMS)중 하나로 마이클 몬티 와이드니어스에 의하여 개발되었습니다. 마리아는 그의 둘째 딸 이름에서 따왔습니다.개발사 - MariaDB 코퍼레이션 Ab, MariaDB재단MariaDB 발표일 - 2009년 1월 22일# 마리아 DB의 장점은?마리아 DB의 가장 큰 장점은 MySQL 소스 코드를 기반으로 만들어졌으며 MySQL과 높은 호환성을 같는다는 점입니다. 대부분의 문법을 동일하게 사용할 수 있습니다. 또 다른 장점으로 속도입니다. MySQL과 비교했을때 높은 성능을 보여준다고 합니다. 국내에서는 카카오톡이 기존의 MySQL에서 MariaDB로 바꾼 사례가 있습니다.MariaDB는 계속해서 발전하고 있습니다. 또한
Last Modified : 2017-05-07 01:18:17루트킷(Rootkit)이란 무엇인지 알아봅니다.루트킷은 프로그램의 종류로 해커들의 행동들 수정이나 삭제 등을 감추는 역할을 합니다.정기적으로 Rootkit의 유무를 파악하는 것이 좋으며 이를 확인하는 툴이 존재합니다. 하지만 100% 완벽하게 찾는 것은 어려운데 그만큼 루트킷이 설치되면 교묘하게 감추기 때문입니다. 이 경우 인스턴스를 완전히 삭제하고 다시 생성하는 것이 방법이기도 합니다.처음에는 UNIX의 OS에서 사용되었으나 현재는 윈도우즈 등의 다른 OS에서도 Rootkit이 사용됩니다.
Last Modified : NoneMongoDB에 대하여 알아봅니다.# MongoDB의 이해MongoDB는 HBase 기반의 구조를 갖는 NoSQL 데이터베이스입니다.MongoDB는 Document를 가지며 필드와 값으로 구성됩니다. 모습은 자바스크립트의 JSON과 비슷한 BSON(Binary JSON)으로 JSON의 이진 JSON을 말합니다. 필드의 경우 규칙이 있는데 null, 점기호(.), 달러기호($)를 사용할 수가 없습니다.Table 대신에 Collection이라는 관련있는 데이터의 모집을 갖습니다.# MongoDB NoSQL을 사용한 모델수립 계획높은 퍼포먼스를 위하여 모델수립이 매우 중요합니다.# MongoDB 기타내용데이터베이스의 성능, 확장 등을 고려하여 인덱싱, 샤딩, 복제등의 작업이 수반된다.인덱싱(Index
Last Modified : 2017-08-16 17:00:23SQLlite3 장단점 알아보기
Last Modified : 2017-05-15 08:16:42아래는 MongoDB에서 데이터베이스의 이름을 변경하는 방법을 알아봅니다.# MongoDB 데이터베이스 이름 변경하기아쉽게도 MongoDB의 데이터베이스 구조상의 이유로 데이터베이스 이름을 바꾸는 간단한 명령어가 존재하지 않습니다. 그 이유는 데이터베이스 이름이 사용하는 모든 컬렉션 및 데이터에 저장되기 때문인데 아래에서는 이를 대체할 방법을 알아봅니다.결국 다른 방법을 찾아야되는데 생각해 볼 수 있는 방법은 데이터베이스를 새로운 이름으로 복사, 클론하는 방법입니다. 하지만 이 기능 역시 Deprecated되어 4.0 이 전의 버전에서만 가능하므로 다른 방법을 찾아야합니다."더 이상 copyDatabase()를 사용할 수 없다"대안으로는 mongodump와 mongorestore를 사용하는 방법이 있습니다.
Last Modified : 2020-10-22 15:21:51