일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 오라클
- ciscopacket
- javaee
- cisco packet
- autoset
- 참조타입
- 네트워크관리사
- jsp
- 네트워크
- 이것이 자바다
- 정보처리기사
- 리눅스
- html
- rinux
- NCS
- w3school
- 버추얼머신
- 정처기필기
- 원형그래프
- sql
- jsp연결
- Cisco
- VLAN
- ospf
- 라우터
- Oracle
- Java
- 데이터베이스
- 자바
- php
- Today
- Total
기록해! 정리해!
7-SQL 기본문법 정리 (용어/프로시저/문자열함수) 본문
1) 데이터베이스 용어
1. 자료 와 정보
: 자료를 가공하면 정보가 된다
2. 오라클에서 스키마란?
: 스키마=데이터베잉스=사용자 이름(=저장소)
3. 제약조건 5가지 한번 적어보세요
: primary key, foreign key, unique, check, default, not null
(check는 사용가능한 곳도 있고 없는 곳도 있다)
4. view 의 특징
: 논리적으로 생성된 가상의 테이블이다. 보안성이 좋고 편리하다
5. 트랜젝션이란 ?
: 작업 처리의 단위
6. DBA 는 어떤일을 하는 사람일까요?
: 데이터베이스 관리자 (계정관리, 장치관리, 백업 등을 한다. 프로그래밍에 약할 수 있음)
7. 트리거 는 어떤 일을 하는것일까요?
: 어떤 일을 실행할 때 자동으로 실행되는 것
8. F.K 에 대하여 설명하시오
: 다른 테이블의 컬럼을 참조하는 것
9. char(3) 과 varchar2(3) 의 차이를 설명하시오.
: char는 고정길이고 varchar는 가변길이다
10. null 이란 ?
: 0도 공백도 아닌 모르는 값, 연산불가
2) 스토어드 프로시저
: CRUD 가능 (R:select)
1. Select 구문
--select 경우의 수 2가지
1. 리턴이 1개 : put_line
2. 리턴이 여러개 : pkg
--insert,update,delete는 리턴 안함
set SERVEROUTPUT ON; --결과가 출력되기 위한 설정
1)하나의 레코드값 출력하기
create or replace procedure sp_select1
as
var1 varchar2(10);
var2 varchar2(10);
var3 varchar2(10);
begin
select sno, sname, dept
into var1, var2, var3
from student
where sno='100';
DBMS_OUTPUT.put_line(var1||var2||var3); --한 라인만 출력 가능, 콘솔에 출력하겠다
end;
execute sp_select1;
--출력: 100민수컴퓨터
2)조건을 받아 하나의 레코드값 출력하기
create or replace procedure sp_select2
(
strSno in varchar2 --입력변수
)
as
var1 varchar2(10); --출력변수
var2 varchar2(10);
var3 varchar2(10);
begin
select sno, sname, dept
into var1, var2, var3
from student
where sno=strSno; --변수니까 sno='strSno'하면 안됨
DBMS_OUTPUT.put_line(var1||var2||var3);
DBMS_OUTPUT.put_line('하나의 라인만 출력됩니다);
DBMS_OUTPUT.put_line("출력성공!!!");
end;
execute sp_select2('300');
--출력: 300정기태컴퓨터
하나의 라인만 출력됩니다
출력성공!!!
3)
create or replace procedure sp_select3
(
ret out pkg.t_ref,
strSno in varchar2 --입력변수
)
is
begin
open ret for
select sno, sname, dept
from student
where sno=strSno;
end;
execute sp_select3('300');
--출력: 300정기태컴퓨터
2)랑 3)이랑 같음
2. 패키지 만들기 ( 여러개의 레코드 실행 )
create or replace package pkg is
type t_ref is ref cursor;
end;
여러개의 레코드 결과값을 보는 경우 실행 명령은 의미가 없다.
Execute() <--- 실행해도 의미가 없다. !!
4)
create or replace procedure sp_select4
(
ret out pkg.t_ref, --아웃풋
strDept in varchar2 --입력변수, 인풋
)
is
begin
open ret for
select sno, sname, dept
from student
where dept like strDept;
end;
--프로시저 실행 in값에 %컴%
where dept like '%'||strDept||'%'; -- 파이프라인 오라클에서만 가능
end;
--프로시저 실행 in값에 컴
--출력: 컴퓨터과 다 나옴
3. insert 구문
create or replace procedure sp_insert
(
i_sno varchar2,
i_sname varchar2,
i_dept varchar2,
i_year varchar2
)
is
begin
insert into student (sno, sname, dept, year)
values (i_sno, i_sname, i_dept, i_year);
end;
execute sp_insert('911','가나다','전산','4'); --값 넣고 끝, 리턴 안함
select * from student;
4. update 구문
create or replace procedure sp_update
(
i_sno varchar2,
i_sname varchar2
)
is
begin
update student set sname=i_sname
where sno=i_sno;
end;
execute sp_update('100','민수');
select * from student;
5. delete 구문
create or replace procedure sp_delete
(
i_sno varchar2
)
is
begin
delete from student
where sno=i_sno;
end;
execute sp_delete('911'); --형 맞춰보기
select * from student;
3) 문자열 함수
1.조건 컬럼 추가
한글성별을 추가하시오
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;
2.translate
select 성별, translate(count(성별),'025','공이오') 인원수 from v_bigdata1
group by 성별;
--1:1로 매칭해서 변환해줌
3. 길이
select first_name 이름 ,length(first_name) 길이 from v_bigdata1;
4. 대문자, 글자열 맞추기
select Rpad(upper(first_name),20,'#') 이름 ,length(first_name) 길이 from v_bigdata1
order by 길이 desc; --Rpad:#을 오른쪽에 작성, Lpad
5. trim(공백 지우기)
select Ltrim(' 1234 ') 값1, trim( '1234' ) 값2, Rtrim(' 1234 ') 값3 from dual;
6. 올림 버림 반올림
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-4(bigdata) (0) | 2022.05.24 |
7-3 (프로시저) (0) | 2022.05.24 |
7-2 (0) | 2022.05.24 |