본문 바로가기
개발이야기/웹_백엔드

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

by 효우너 2020. 7. 23.
728x90
반응형

* 이 글은 부스트코스 웹 백엔드 강의 수강 바탕으로 작성되었습니다.

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

  • 산술비교 연산자

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

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

 

  • 논리연산자

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

select name, deptno from employee where deptno = 30;

 

  • IN 키워드

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

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

- 이번 앱잼에서 필터링을 구현하면서 IN을  사용하였다!

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

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

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

2. 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 | 
+----------------+------------+-------------+

 

3. 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의 차이 개월을 반환합니다.
728x90
반응형

'개발이야기 > 웹_백엔드' 카테고리의 다른 글

3-4) DML(select, insert, update, delete)  (0) 2020.07.23
3-3) DML(select, insert, update, delete)  (0) 2020.07.23
3-1) DML(select, insert, update, delete)  (0) 2020.07.22
2-2) SQL이란?  (0) 2020.07.22
2-1) SQL이란?  (0) 2020.07.22

댓글