산술연산자
연산자 | 기능 | 사용법 | 의미 |
+ | +(덧셈) | a+b | a와 b를 더한다 |
- | -(뺄셈) | a-b | a에서 b를 뺀다 |
* | X(곱셈) | a*b | a와 b를 곱한다 |
/ | 나눗셈 | a/b | a를 b로 나눈다 |
% | 나머지 | a%b | a를 b로 나눈 나머지 |
예시
SELECT price * 0.5 FROM book;
SELECT price /2 FROM book;
비교연산자
-- 비교 리터럴 및 WHERE 절의 값 비교에 사용하는 연산자
참: 1, 거짓 :0 값 반환
연산자 | 기능 | 의미 |
= | a=b | a와 b는 같다 |
< | a<b | a는 b보다 작다 |
<= | a<=b | a는 b이하이다 |
> | a>b | a는 b보다 크다 |
>= | a>=b | a는 b이상이다 |
<> | a<>b a!=b |
a와 b는 같지않다 |
논리 연산자
-- 여러 조건을 조합해 복합 조건을 나타낼 수 있음
연산자 | 기능 | 논리 연산식 | 설명 |
AND | 그리고 | (a>=10) AND (a<=20) | A는 10이상 이고 20 이하이다 |
OR | 또는 | (a=5) OR (a=10) | A는 5 또는 10이다. |
NOT | ~이 아님 | NOT(a=200) | A는 200이 아니다. |
내장함수
-- 내장함수는 DBMS에서 자주 사용하는 기능을 제공하는 것
sum(), count(), average() 등
SELECT 내장함수();
SELECT 내장함수(column)
FROM 테이블이름;
내장함수 | 문법 | 예시 |
SUM | SUM([ALL |DISTINCT] 속성 이름) | SUM(price) |
AVG | AVG([ALL |DISTINCT] 속성 이름) | AVG(price) |
COUNT | COUNT({[[ALL |DISTINCT] 속성 이름]|*}) | COUNT(*) |
MAX | MAX([ALL | DISTINCT] 속성이름) | MAX(price) |
MIN | MIN([ALL | DISTINCT] 속성이름) | MIN(price) |
ALIAS
- SQL 구문에서 대상을 다른 이름으로 사용함
- Column Alias : AS 절을 붙여 컬럼 이름을 사용함
- Table Alias : 테이블 이름 뒤에 Alias 이름을 사용함
문자열 다루기
-- 문자열을 결합할때 CONCAT() 함수 사용
-- 컬럼과 문자열, 문자열과 문자열 결합
SELECT CONCAT("도서명:", bookname)
FROM book;
문자열 길이 함수
LENGTH(문재열) : 문자열의 Byte 길이
CHAR_LENGTH(문자열) : 문자의 개수
-- TRIM() 문자열 좌우 공백 제거
-- LTRIM() 좌측 공백 제거
-- RTRIM() 우측 공백 제거
-- 문자열 좌측 문자 제거(LEADING)
-- 문자열 우측 문자 제거(TRAILING)
-- Byte 단위 개수와 문자 개수 함수를 구분해야 함
문자열 추출함수
-- substring(문자열,start,count) : 문자열에서 start에서 count 수 만큼 추출
-- substring_INDEX(문자열, delimeter, index): 문자열을 delimeter로 구분하고 index 위치까지 문자 추출
-- LEFT(문자열,count) : 문자열에서 왼쪽을 기준으로 일정 갯수를 가져오는 함수
-- RIGHT(문자열,count) : 문자열에서 오른쪽을 기준으로 일정 갯수를 가져오는 함수
-- MID(문자열, start, count) : 문자에 지정한 시작 위치를 기준으로 일정 개수를 가져오는 함수로 SUBSTRING()과 동일
자료형 정리
- Numeric Data Types
구분 | 내용 |
TINYINT(n) | 정수형(1byte) -128~+127, 0~255 |
SMALLINT(n) | 정수형(2byte) -32678 ~ 32767, 0~65536 |
MEDIUMINT(n) | 정수형(3byte) -8388608 ~ + 8388607 또는 0~ 1677215 표현 가능 |
INT(n) | 정수형(4byte) -2147483648 ~ +2147483647, 0~4294967295 표현 가능 |
BIGINT(n) | 정수형(8byte) 무제한 수 표현 가능 |
FLOAT(길이, 소수) | 부동 소수형(4type) 고정 소수점을 사용 형태 |
DECIMAL(길이, 소수) | 고정 소수형 고정(길이 +1byte) 소수점을 사용 형태 |
DOUBLE(길이, 소수) | 부동 소수형 (8byte) DOUBLE을 문자열로 저장 |
- String Data Types
구분 | 내용 |
CHAR(n) | 고정 길이 데이터 타입(최대 255byte) 지정된 길이보다 짧은 데이터 입력 시 나머지 공간 공백으로 채워짐 CHAR, CHAR(1) 동일 |
VARCHAR(n) | 가변 길이 데이터 타입(최대 65535byte) 지정된 길이보다 짧은 데이터 입력될 시 나머지 공간은 채우지 않음 |
TINYTEXT(n) | 문자열 데이터 타입(최대 255byte) |
TEXT(n) | 문자열 데이터 타입(최대 65535byte) |
MEDIUMTEXT(n) | 문자열 데이터 타입(최대 16777215byte) |
LONGTEXT(n) | 문자열 데이터 타입(최대 4294967295byte) |
BLOB(n) | BLOB(Binary Large OBject) 사진, 동영상, 문서 파일 등 이전 데이터 저장 |
ENUM(n) | 열거형 데이터를 저장하는데 사용 |
SET(n) | SET 형식은 최대 64개 데이터를 2개씩 세트로 묶어 저장할 떄 사용 |
- Date and Time Data Types
구분 | 내용 |
DATE | 'YYYY-MM-DD' 형태의 기간 표현 데이터 타입(3byte) |
TIME | 'hh:mm:ss' 시간(시,분,초) 형태의 기간 표현 데이터 타입(3byte) |
DATETIME | 'YYYY-MM-DD hh:mm:ss' 날짜와 시간 형태의 기간 표현 데이터 타입(8byte) |
TIMESTAMP | 날짜와 시간 형태의 기간 표현 데이터 타입(4type) 시스템 변경 시 자동으로 그 날짜와 시가니 저장됨 'YYYY-MM-DD hh:mm:ss' 형식 |
YEAR | 1901-2155 범위 4자리 년도 'YYYY' 표현 데이터타입(1byte) V8 이후 2자리 년도 표시 지원 안함 |
날짜 자료형 다루기
날짜 데이터에서 일, 월, 연도 구하기
-- YEAR(날짜), MONTH(날짜), DAY(날짜), HOUR(시간), MINUTE(시간), SECOND(시간), MICROSECOND(시간), LAST_DAY(날짜)
현재날짜
-- CURDATE(), CURTIME()
-- 오늘 날짜를 YYYY-MM-DD나 YYYYMMDD 형식으로 변환
-= NOW(), SYSDATE()
-- 현재 시간을 YYYY-MM-DD HH:MM:SS 형식으로 변환
날짜/ 시간 증감 함수
함수명 | 기능 |
DATE_ADD(date,INTERVAL expr), DATE_SUB(date,INTERVAL expr) |
date를 기준으로 INTERVAL expr 만큼 더하거나 뺀다 |
ADDDATE(date, INTERVAL expr), SUBDATE(date, INTERVAL expr) |
|
ADDTIME(time, expr), SUBTIME(time, expr) |
time을 기준으로 expr 만큼 더하거나 뺀다 |
날짜 date에 type 형식으로 지정한 expr 값을 더하거나 뺀다 DATE_ADD()와 ADDDATE()는 같은 동작이고, DATE_SUB()와 SUBDATE()는 같은 의미이다 |
날짜/시간 사이의 차이와 월/요일/주 값
DATEDIFF(날짜1, 날짜2), TIMEDIFF(날짜1 또는 시간1, 날짜1 또는 시간2)
DAYOFWEEK(날짜), MONTHNAME(), DAYOFYEAR(날짜)
기타
MAKETIME(시,분,초), PERIOD_ADD(연월, 개월수), PERIOD_DIFF(연월1, 연월2), QUARTER(날짜)
자료형 변환 함수
데이터 형식 변환함수
-- CAST(expression AS 데이터형식[(길이)])
-- CONVERT(expression, 데이터형식[(길이)])
예시)
구매 테이블에서 평균 구매 개수를 구한다
SELECT AVG(saleprice) AS '평균 구매 가격' FROM orders;
구매 가격을 정수로 출력
SELECT CAST(AVG(saleprice) AS SIGNED INTEGER)
암묵적 형 변환
CAST() 함수나 CONVERT() 함수를 사용하지 않고 데이터 형식을 변환하는 것
연산의 결과에 따른 규칙