🌍ansi 표준, ansi sql
미국국가표준협회(ansi)가 정한 sql 표준이다.
🤔왜?
호환성
mysql에서 작성한 구문이 sqlserver, oracle에서 돌아가야 한다.
주요 ansi 함수
집계 함수
count()
sum()
avg()
max()/min()
-- 집계함수
select avg(salary) as avg_salary
from new_employees;
-- round 반올림 소수점 n 자리까지
select round(avg(salary),2) as avg_salary
from new_employees;
select count(*)as d_count
from new_employees;
-- select count(*)as d_count, name
-- from new_employees;
-- 버전에 따라 안되는 쿼리들이 있다. (논리적, 물리적)
문자열 함수
concat()
upper()/lower()
trim()
substring()
-- 문자열 결합, 대문자 처리
select concat('Mr/Ms ', name) as formal_name
from new_employees;
select concat(upper('Mr/Ms '), name) as formal_name
from new_employees;
select concat(lower('Mr/Ms '), name) as formal_name
from new_employees;
-- 문자열
-- 문자열 추출
select*, substring(name, 1, 2)
from new_employees;
-- 문자열 추출, 문자열 결합
select*, concat( substring(name, 1, 2), '*') as formal_name
from new_employees;
논리 조건 함수
case
coalesce()
-- 논리 조건
-- case when then else
select*,
case when employees.gender = 'M' then '남자' else '여자' end as formal_gender
from employees.employees;
-- 다른 db의 table을 불러올 수 있다.
날짜
current_date
current_time
current_timestamp
extrat()
-- 날짜 시간
select current_date as today;
select current_time as now;
-- 날짜 차이 계산
-- datediff 두 날짜 차이 계산
select*,
datediff(current_date, hire_date)/365 as years_working
from new_employees;
-- floor 소수점 버림
select*,
floor(datediff(current_date, hire_date)/365) as years_working
from new_employees;
형변환
cast()
-- 형 변환
-- dicimal => 형변환 => 문자열 (char) 고정길이
select*, cast( floor(salary) as char) as salary_text
from new_employees;
select*, concat( cast( floor(salary) as char),'원' ) as salary_text
from new_employees;
select*, concat( cast( floor(salary) as char),'원' ) as formal_salary
from new_employees;
select*, concat( substring(cast( floor(salary) as char),1,3),'만원' ) as salary_text
from new_employees;
👍sql 함수를 잘 조합해서 정제된 정보를 만들 수 있다면
☕java 단의 코딩이 간결해질 수 있다.
'MySQL' 카테고리의 다른 글
SQL 문법 JOIN, 여러 테이블의 데이터를 합치기 (0) | 2025.05.14 |
---|---|
SQL 문법, 데이터타입 (0) | 2025.05.13 |
SQL 문법, DCL 데이터 제어 언어 (통신/연결) (0) | 2025.05.13 |
SQL 문법, DML 데이터 조작 언어 (입력 조회 수정 삭제) (0) | 2025.05.13 |
SQL 문법, DDL 데이터 정의 언어 (DB/테이블/칼럼 편집) (0) | 2025.05.13 |