본문 바로가기

AI/데이터베이스\SQL8

[SQL / PostgresSQL] CASE, COALESCE , CAST, NULLIF , views CASE -특정 조건이 충족되었을 때 실행하기 위해 case를 사용한다. -IF/ELSE와 유사하다. CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ELSE some_other_result END #1 SELECT a, CASE WHEN a = 1 THEN 'one' WHEN a = 2 THEN 'two' ELSE 'other' AS label END FROM test; #2 SELECT a, CASE a WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'other' AS label END FROM test; a label 1 one 2 two 실습 COALESCE -NULL이 아닌 첫번째 인자 값을 반환한다. e.. 2022. 7. 11.
[SQL / postgreSQL] 데이터 유형 , 제약조건 (Constraints), CREATE , ALTER, DELETE, UPDATE, INSERT, DROP, CHECK 제약조건 SQL 데이터 유형 Boolean - True or False Character - char, varchar, and text Numeric -integer and floating-point number Temporal -date, time, timestamp ... UUID -Universally Unique Identifiers (특정 열의 고유 식별자를 만들기 위한 본질적인 알고리즘 고유 코드) JSON, Array ....etc.. --> 상황에 따라 어떤 데이터 유형을 저장할지 고민해야 한다..! 참고 : postgresql.org/docs/current/datatype.html 제약조건 (Constraints) - 표에 있는 데이터 열에 적용되는 규칙을 제약 조건이라고 한다. - 제약조건으로 .. 2022. 7. 11.
데이터베이스(2) KEY 학번 전공 이름 전화번호 학년 주소 1 전자 신짱구 010 3 부산 2 전기 김철수 011 2 경기 3 컴퓨터 이훈이 016 4 서울 기본키 (Primary Key) : 후보키 중에서 기본적으로 사용하기 위해 선택하는 키 ex) 학번(or 전화번호) - Null 값은 허용하지 않는다 - 구분할 수 있는 고유값을 가져야 한다. - 최대한 적은 수의 속성을 가진 것 이어야 한다. - 릴레이션 스키마를 표현할 때 밑줄을 그어 표현한다 ex)학생(학번,전공,이름,전화번호,학년,주소) 후보키 (Candidate Key) : 유일성과 최소성을 만족하는 속성의 최소 집합 ex) 학번, 전화번호 슈퍼키 (Super Key) : 유일성을 만족하는 속성(속성들의 집합) ex) 학번, 전화번호, 학번+이름, 학번+전.. 2022. 3. 21.
데이터베이스(1) DBMS? - 조직에서 필요한 데이터를 데이터베이스에 통합하여 저장하고 관리함 - 사용자가 DB에 접근하여 검색 저장 하기 위한 중간역할 담당 DBMS는 파일시스템의 데이터 일관성과 데이터 무결성 문제로 등장하였다. DBMS의 장단점은 다음과 같다. DBMS 장점 - 중복 최소화 - 독립성 확보 - 데이터 동시 공유 - 데이터 보안 향상 - 무결성 유지 - 표준화 가능 - 장애 발생 시 회복 가능 - 응용 프로그램 개발 비용 down DBMS단점 - 중앙 집중 관리로 인한 취약점이 존재 - 백업 및 회복 방법 복잡 DB사용자 - DB 관리자 : DDL, DCL * db 구성요소 선정 및 스키마 정의, 물리적 저장 구조와 접근 방법 결정, 무결성 유지 위한 제약조건 정의, 백업 및 회복 기법 정의, 보안 .. 2022. 3. 21.
[SQL / postgreSQL] 고급 SQL명령 ( TimeStamp, TO_CHAR, 서브쿼리(Sub-query), Self-Join) Timestamp TIME - time DATE - date TIMESTAMP - date, time TIMESTAMPTZ- date, time, timezone TIMEZONE -표준시간지역 https://www.postgresql.org/docs/12/sql-show.html NOW - 현재 TIMEOFDAY - 시계시각 CURRENT_TIME - 현재 시간 CURRENT_DATE - 현재 날짜 EXTRACT() - 추출함수 : 값의 서브 컴포넌트를 추출하되 년,월,일,분기별로 추출 가능하다. EXTRACT(YEAR FROM date_col) AGE() - 타임스탬프 내에서 현재까지의 시기를 계산해서 알려준다. AGE(date_col) TO_CHAR() - 원하는 형태의 날짜, 시간 출력 가능 (첫 .. 2022. 3. 8.
[SQL / postgreSQL] SQL 기초 (AS, UNION, JOIN - INNER JOIN, OUTER JOIN, LEFT JOIN, RIGHT JOIN) AS SELECT 열 이름 AS 별칭 FROM 테이블 열이나 결과에 별칭을 부여하는 함수이다. 별칭은 제일 마지막에 할당되기 때문에 WHERE연산자나 GROUP BY 호출 같은 것에서는 별칭을 사용할 수 없다. 원래의 열 이름을 사용해야 한다. JOIN? 여러 테이블을 하나로 결합하는 함수이다. INNER JOIN 두 테이블을 모두 충족하는 레코드 세트를 결과로 출력한다. 테이블1 ID_1 이름 1 신짱구 2 김철수 3 이훈이 테이블2 ID_2 이름 1 한유리 2 맹구 3 신짱구 INNER JOIN은 두 테이블 모두에 속해있는 행만 조회한다. 집합의 교집합이라고 생각하면 편하다. 두 테이블에서 매칭되는 지점은 신짱구이다. 특정 열을기준으로 두 테이블을 결합해야 하는데, 위 사례에선 '이름'이 되겠다. 이.. 2022. 2. 24.
[SQL / postgreSQL] SQL 기초 (집계함수, GROUP BY, HAVING) 집계함수란(aggregate function)? 여러 조건을 입력하여 하나의 결과를 반환하는 것 이다. 집계함수는SELECT나 HAVING절에서만 호출될 수 있다. 집계함수의 대표적인 예로 AVG() -평균 값 출력 부동 소수점 값을 반환하기때문에 ROUND함수를 이용해 소숫점 자리를 조정할 수 있다. SELECT ROUND(AVG(열 이름),2) FROM 테이블 명; COUNT() - 행의 개수 count MAX() MIN() SUM() 이 있다. 이밖에도 postgresSQL에는 많은 집계 함수가 있는데 아래의 링크를 참고하면 된다. https://www.postgresql.org/docs/current/functions-aggregate.html 집계 함수를 사용할 때 주의해야 할 점은, 집계함수는.. 2022. 2. 16.
SQL 기초 (SELECT, COUNT, WHERE, ORDER BY, LIMIT, BETWEEN, IN, LIKE, ILIKE) SELECT SELECT 열 이름 FROM 테이블; 이때, 열 이름에 *를 쓰면 테이블 전체의 모든 열을 가져온다. DISTINCT SELECT DISTINCT(열 이름) FROM 테이블; 중복 값을 제거한 값을 보여준다. COUNT SELECT COUNT(열 이름) FROM 테이블; 해당 테이블의 SELECT로 불러온 열에 해당하는 데이터의 개수를 count해준다. WHERE SELECT 열 이름 FROM 테이블 WHERE 조건식; WHERE은 FROM뒤에 쓰는 명령으로 WHERE 뒤에는 조건식이 나온다. 조건식은 열에 조건을 지정하여 그에 맞는 행이 반환되도록 한다. 즉, SELECT 문에서 반환되는 행을 걸러내기 위해 사용된다. 예를들어 customer 테이블에 있는 id가 hello인 사람의 em.. 2022. 2. 16.