일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- batch
- SSL
- >>
- Data Analysis
- SQL
- Linear models
- SSO
- 태블로
- https
- HTTP
- 하드웨어
- 선형회귀
- 클라우드
- SQL 테이블 삭제
- dns
- 테이블만들기
- Network
- 방화벽
- 날짜 함수
- 맵차트
- 파이썬
- MySQL
- 색상코드
- AWS
- map차트
- 배치파일
- SSO인증
- tableau
- SAML
- Today
- Total
목록SQL (11)
SeaForest

프로그래머스 | Lv.4단순하게 group by와 시간 함수를 사용하는 문제라고 생각하였지만, 문제에서 제시한 'ANIMAL_OUTS' 테이블에는 7시부터 19시까지의 입양건수만 있기 때문에 0시~6시, 그리고 18시~23시까지 시간대 데이터를 추가해야한다. 1. 정답 쿼리 -- WTIH문과 DUAL 테이블을 활용하여 0시~23시 데이터 생성 WITH HOUR AS ( SELECT LEVEL-1 AS HOUR FROM DUAL CONNECT BY LEVEL-1 2. TO_CHAR(datetime,'HH')>> 예를 들어 19시는 07시로 나오게 됨.SELECT animal_id, animal_type, datetime, to_char(datetime,'HH') as hourFROM AN..

1. 현재 날짜 조회SELECT SYSDATE FROM DUAL ; ※ 오라클에서 dual 테이블이란?- 꼭두각시 테이블 (박스는 있지만 내용물은 없음)- 오라클 자체에서 제공하는 테이블- 간단하게 함수를 이용해서 계산 결과값을 확인할 때 사용- 값을 가지는 하나의 행과 dummy라고 불리는 하나의 열이 있음(ex) 사용 예시SELECT 'ORACLE_TEST' FROM DUAL;SELECT 4 + 2 RESULT FROM DUAL; 2. 날짜에서 원하는 부분만 가져오기TO_CHAR 함수를 사용하여 날짜 데이터 중 원하는 데이터만 추출 가능.>> TO_CHAR(날짜타입값, '날짜포맷') : 데이터 유형이 '날짜' 인 데이터를 '날짜포맷'에 따라 문자열로 변환SELECT TO_CHAR(SYSDATE,'Y..
업무를 하면서 쿼리를 작성해야 하는 일이 많은데, 쿼리 길이가 점점 길어지고 복잡해지는 경우가 많아지고 있다. 심지어 내가 작성한 쿼리도 알아보기 힘들어 쿼리를 다시 이해하는데 시간을 쓰게 되어 비효율적으로 업무를 했던 경험도 있다. 그러다 보니 이전에는 가독성을 고려하지 않은 쿼리를 작성했다면 최근에는 누가 봐도 알아보기 쉬운, 유지보수에 어려움이 없는 쿼리를 작성하기 위해 고민하는 시간이 많아진 것 같다. 이미 쿼리 가독성을 높이는 방법에 대해 정리한 글은 꽤 있지만, 업무를 하면서 느낀 점들도 함께 정리해보았다. 1. 행갈이를 자주 하기 간단한 쿼리를 작성할 경우에는 행갈이를 많이 하지 않았고, 행갈이의 필요성을 알지 못했다. /* 행갈이를 많이 하지 않은 경우 */ SELECT col1, col2..

1. 정규화란 정규화 데이터베이스는 중복을 최소화하도록 설계된 데이터베이스 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법 관계형 데이터베이스에서 중복을 최소화하기 위해 데이터를 구조화하는 작업 하나의 종속성이 하나의 릴레이션에 표현될 수 있도록 분해하는 과정 데이터를 분해하는 과정 중복 데이터를 저장하면서 일으키는 문제점을 없애기 위해 정보를 주제별로 분할하는 프로그램 중복으로 데이터를 저장하면 일관되지 않은 데이터, 비정상적인 삽입 갱신 삭제 처리, 디스크 공간 낭비 등 많은 문제를 일으킴 정규화를 하면 불필요한 데이터를 입력하지 않아도 되기 때문에 중복 데이터가 제거됨 이상현상(Anomaly)를 해결하기 위해서는 데이터를 분해해야함 이상현상(Anomaly)란? 직원정보 ..

테이블 삭제하는 명령어인 DELETE / TRUNCATE / DROP 차이점 DELETE TRUNCATE DROP Rollback 가능 Rollback 불가능 Rollback 불가능 데이터만 삭제 테이블이 최초 생성된 초기 상태로 만듬 테이블 정의 자체를 완전히 삭제 데이터는 지워지지만, 테이블 용량은 그대로 유지 용량이 줄어들고, 인덱스 등도 모두 삭제 (테이블은 삭제 안하고 데이터만 삭제) 테이블 전체, 공간, 객체를 삭제 사용자 commit 자동 commit 자동 commit 로그 남음 로그 안남음 로그 안남음 DELETE FROM 테이블명 WHERE 조건; (조건을 입력하지 않으면 테이블의 모든 데이터가 삭제됨) TRUNCATE TABLE 테이블명; DROP TABLE 테이블명;

1. Database 사용 명령어 명령어로 여러 DB 중에서 사용할 DB를 정해야함. USE [DB이름] ; 왼쪽에 있는 여러 DB 중에서 world DB를 사용하는 경우 USE world; 2. 테이블 구조 확인 명령어 생성된 테이블의 컬럼과 제약조건, 자료형을 출력함. (ex. 칼럼 이름, 데이터 유형, 길이, NULL 허용 유무 등) describe [테이블명]; desc [테이블명]; explain [테이블명];

NULL값 처리 - NULL을 처리하는 함수가 Oracle, MSSQL, MYSQL 모두 다름 - Oracle은 NVL (value1,value2) , MSSQL은 ISNULL(value1, value2), MYSQL은 IFNULL(value1, value2) Oracle / name이 없는 경우는 'No name' 으로 출력 - NVL2(value1,value2,value3) : value1이 null이 아니면 value2를 반환하고, null이면 value3를 반환

※ Oracle 1. 고유 개수 name의 고유값을 count 하는 경우 - count(distinct name) 2. 행 개수 제한 Datetime 기준으로 오름차순 정렬 후, 가장 먼저 들어온 Name을 확인하는 경우 - select 절로 한번 더 감싸준 다음에 rownum 조건을 사용해야함 (참고, mysql에서는 select 절로 한번 더 감싸줄 필요 없이 limit으로 가능) ※ORACLE에서 ROWNUM을 사용해야 하는 이유 : - 오라클에서는 테이블을 생성하면 ROWNUM이라는 임시 칼럼이 제공됨 - ROWNUM은 각 행에 대한 일련 번호를 의미하고, 레코드에 1부터 순차적으로 번호가 부여됨 - ROWNUM의 한계는 ORDER BY 절을 이용하여 레코드를 정렬하고자 할 때 원하는 순서애로 번..