ORDER BY로 오름차순 정렬하기 SELECT 열명 FROM 테이블명 WHERE 조건식 ORDER BY 열명; //기본이 오름차순 SELECT 열명 FROM 테이블명 WHERE 조건식 ORDER BY 열명 ASC;ORDER BY로 내림차순 정렬하기 SELECT 열명 FROM 테이블명 WHERE 조건식 ORDER BY 열명 DESC; 문자는 사전식 순서에 의해 대소관계가 결정된다. 참고로 숫자를 문자열 형식으로 저장하게 되면 '10'은 '2'보다 작은것으로 판단된다. (사전식 정렬에 의해) 복수의 열을 지정해 정렬하기 앞에 명시한 열기준으로 먼저 정렬된다. SELECT 열명 FROM 테이블명 WHERE 조건식 ORDER BY 열명1 정렬방식, 열명2 정렬방식; //정렬방식엔 ..
데이터조회하기 (SELECT) SELECT * FROM 테이블명; // 애스터리스크(*)는 모든 열을 의미한다. SELECT 열명1, 열명2 FROM 테이블명; // 테이블의 열명1 열명2에 대한 행을 조회 예약어의 데이터베이스 객체명은 대소문자를 구별하지 않는다. 표 형식의 데이터는 '행(레코드)'와 '열(컬럼/필드)'로 구성된다. 테이블 구조 참조하기 (DESC) DESC 테이블명;검색 조건 지정하기 (WHERE) SELECT 열1, 열2 FROM 테이블명 WHERE 조건식; WHERE절 예제 SELECT * FROM 테이블명 WHERE no = 2; //no열의 값이 2인 경우만 조회 SELECT * FROM 테이블명 WHERE no 2; //no열의 값이 2가 아닌 경..
검색엔진 검색엔진을 이용하다보면, 검색어를 타이핑 하는 순간 연관된 추천 검색어들이 나오는 것을 알 수 있습니다. 어떻게 사용자가 타이핑을 하는 그 '찰나'에 추천 검색어를 찾아 낼 수 있었을까요? 그리고 많은 인터넷 문서들 가운데, 검색 키워드에 맞는 문서들을 찾아 낼 수 있을까요? 일반적인 선형검색을 떠올린다면 절대로 불가능한 속도라는 것을 알 수 있습니다. 엘라스틱 서치는 왜 빠를까? 엘라스틱 서치는 Apache Lucene기반의 오픈소스 '검색엔진'입니다. 그럼 엘라스틱 서치와 같은 검색엔진들은 왜 그렇게 빠른 걸까요? MySQL과 같은 관계형 데이터베이스에 익숙하다면, 테이블이 인덱싱(색인작업) 되면 복잡한 쿼리에서 훨씬 더 나은 성능을 보여준다는 것을 잘 알고 계실겁니다. (인덱싱은 빠른 검색..
개요아주 간단하지만 아주 끔찍한(?) 클래스를 하나 보겠습니다. class MyClass { void myMethod1() { System.out.println("A"); System.out.println("B1"); System.out.println("C"); } void myMethod2() { System.out.println("A"); System.out.println("B2"); System.out.println("C"); } } public class Main { public static void main(String[] args) { MyClass myClass = new MyClass(); myClass.myMethod1(); myClass.myMethod2(); } } 위의 MyClass..
※이 포스팅은 academind의 SQL vs. NoSQL을 번역한 포스팅입니다. [개요]웹 애플리케이션 개발을 위한 첫 걸음을 내딛은 이후에 한가지 선택사항을 마주하게 됩니다. MySQL와 같은 SQL을 사용할 것인가? 아니면 MongoDB같은 NoSQL을 사용할 것인가?Node.js에 익숙하신 분들이라면 NoSQL (MongoDB)이 더 좋다는 인상을 가지고 계실지도 모르겠지만 잘못된 생각입니다.이 글에서는 SQL과 NoSQL 데이터베이스의 핵심적인 개념을 소개하고 각 솔루션의 차이점 그리고 장단점을 설명하도록 하겠습니다. [SQL (관계형 데이터베이스)]SQL은 '구조화 된 쿼리 언어 (Structured Query Language)'의 약자입니다. 그러므로 데이터베이스 자체를 나타내는 것이 아니라..
Codility - Triangle ☞ 문제 링크 문제 설명 중복되지 않는 인덱스 3가지를 선택하고, 2가지 인덱스 값의 합이 나머지 1가지의 인덱스 값보다 모두 큰 경우가 존재하는지 찾는 문제입니다. 예제로 주어진 케이스는 A[0] = 10, A[2] = 5, A[4] = 8 인 경우인데,10 + 5 > 8 (참) // A[P] + A[Q] > A[R]5 + 8 > 10 (참) // A[Q] + A[R] > A[P]8 + 10 > 5 (참) // A[R] + A[P] > A[Q]세가지 경우가 문제에 내용을 만족하는 참입니다. 이런 경우의 배열이라면 1을 반환하고, 아니라면 0을 반환해야 합니다. 풀이에 핵심은 배열을 정렬한 상태에서 인접한 세개의 인덱스간의 비교만 진행하면 됩니다.(그리고 인덱스에 대한..
참고링크 Orcal 문서 - Using Thread Dumps를 참고하여 번역한 포스팅입니다. 의역 오역이 있을 수 있습니다. 쓰레드 덤프란? 이 챕터는 Oracle JRockit JVM 쓰레드 덤프를 어떻게 얻고 사용하는지에 대해서 설명합니다. 그리고 기본적인 지식으로는 쓰레드와 쓰레드 동기화에 대해서 알고 있어야 합니다.쓰레드 덤프란 프로세스에 속한 모든 쓰레드들의 상태를 기록(snapshot)한 것입니다. 그리고 각 쓰레드들은 ‘스택 추적(stack trace)’ 형태로 보여집니다. 쓰레드들은 직접 실행시킨 Java 응용 프로그램의 쓰레드와 JVM 내부적으로 존재하는 쓰레드로 나뉘게 됩니다.쓰레드 덤프는 발생된 문제들을 분석하거나 혹은 응용 프로그램과 JVM의 성능을 최적화 하는데 도움을 주는 정보..
지연 로딩? 예를 들어 A라는 객체가 B라는 객체를 가지고 있다면, A를 데이터를 불러 올 때 해당되는 B의 데이터도 필요합니다. 하지만 B객체에 대한 정보가 굳이 필요 없는 상황에서도 B데이터까지 모두 데이터베이스에서 불러오는 작업을 한다면 비효율적인 작업이 됩니다. 이런 상황에서 성능을 올리기 위한 방법으로 JPA의 '지연 로딩'이 있습니다. 실제로 B객체의 데이터가 사용 될 때, B데이터를 불러오고, 그렇지 않다면 굳이 B객체 데이터를 사용하지 않습니다. 지연 로딩을 구현하기 위해서 JPA (정확히는 Hibernate)에서는 프록시 디자인 패턴을 사용합니다. 프록시 디자인 패턴 이미지 출처 ㅣ 위키 백과 클라이언트(Client)가 특정 객체(Subject)를 사용하게 될 때, 이를 구현한 (혹은 상..