SQL

WebSQL 내장함수(문자열/ 숫자 함수)

Bordercolli 2023. 8. 16. 19:48
728x90

함수란? 

함수란 사용자가 사용이 편하도록 미리 정의된 기능의 모음

 

함수의 종류

단일행 함수: 데이터 베이스에 저장된 자료 한 줄 한 줄을 대상으로 하는 함수 

복수행 함수(그룹함수): 테이블 전체를 대상으로 하는 함수

 

ex) SQLLite 버전 확인 함수

데이터 타입(자료형)

ex) TYPEOF()

정수를 넣으면 integer, 실수를 넣으면 real, 문자열을 넣으면 text, 블랍형...?

날짜 및 시간도 텍스트타입니다. 

 

* Blob형이란??? (binary large object)

바이너리 형태로 큰 객체들(이미지, 사운드, 비디오 같은 멀티미디어)을 저장한다.

즉, 바이너리로 멀티미디어를 저장함.

 

문자자료형 처리 내장함수

1. 날짜 및 시간 함수

sqllite에서 날짜, 시간을 나타낼 수 있는 자료형은 text, real, integer 이 세가지이다.

text는 날짜를 나타낼 때, 년/ 월/ 일을 나타낼 수 있다.

real은 real로 표기된 날짜수는 율리우스 날짜 수를 나타내게 된다.

integer는 정수자료형으로 유닉스 시간을 나타낸다. (1970년1월1일부터 지나간 초)

 

날짜 및 시간 함수는 다양한 한정자(Modifiers)를 지정하여 사용자가 하는대로 데이터를 변화시킬 수 있다.

DATE() : 현재 날짜를 표한다.

 

TIME(): 사용자의 현재 시간을 알려준다. 아무 인자도 넣지 않으면 세계 협정시(UTC)로 처리가 된다. 

▼ NOW 로 지금으로 하여금 LOCALTIME 한정자를 출력해주세요.

DATETIME(): 지금 현재의 날짜와 시간을 한꺼번에 출력해주는 기능

이처럼 사용자의 입맛대로 한정자를 추가하여 원하는 값들을 출력할 수 있다.

 

STRFTIME('%Y-%M-%D %Y:%M:%D'): 원하는 포맷으로 날짜를 출력해준다. 

 

CONCAT() : 문자열과 컬럼을 연결해주는 함수

SQLLite에서는 concat을 지원하지 않지만, 비슷한 || 연산자는 지원하므로 대신해서 사용이 가능하다.

LOWER()/ UPPER(): 각 인자가 어떤 스트링이 들어오냐에 따라서 모든 대문자를 소문자로 바꾸거나 모든 소문자를 대문자로 치환해주는 함수이다.

SQLLite는 지원하지 않지만 오라클에서 지원해주는 함수

 

INITCAP('hello world'): 각 단어의 첫 번째 글자를 대문자로 바꾸어주는 oracle함수  ---결과값: Hello World

INSTR('일호준', '호'): 문자열의 위치를 구하는 함수    --- 결과값: 2

 

SUBSTR() : 원하는 문자열을 잘라서 추출하거나 문자열 일부가 필요한 경우 사용한다.

REPLACE(): 바꾸고 싶은 값으로 대상 값을 교체한다.

활용. 성을 제외한 나머지를 **로 표기해보자.

LENGTH(): 문자열의 길이를 출력해준다.

 

 

 

숫자함수

ROUND(): 숫자를 지정한 자릿 수 만큼 반올림해서 출력한다.

문제1. 1학년 1학기 성적은 소수점 한 자리 수 까지만 반올림을 시켜보자

각 학번이 가지고 있는 1학년 1학기의 학번이 소수점 한자리 수로 통일되어 나타내는 것을 확인할 수 있다.

소수점 자리수가 없는 부분은 잘려서 나타났다.

TRUNC(): 숫자를 절삭해서 지정한 자리 수 만큼 지정해주는 함수

MOD(): 피젯수를 젯수로 나눈 나머지를 출력해주는 함수, 그냥 나머지를 출력하는 함수임.

POWER(): 밑을 미지수만큼 제곱한 값을 출력한다.

SQRT(): 제곱근을 출력한다.

통계함수는 어느정도 아니까 생략하도록 한다.

 

 

정리

1. SQLITE_VERSION() : SQLLITE버전을 알려준다.

2. TYPEOF(): 어떤 데이터 타입인지 알려준다.

3. DATE(): 현재 날짜를 알려준다.

4. TIME(): 인수를 지정하지 않으면 UTC시간대로 알려준다.

5. DATETIME(): 위 3-4를 혼합한 것

6. STRFTIME(): 형식에 맞게 날짜를 출력한다.

7. CONCAT(): 문자열을 연결해주는 함수로 Lite는 이를 지원하지 않아서 || 를 대신해서 사용해보았다.

8. LOWER()/ UPPER(): 대소문자로 변경해주는 함수

9. LENGTH(): 문자열의 길이를 출력해주는 함수

10. INITCAP(): 문자열을 스페이스바 단위로 하여 첫 글자를 대문자로 만들어준다.

11. INSTR(): 두 번째 인수의 문자 위치 정보를 알려준다.

12. SUBSTR(): 문자열 일부를 잘라서 출력한다. EX) SUBSTR('홍길동', 2,2) -> 길동

13. REPLACE(): 문자열 일부를 치환한다.

14. ROUND(): 반올림 함수

15. TRUNC(): 절삭함수

16. MOD(): 나머지 값을 출력하는 함수

17. POWER(): 지수함수

18. SQRT(): 제곱근 함수

 

연습문제

문제1. 교수정보의 이름 컬럼의 문자열 길이를 출력하라. -> LENGTH

결과

 

문제2. 이름 컬럼의 문자열에서 성을 제외하고 이름만 출력하라. -> SUBSTR

 

문제3. 이름 컬럼의문자열 뒤 2자리를 *로 출력하라 -> SUBSTR, REPLACE

 

문제4. 학생정보의 전체 학생들의 학년 평균을 구하라.

 

 

 

'SQL' 카테고리의 다른 글

INNER/ OUTER JOIN  (0) 2023.08.17
조건문  (0) 2023.08.16
CRUD  (0) 2023.08.16
UPDATE, DELETE, TOP, LIMIT  (0) 2023.08.16
연습문제  (0) 2023.08.16