본문 바로가기

Study107

DB - SELECT 시 순위 출력 Mysql과 Mariadb에서 실험 ROW_NUMBER() : 설정에 따른 순서 반환(중복 상관 X) DENSE_RANK() : 설정에 따른 순서 반환(중복 순위 존재 상관없이 다음값 반환) RANK() : 설정에 따른 순서 반환(중복 순위 존재 시 해당 단계 건너띄고 다음값 반환) 옵션) OVER([PARTITION BY {그룹핑할 컬럼}] [ORDER BY {정렬할 컬럼}]) (PARTITION BY 없이 ORDER BY 단독 사용 가능) 예) SELECT T.NUM , ROW_NUMBER() OVER (ORDER BY T.NUM) AS ROW_NUMBER , DENSE_RANK() OVER (ORDER BY T.NUM) AS DENSE_RANK , RANK() OVER (ORDER BY T.NUM).. 2021. 1. 15.
MYSQL - LIKE와 IN을 함께 사용하기 MYSQL에선 LIKE와 IN을 함께 사용할 수 없음 정규식을 활용해 문제를 해결할 수 있음 사용법 WHERE {컬럼} REGEXP '문자열1|문자열2|문자열3|...' 사용 예) WHERE TEXT REGEXP '이런|문자열도|있고|저런|문자열도|있음' 위와 같은 사용법을 풀어쓰면 아래와 같음 WHERE TEXT LIKE CONCAT('%', '이런', '%') OR TEXT LIKE CONCAT('%', '문자열도', '%') OR TEXT LIKE CONCAT('%', '있고', '%') OR TEXT LIKE CONCAT('%', '저런', '%') OR TEXT LIKE CONCAT('%', '문자열도', '%') OR TEXT LIKE CONCAT('%', '있음', '%') 참조 : http.. 2021. 1. 15.
MYSQL - 비밀번호가 다르다고 할 경우 해결방법 잘 사용하던 DB의 비밀번호가 어느날 갑자기 다르다고 할 경우 아래의 방법들을 확인해보자. DB 서버가 종료 됨 서비스 창에서 DB가 실행되고 있는지 확인 비밀번호가 바뀜 APMSetup 같은 프로그램 설치로 인해 비밀번호가 바뀔 수 있으니 최근에 설치한 프로그램을 확인 (APMSetup 설치 시 비밀번호 : apmsetup) DB 접속 유저 권한이 바뀜 외부 접속 혹은 기타 사유로 인해 권한이 바뀌어서 접속이 안될 수 있음 DB Connect Port가 변경됨 혹은 사용중 사용하는 DB의 포트가 중복되거나 제대로 사용되고 있는지 확인 커맨드 창에서 netstat -a 명령어로 확인 비밀번호를 잘못 침 Capslock 및 여러가지 확인 2021. 1. 15.
MYSQL - my.ini 위치 Mysql 설정을 변경하기 위해 my.cnf 혹은 my.ini을 변경하라고 많이들 써있음, 하지만 이건 유닉스나 리눅스 환경에서 해당하는 이야기... my.cnf는 윈도우에 없음, my.ini을 찾아야 하는데 여기서 또 헤맴 대부분은 ProgramFiles/MySQL/MySQL Server 5.~/ 에 존재한다고 하는데 해당 폴더에 가보면 my.ini이 아닌 my-default.ini이 우릴 반겨줌 열심히 구글링을 해보았지만 딱히 답이없음 그래서 파일 이름찾기로 찾아봄 ProgramFiles가 아닌 ProgramData에 존재... C:\ProgramData\MySQL\MySQL Server 5.~\ 2021. 1. 15.
MYSQL - 주석 단일 주석(사용 DB마다 다를 수 있음) -- 주석 (슬래시 두개와 띄어쓰기 후 입력) # 주석 (샾과 띄어쓰기 후 입력) 다중 주석 /* 주석 */ 2021. 1. 15.
MYSQL - 재귀쿼리(WITH) 같은 결과를 반복하는 명령어들을 한번 실행 후 기억함으로써 불필요한 작업을 줄여준다. WITH CTE AS( SELECT ~ ) SELECT x FROM CTE MYSQL 8.0, MARIADB 10 버전부터 지원 보통 WITH의 결과를 CTE에 담는데 이름은 달라져도 상관없다. MYSQL에서는 WITH RECURSIVE CTE AS 와 같이 'RECURSIVE' 명령어가 들어가야 사용 가능하다. WITH RECURSIVE CTE(A, B, C) AS() 와 같이 결과물에 나타 낼 컬럼을 설정 할 수 있다(설정을 안 할 경우 전체값). WITH절의 SELECT가 JOIN등 테이블 사이의 관계를 통해 동일한 컬럼이 있을경우 제대로 출력이 되지 않으니 컬럼명을 일일히 기입해주는것이 좋다. 2021. 1. 15.
MYSQL - LPAD(RPAD) 정해진 문자를 정해진 길이가 될 때까지 문자열의 왼쪽에 붙게 해주는 명령어 LPAD({문자열},{조합 결과 문자열의 길이},{문자열 왼쪽에 붙을 문자}) 예1) SELECT LPAD('hi',4,'?'); > ??hi 예2) SELECT LPAD('hi',1,'?'); > 'h' ※ RPAD는 LPAD와 반대로 생각하면 된다(왼쪽 > 오른쪽) 참조 : http://blog.naver.com/PostView.nhn?blogId=pstormage&logNo=130121479405&parentCategoryNo=&categoryNo=11&viewDate=&isShowPopularPosts=true&from=search 2021. 1. 15.
MYSQL - 다중 LIKE 여러 단어를 포함하는 컬럼을 찾고 싶을 경우 REGEXP 구문을 사용하면 된다. 구분은 ( | )를 사용. 사용 예 SELECT * FROM TB WHERE MENU_NM = REGEXP '1단|2단|3단' 참조 : https://yamea-guide.tistory.com/entry/MySqlMariaDB-Like-in-%EA%B0%99%EC%9D%B4-%EC%93%B0%EA%B8%B0-%ED%95%B4%EA%B2%B0%EC%B1%85-REGEXP 2021. 1. 15.
AWS - 도메인 설정(Route 53) 1. AWS 인스턴스에 구매한 도메인을 연결할 경우(AWS가 아닌 다른곳에서 구매), Route 53 메뉴를 이용한다. 2. 대시보드 > 호스팅 영역 : 호스팅 영역 생성 클릭 3. 우측에 '호스팅 영역 생성' 이 나타나면 '도메인 이름(구매한 도메인)'을 입력 > 생성 4. 생성된 도메인 선택 > 상단의 '레코드 세트로 이동' 클릭 5. 레코드 유형 'NS' 항목의 '값'을 도메인 구매한 사이트의 네임서버에 입력한다. 6. 가비아에서 도메인을 구매 했을경우, 도메인관리 > 네임서버에서 설정 7-1. 레코드 유형 'A' 추가 : 상단의 '레코드 세트 생성' 클릭 후 아래 내용을 입력한다. 7-2. 유형 A는 IP를 도메인 네임으로 연결해준다(예 : 200.19.100.5 > NAVER.COM) - 이름 .. 2021. 1. 15.