일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- jsp
- 데이터베이스
- w3school
- php
- Cisco
- 자바
- Oracle
- 네트워크
- Java
- 오라클
- autoset
- 참조타입
- cisco packet
- 리눅스
- sql
- jsp연결
- ospf
- VLAN
- 이것이 자바다
- 라우터
- 버추얼머신
- 원형그래프
- ciscopacket
- javaee
- 네트워크관리사
- 정처기필기
- NCS
- 정보처리기사
- html
- rinux
- Today
- Total
기록해! 정리해!
7-4(bigdata) 본문
12) 문자열함수
- 엑셀 불러오기 : 접속 - system - 테이블 -> 데이터 임포트 (구분자: ;)
- 테이블에 형성된 거 확인
- SQL 확인
CREATE TABLE "SYSTEM"."BIGDATA"
( "EMP_NO" NUMBER(7,0),
"BIRTH_DATE" DATE,
"FIRST_NAME" VARCHAR2(26 BYTE),
"LAST_NAME" VARCHAR2(26 BYTE),
"GENDER" VARCHAR2(26 BYTE),
"HIRE_DATE" DATE
) --여기까지가 기본문
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ;
- 위 쿼리를 복사해서 새 테이블 형성
CREATE TABLE Test002
(
"EMP_NO" NUMBER(7,0),
"BIRTH_DATE" DATE,
"FIRST_NAME" VARCHAR2(26 BYTE),
"LAST_NAME" VARCHAR2(26 BYTE),
"GENDER" VARCHAR2(26 BYTE),
"HIRE_DATE" DATE
)
select * from Test002;
----------------------------------------------------------------------------------------------
select * from bigdata;
1. 생년월일에서 값이 5로 시작되는 사람을 출력하시오
select * from bigdata
where BIRTH_DATE like'5%';
--하는 사람의 수
select count(*) from bigdata
where BIRTH_DATE like'5%';
2. 52년생 데이터를 test002에 추가하시오
insert into test002
select * from bigdata
where BIRTH_DATE like '52%';
select * from test002;
3. test003 만들어서 생년월일을 년,월,일로 바꾸시오
select substr(BIRTH_DATE,1,2)||'년'||substr(BIRTH_DATE,4,2)||'월'||substr(BIRTH_DATE,7,2)||'일' as "생년 월일"
from test002;
select emp_no,
substr(BIRTH_DATE,1,2)||'년'||substr(BIRTH_DATE,4,2)||'월'||substr(BIRTH_DATE,7,2)||'일' as "생년 월일",
first_name,
last_name,
gender,
hire_date
from test002;
4. 한글성별을 추가하시오
select emp_no,
substr(BIRTH_DATE,1,2)||'년'||substr(BIRTH_DATE,4,2)||'월'||substr(BIRTH_DATE,7,2)||'일' as "생년 월일",
first_name,
last_name,
gender,
case
when gender='F' then '여성'
when gender='M' then '남성'
else '기타'
end as "성별",
hire_date
from test002;
5. 80년대, 90년대 입사연도별을 추가하시오
select emp_no,
substr(BIRTH_DATE,1,2)||'년'||substr(BIRTH_DATE,4,2)||'월'||substr(BIRTH_DATE,7,2)||'일' as "생년 월일",
first_name,
last_name,
gender,
case
when gender='F' then '여성'
when gender='M' then '남성'
else '기타'
end as "성별",
hire_date,
case
when substr(hire_date,1,2)>=90 then '90년도입사'
when substr(hire_date,1,2)<90 then '80년도입사'
end as "입사구분"
from test002;
select hire_date,
case
when hire_date like '8%' then '80'
when hire_date like '9%' then '90'
else '기타'
end as "입사구분"
from test002;
6. 뷰 생성
create or replace view v_bigdata1
as
....
7. 성별에 따른 인원 수
select 성별,count(성별) 인원수 from v_bigdata1
group by 성별;
8. 위의 출력 숫자 0,2,5 을 한글 공,이,오 으로 출력하기
select 성별, translate(count(성별),'025','공이오') 인원수 from v_bigdata1
group by 성별;
--1:1로 매칭해서 변환해줌
9. 첫번째 이름의 길이를 구하시오
select first_name 이름 ,length(first_name) 길이 from v_bigdata1;
select first_name 이름 ,length(first_name) 길이 from v_bigdata1
order by 길이 desc;
10. 이름 다 대문자로 하고 20자 맞추기
select Rpad(upper(first_name),20,'#') 이름 ,length(first_name) 길이 from v_bigdata1
order by 길이 desc; --Rpad:#을 오른쪽에 작성, Lpad
11. trim
select Ltrim(' 1234 ') 값1, trim( '1234' ) 값2, Rtrim(' 1234 ') 값3 from dual;
12. 올림 버림 반올림
select ceil (4.1), ceil(4.5), ceil(4.0)
from dual; --5 5 4 / 4보다 크면 무조건 올림
select floor (4.1), floor(4.5), floor(4.0)
from dual; --4 4 4
select round(4.7), round(4.5), round(4.1)
from dual; --5 5 4
'Oracle' 카테고리의 다른 글
7-예제3(select) (0) | 2022.05.24 |
---|---|
7-예제2(big data-trigger) (0) | 2022.05.24 |
7-3 (프로시저) (0) | 2022.05.24 |
7-2 (0) | 2022.05.24 |
6-SQL 기본문법 정리 (0) | 2022.05.24 |