본문 바로가기

전체 글

서브쿼리,집합연산 서브쿼리 쿼리문 내에 또 다른 쿼리문이 있는 형태 서브쿼리는 메인쿼리에 포함되는 관계 ()을 사용해 감싸는 형태 ORDER BY를 사용하지 못함 사용가능한 위치: SELECT,FROM,WHERE,HAVING,ORDERBY 종류:단일행서브쿼리,다중행 서브쿼리,다중컬럼 서브쿼리 (1)단일 행 서브쿼리 결과가 레코드 하나인 서브쿼리 일반 연산자(=, 등) 사용 select * from city where CountryCode = (select Code from country where Name="South Korea"); (2)다중 행 서브쿼리 결과가 레코드 여러 개인 서브쿼리 다중행 연산자(IN,ALL,ANY,EXISTS) 사용 ALL:여러개의 AND 효과(가장 큰 값과 비교) ANY:여러개의 레코드의 OR.. 더보기
LIKE 검색,NULL,GROUPBY/HAVING LIKE 검색 정확한 키워드를 모를 경우 일부만으로 검색하는 방법 와일드카드(%,_)를 사용하여 패턴매칭 %:0~n글자 _: 1글자 LIKE검색은 매칭하기 위해 DMBS에 부담이 많으므로 논리조건자와 중복해서 사용하지 않는게 좋다. select * from city where name like "K%"; select * from city where name like "%K"; select * from city where name like "%K%"; select * from city where name like "K____"; NULL NULL이란 해당 컬럼의 값이 없다는 의미를 가진다. NULL값을 가지고 있는 컬럼을 검색하려면 is NULL NULL이 아닌 값을 가지고 있는 컬럼을 검색하려면 is n.. 더보기
StringBuilder를 활용한 dfs StringBuilder를 활용한 dfs 알고리즘 풀이(소수 찾기) public class FindPrimeNumber { // 소수 찾기 public static void main(String[] args) { String numbers = "1231"; System.out.println(solution(numbers)); } public static int solution(String numbers) { HashSet hashSet =new HashSet(); boolean[] visited = new boolean[numbers.length()]; StringBuilder sb = new StringBuilder(); for(int i=1; i 더보기
JWT,Annotation JWT 모바일이나 웹의 사용자 인증을 위해 사용하는 암호화된 토큰을 의미. JWT 정보를 리퀘스트에 담아서 사용자의 정보 열람, 수정 등 개인적인 작업 등을 수행할 수 있게 함 클라이언트 사용자가 아이디, 패스워드를 통해 서비스 인증 서버에서 서명된 JWT를 생성하여 클라이언트에 응답으로 돌려줌 클라이언트가 서버에 데이터를 추가적으로 요구할 때 JWT를 HTTP Header에 첨부 서버에서 클라이언트로부터 온 JWT 검증 JWT Header:타입,해시 알고리즘의 종류 JWT Payload:서버에서 첨부한 사용자 권한 정보와 데이터 JWT Signature:Header와 Payload를 encode 한 후 Header에 명시된 해시함수를 적용하고, 개인키로 서명한 전자서명 Annotation 주석처럼 달아.. 더보기
dfs 순열 알고리즘 dfs 순열 알고리즘 public static void permutation(int n,int r) { int[] answer = new int[r]; int[] arr = new int[n]; for(int i=1; i 더보기
SELECT INTO, INSERT INTO SELECT,CASE WHEN END SELECT INTO 쿼리 결과를 새 테이블로 만든다. MySQL에서는 CREATE TABLE 테이블명 SELECT ~ FROM ~ 기존에 존재하는 않는 테이블이 새로 생성된다.(일종의 뷰와 동일한 효과) create table city_kor select * from city where CountryCode="KOR"; select * from city_kor; INSERT INTO SELECT 쿼리결과를 기존의 테이블에 추가한다(기존 테이블이 존재해야함) SELECT하는 테이블과 INSERT하는 테이블은 동일한 구조를 가져야한다. show create table city; CREATE TABLE `city_kor` ( `ID` int NOT NULL AUTO_INCREMENT, `Name` char(.. 더보기
JOIN,ALIAS,VIEW JOIN 서로 다른 테이블을 공통 컬럼을 기준으로 합치는 테이블단위연산 조인시 서로 다른 테이블에 같은 컬럼명이 존재하면 구분을 위해 테이블명.컬럼명으로 사용해서 표시 종류 (1)INNER JOIN:조인 시 NULL값을 혀용하지 않음 (2)LEFT JOIN:조인 시 JOIN의 왼쪽 테이블의 NULL값을 포함해서 표시 (3)RIGHT JOIN:조인 시 JOIN의 오른쪽테이블의 NULL값을 포함해서 표시 (4)FULL JOIN:LEFTJOIN+RIGHTJOIN(MySQL은 지원하지 않음) Select country.name, city.name from city join country on city.CountryCode = country.Code; ALIAS SQL쿼리 결과 생성시 컬럼명에 대한 별명을 사용해.. 더보기
RestfulAPI RESTAPI규칙 URI는 동사보다는 명사를, 대문자보다는 소문자를 사용하여야 한다. 마지막에 슬래시 (/)를 포함하지 않는다. 언더바 대신 하이폰을 사용한다. 파일확장자는 URI에 포함하지 않는다. 행위를 포함하지 않는다. REST란 HTTP URI를 통해 자원을 명시하고, HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미합니다. REST특징 Server-Client(서버-클라이언트 구조) Stateless(무상태) Cacheable(캐시 처리 가능) Layered System(계층화) Uniform Interface(인터페이스 일관성) 더보기