Data

[SQLD] 2과목 2-1 ) SQL 기본 1 / SELECT 문, SQL 함수

생각하는 감쟈🥔 2023. 8. 24. 07:15

 1.  관계형 데이터베이스 개요 

1) 관계형 데이터베이스

  RDB( Relational Data Base)

    - 관계형 데이터 모델에 기초를 둔 데이터베이스

    - 2차원 테이블 형태로 표현

 

2) TABLE

  - 세로열 - Column (속성) 

  - 가로열 - Row (인스턴스)

  - 데이터 모델에서 엔터티에 해당

 

DATEBASE ⊃ TABLE

 

3) SQL(Structured Query Language)

  -  관계형 DB에서 데이터를 다루기 위해 사용하는 언어

 


 2.  SELECT  문 

1) SELECT

    -  저장되어 있는 데이터를 조회하고자 할 때 사용하는 명령어

    -  * 전체 컬럼이 조회되면 죄회되는 컬럼의 순서는 테이블의 컬럼 순서와 동일

    -  별도로 WHERE절이 없으먼 테이블의 전체 Row가 조회 됨

SELECT  컬럼1, 컬럼2 ... FROM  테이블 WHERE 컬럼1 = '아무개' ;
SELECT * FROM 테이블 ;

 

2) 산술 연산자

연산자 의미 
( ) 괄호 우선순위
* 곱하기
/ 나누기
+ 더하기
- 빼기

SELECT 10+5, 10-5, 10*5, 10/5 FEOM DUAL;

SELECT * FROM SAMPLE;

SELECT COL1+COL2 AS A, COL1-COL2 AS S,
       COL1*COL2 AS M, COL1/COL2 AS D
 FROM  SAMPLE;

SELECT COL1+COL2*COL1 AS R1,(COL1+COL2)COL1 AS R2,
  FROM SAMPLE;

 

 

3) 합성 연산자

    -  문자와 문자를 연결할 때 사용하는 연산자

SELECT  'S' || 'Q' || 'L' || '개' || '발' || '자' AS SQLD
  FROM  DUAL;

SELECT * FROM SAMPLE;

SELECT COL1 || ' ' || 'SQLD' || ' ' || COL2 AS RESULT
  FROM SAMPLE;

 3.  함수 

1) 문자 함수 

  ①  CHR(ASCII코드)

          - ASCII코트를 인수로 입력했을 때 매핑되는 문자가 무엇인지 알려주는 함수

SELECT CHR(65) FROM DUAL;

  ②  LOWER(문자열)

          - 문자열을 소문자로 변환

SELECT LOWER('JENNIE') FROM DUAL;

  ③  UPPER(문자열)

          - 문자열을 대문자로 변환

SELECT UPPER('JENNIE') FROM DUAL;

  ④  LTRIM(문자열 [,특정문자])

          - 특정문자를 정해주지 않으면 문장의 왼쪽 공백을 제거 / 정해주면 문자열 왼쪽부터 

SELECT LTRIM('블랙핑크', '블랙') FROM DUAL;

  ⑤  RTIMR(문자열 [,특정문자])

          - 문장의 오른쪽부터 공백 제거

SELECT RTRIM('블랙핑크', '핑크') FROM DUAL;

   ⑥  TRIM([위치] [특정문자] [FROM] 문자열)

          -  공백 제거 RTRIM, LTRIM 과 달리 특정글자는 한 글자만 가능

          - LEADING, TRAILING, BOTH으로 지정

SELECT TRIM(LEADING'블' FROM '블랙핑크') FROM DUAL;

⑦  SUBSTR(문자열, 시작점[,길이])

          - 문자열의 우너하는 부분만 잘라서 반환해주는 함수

SELECT SUBSTR ('블랙핌크제니', 3, 2) FROM DUAL;

 

⑧  LENGHT(문자열)

          -  문자열의 길이를 반환해주는 함수

SELECT LENGHT('JENNIE') FROM DUAL;

 

⑨  REPLACE(문자열, 변경 전 문자열 [,변경 후 문자열])

          -  문자열에서 변경 전 문자열을 찾아 변경 후 문자열로 바꿔주는 함수

SELECT REPLACE ('블랙핑크제니', '제니', '지수') FROM DUAL;

 

 

2) 숫자 함수

  ①  ABS(수)

        -  수의 절대값을 반환해주는 함수

SELECT ABS(-1) FROM DUAL;    # 1

  ②  SIGN(수)

          -  수의 부호를 반환해준는 함수
          -  양수 : 1 / 음수 : -1 / 0 : 0 

SELECT SING(-7) FROM DUAL:    # -1

  ③  ROUND(수 [,자릿수])

          - 수를 지정한 소수점 자릿수까지 반올림하여 반환해주는 함수

SELECT ROUND(163.76, -2) FROM DUAL;    # 200

  ④  TRUNC(수 [,자릿수])

          -  수를 지정된 소수점 자릿수까지 버리하여 반환해주는 함수

SELECT TRUNC(54.29, -1) FROM DUAL;    # 50

  ⑤  CEIL(수)

          - 소수점 이하의 수를 올림한 정수를 반환해주는 함수

SELECT CEIL(72.86) FROM DUAL;    # 73

  ⑥  FLOOR(수)

          - 소숫점 이하의 수를 버림한 정수를 반환해주는 함수

SELECT FLOOR(22.3) FROM DUAL;    # 22

  ⑦  MOD(수1, 수2)

          -  수1을 수2로 나눈 나머지를 반환해주는 함수

SELECT MOD(15, -4) FROM DUAL;    # 3

 

 

3) 날짜 함수

  ①  SYSDATE

           -  현재 년,월,일,시,분,초를 반환해주는 함수

SELECT SYSDATE FROM DUAL;

  ②  EXTRACT(특정단위 FROM 날짜 데이터)

          -  날짜 데이터에서 특정 단위 (YEAR,MONTH,DAY,HOUR,...) 만을 출력

SELECT EXTRACT(YEAR FROM STSDATE) AS YEAR,
	EXTRACT(MONTH FROM STSDATE) AS MONTH,
	EXTRACT(DAY FROM STSDATE) AS DAY
FROM DUAL;

  ③  ADD_MONTHS(날짜데이터, 특정 개월 수)

          -  날짜 데이터에서 특정 개월 수를 더한 날짜를 반환해주는 함수

SELECT ADD_MONTHS(TO_DATE('2023-08-24', 'YYYY-MM-DD'),-1) AS PREV_MONTH
	ADD_MONTHS(TO_DATE('2023-08-24', 'YYYY-MM-DD'),-1) AS NEXT_MONTH
FROM DUAL;

 

4) 변환 함수

  ①  명시적 형변환과 암시적 형변환

          -  명시적 형변환 : 변호나 함수를 사용하여 데이터 유형 변환을 명시적을 나타냄

          -  암시적 형변환 : 데이터베이스가 내부적으로 알아서 데이터 유형을 변환함

  ②  명시적 형변화에 쓰이는 함수

          -  TO_NUMBER : 문자열을 숫자형으로 변환

          -  TO_CHAR : 수나 날짜형 데이터를 포맷 형식의 문자형으로 변환

          -  TO_DATE : 포맷 형식의 문자형의 데이터를 날짜형으로 변환

 

5) NULL 함수

  ①  NVL(인수1, 인수2)

          - 인수1의 값이 NULL알 경우 인수2를 반환, NULL이 아닐경우 인수1을 반환

  ② NULLIF(인수1, 인수2)

          -  인수1과 인수2가 같으면 NULL을 반환하고 같지 않으면 인수1을 반환

  ③  COALESCE(인수1, 인수2, 인수3..)

          -  NULL이 아닌 최초의 인수를 반환