Database

DML(select, insert, update, delete)-2

도전하는일반인 2021. 9. 16. 23:41

들어가기 전에

이번 시간에는 DBMS에 값을 저장, 수정, 삭제, 조회하는 방법에 대해 배워보도록 하겠습니다.

 

 

학습 목표

  1. insert문을 수행할 수 있다.
  2. update문을 수행할 수 있다.
  3. delete문을 수행할 수 있다.
  4. select문을 수행할 수 있다.

 

 

핵심 개념

  • select
  • insert
  • update
  • delete

 

SELECT 구문 예제(특정 행 검색- where절)

 

SELECT 구문 예제(특정 행 검색- where절)

  • 산술비교 연산자

예제 : employee 테이블에서 고용일(hiredate)이 1981년 이전의 사원이름과 고용일을 출력하시오.

select name, hiredate from employee where hiredate < '1981-01-01';

select 구문 예제(특정 행 검색-where절)

  • 논리연산자

예제 : employee 테이블에서 부서번호가 30인 사원이름과 부서번호를 출력하시오.

select name, deptno from employee where deptno = 30;

select 구문 예제(특정 행 검색-where절)-2

  • IN 키워드

예제 : employee 테이블에서 부서번호가 10또는 30인 사원이름과 부서번호를 출력하시오.

select name, deptno from employee where deptno in (10, 30);

select 구문 예제(특정 행 검색-where절)-3

  • LIKE 키워드
  • 와일드 카드를 사용하여 특정 문자를 포함한 값에 대한 조건을 처리
  • % 는 0에서부터 여러 개의 문자열을 나타냄
  • _ 는 단 하나의 문자를 나타내는 와일드 카드

예제 : employee 테이블에서 이름에 'A'가 포함된 사원의 이름(name)과 직업(job)을 출력하시오.

select name, job from employee where name like '%A%';

select 구문 예제(특정 행 검색-where절)-4

SELECT 구문 예제(함수의 사용)

  • UCASE, UPPER

mysql> SELECT UPPER('SEoul'), UCASE('seOUL'); +-----------------+-----------------+ | UPPER('SEoul') | UCASE('seOUL') | +-----------------+-----------------+ | SEOUL | SEOUL | +-----------------+-----------------+

from 다음에 테이블이 없을 경우에는 테이블에서 조회하는 것이 아닙니다.

  • LCASE, LOWER

mysql> SELECT LOWER('SEoul'), LCASE('seOUL'); +-----------------+-----------------+ | LOWER('SEoul') | LCASE('seOUL') | +-----------------+-----------------+ | seoul | seoul | +-----------------+-----------------+

  • substring

mysql> SELECT SUBSTRING('Happy Day',3,2); +-----------------+-----------------+ | SUBSTRING('Happy Day',3,2) | +-----------------+-----------------+ | pp | +-----------------+-----------------+

  • LPAD, RPAD

mysql> SELECT LPAD('hi',5,'?'),LPAD('joe',7,'*'); +------------------+-------------------+ | LPAD('hi',5,'?') | LPAD('joe',7,'*') | +------------------+-------------------+ | ???hi | ****joe | +------------------+-------------------+

  • TRIM, LTRIM, RTRIM

mysql> SELECT LTRIM(' hello '), RTRIM(' hello '); +-------------------------------------+ | LTRIM(' hello ') | RTRIM(' hello ') | +-------------------------------------+ | 'hello ' | ' hello‘ | +-------------------------------------+mysql> SELECT TRIM(' hi '),TRIM(BOTH 'x' FROM 'xxxhixxx'); +----------------+-----------------------------------+ | TRIM(' hi ') | TRIM(BOTH 'x' FROM 'xxxhixxx') | +----------------+-----------------------------------+ | hi | hi | +----------------+-----------------------------------+

  • ABS(x) : x의 절대값을 구합니다.

mysql> SELECT ABS(2), ABS(-2); +-----------+------------+ | ABS(2) | ABS(-2) | +-----------+------------+ | 2 | 2 | +-----------+------------+

  • MOD(n,m) % : n을 m으로 나눈 나머지 값을 출력합니다.

mysql> SELECT MOD(234,10), 253 % 7, MOD(29,9); +----------------+------------+-------------+ | MOD(234,10) | 253 % 7 | MOD(29,9) | +----------------+------------+-------------+ | 4. | 1 | 2 | +----------------+------------+-------------+

 

SELECT 구문(함수의 사용)

  • FLOOR(x) : x보다 크지 않은 가장 큰 정수를 반환합니다. BIGINT로 자동 변환합니다.
  • CEILING(x) : x보다 작지 않은 가장 작은 정수를 반환합니다.
  • ROUND(x) : x에 가장 근접한 정수를 반환합니다.
  • POW(x,y) POWER(x,y) : x의 y 제곱 승을 반환합니다.
  • GREATEST(x,y,...) : 가장 큰 값을 반환합니다.
  • LEAST(x,y,...) : 가장 작은 값을 반환합니다.
  • CURDATE(),CURRENT_DATE : 오늘 날짜를 YYYY-MM-DD나 YYYYMMDD 형식으로 반환합니다.
  • CURTIME(), CURRENT_TIME : 현재 시각을 HH:MM:SS나 HHMMSS 형식으로 반환합니다.
  • NOW(), SYSDATE() , CURRENT_TIMESTAMP : 오늘 현시각을 YYYY-MM-DD HH:MM:SS나 YYYYMMDDHHMMSS 형식으로 반환합니다. 
  • DATE_FORMAT(date,format) : 입력된 date를 format 형식으로 반환합니다.
  • PERIOD_DIFF(p1,p2) : YYMM이나 YYYYMM으로 표기되는 p1과 p2의 차이 개월을 반환합니다.

참고 자료

[참고링크] 13.2.9 SELECT Syntax

https://dev.mysql.com

 

 

출처 : https://www.boostcourse.org/web326/lecture/258485?isDesc=false 네이버커넥트재단

'Database' 카테고리의 다른 글

DDL(create, drop)  (0) 2021.09.17
DML(select, insert, update, delete)-4  (0) 2021.09.17
DML(select, insert, update, delete)-3  (0) 2021.09.16
DML(select, insert, update, delete)-1  (0) 2021.09.16