230608 day44 개념 정리

Jin·2023년 6월 16일
0

codenotion

목록 보기
39/90
post-thumbnail

125p 문제풀이 

1. select * from emp
where ename like '%S';

2. select empno, ename, job, sal, deptno 
from emp 
where deptno = 30 and job = 'SALESMAN'; 

3-1. select empno, ename, job, sal, deptno 
from emp 
where deptno in (20, 30) and sal > 2000;

3-2. select empno, ename, job, sal, deptno 
from emp
where deptno = 20 and > 2000
union
select empno, ename, job, sal, deptno
from emp
where deptno = 30 and sal > 2000;

4. select empno, ename, job, sal, deptno 
from emp
where sal < 2000 or sal > 3000;

5. select empno, ename, job, sal, deptno 
from emp
where deptno = 30
and ename like '%E%'
and sal not between 1000 and 2000;

6. select * from emp
where comm is null
and mgr is not null 
and job in ('MANAGER','CLERK')
and ename not like '_L%';



데이터 정의어 (DDL) : 데이터베이스의 데이터를 보관하고 관리하기 위해 
제공되는 여러 객체의 생성, 변경 관련 기능을 수행함 
수행하자마자 데이터베이스에 수행한 내용이 바로 반영되는 특성이 있음

1) CREATE문
데이터 객체(table, database)를 생성하는 명령어


데이터베이스 자료형 

- VARCHAR2(길이) 
4000byte만큼의 가변길이 문자열 데이터 저장 가능 

- NUMBER(전체 자리 수, 소수점 이하 자리 수)
38자릿수의 숫자 저장 가능 
NUMBER(p, s) 이렇게 표기하묜 s자리만큼 소수점 이하 자릿수를 표현하고, 
이 소수점 자리를 포함한 전체 p자리만큼 숫자 데이터를 저장 

- DATE
날짜 형식을 저장하기 위해 사용하는 자료형
세기, 년도, 월, 일, 시, 분, 초 저장이 가능함 


제약조건 : 테이블의 특정 열에 지정, 제약 조건을 지정한 열에는 제약 조건에 
부합하지 않는 데이터를 저장할 수 없으며 기존 데이터의 수정이나 
삭제 가능 여부도 영향을 받음 

- NOT NULL : 지정한 열에 NULL을 허용하지 않음 

- UNIQUE : 지정한 열은 유일한 값을 가져야함, 중복될 수 없음 
(NULL은 값의 중복에서 제외됨)

- PRIMARY KEY : 지정한 열이 유일한 값이며 NULL을 허용하지 않음 
PRIMARY KEY는 테이블에 하나만 지정 가능 

- FOREIGN KEY : 다른 테이블의 열을 참조하며 존재하는 값만 입력 가능

- CHECK : 설정한 조건식을 만족하는 데이터만 입력 가능 


<테이블 만들기 연습>
1. 
create table member(
mno number(4),
mname varchar2(20),
mmail varchar2(30),
mid varchar2(10) not null
);

insert into member(mno, mname, mmail, mid)
values(10,'김그린','green@naver.com','green');

select * from member;

2.
create table  department(
deptno number(2) primary key,
deptname varchar2(20) not null,
location varchar2(40)	
);

insert into department(deptno, deptname, location)
values(10,'인사부','서울');

insert into department(deptno, deptname, location)
values(20,'영업부','울산');

select * from department;



- 기존 테이블 열 구조와 데이터를 복사하여 새 테이블을 생성
where 절을 사용하여 생성 테이블에 저장될 데이터를 조건식으로 지정 가능

- 기존 테이블의 열 구조만 복사하여 새 테이블 생성
열 구성은 같으나 저장 데이터는 없는 빈 테이블 생성하려면
where조건식의 결과 값이 언제나 false 나오도록 지정하면 됨
ex> 
where 1<>1; ---> 1과 1이 같지 않다는 항상 거짓식을 조건으로 줌

- 테이블 생성하며 제약 조건 지정 
PRIMARY KEY : 유일하게 하나만 있는 값
CHECK KEY : 데이터 형태와 범위를 정하는 check 
기본값을 정하는 default 명령어


테이블을 변경하는 alter 
생성된 객체를 변경할 때 사용하며 새 열을 추가하거나 열 삭제, 열 자료형을 
변경, 열 이름을 변경, 열 삭제 명령어가 있음 
- add 열 이름 열 자료형
- rename column 열 이름 to 변경될 열 이름
- modify 열 이름 열 타입
- drop column 열 이름



324p 연습문제 풀이 

create table emp_hw(
empno number(4),
ename varchar2(10),
job varchar2(9),
mgr number(4),
hiredate date,
sal number(7,2),
comm number(7,2),
deptno number(2)
); 

alter table emp_hw
add bigo varchar2(20);

alter table emp_hw
modify bigo varchar2(30);

alter table emp_hw
rename column bigo to remark;

drop table emp_hw;



- RENAME(이름 변경), TRUNCATE(데이터 삭제), DROP(테이블 삭제)

create table emp_hw
as select * from emp;

alter table emp_hw
add remark varchar(20);

select * from emp_hw;

truncate table emp_hw;

select * from emp_hw;

insert into emp_hw
select empno, ename, job, mgr, hiredate, sal, comm, deptno, null from emp; 

rename emp_hw to emp_hw2


- INSERT(데이터 추가), UPDATE, DELETE
~~~ 다음시간에 이어서 ~~~










오라클 함수 : 특정한 결과 값을 얻기 위해 데이터를 입력할 수 있는 특수 명령어

오라클 함수의 종류 
- 내장함수 (built-in function)
오라클에서 기본으로 제공하는 함수 

- 사용자 정의 함수 (user-defined function)
사용자가 필요에 의해 직접 정의하는 함수

- 문자 함수 
문자 데이터를 가공하거나 문자 데이터로부터 특정 결과를 얻을 때 사용 


UPPER() 모두 대문자로 반환
LOWER() 모두 소문자로 반환 
INTCAP() 첫 글자는 대문자, 나머지 문자는 소문자로  반환

UPPER() 함수로 문자열 비교하기
ex> 
SELECT * FROM EMP
WHERE UPPER(ENAME) = UPPER('scott')

LENGTH() 문자열 길이를 반환 
LENGTHB() 바이트 수를 반환 

SUBSTR(문자열데이터, 시작위치, 추출위치) 
SUBSTR(문자열데이터, 시작위치)
문자열의 일부 추출할 때 사용, - 값을 주면 뒤에서부터 -1로 계산됨


select ename, upper(ename), lower(ename), initcap(ename) from emp;


select * from emp
where ename = 'clark';

select * from emp
where lower(ename) = 'clark';


select ename, length(ename) from emp;

select ename, length(ename) from emp
where length(ename) >= 5;


select ename, substr(ename,2,2) from emp;
(순서 0,1,2가 아니라 1,2인 것에 주의)


INSTR(대상문자열-필수, 위치찾으려는문자열-필수, 
위치찾기시작할위치, 시작위치에서몇번째있는문자인지지정) 
데이터 안에서 특정문자 위치를 찾아서 반환

REPLACE(문자열 또는 열 이름, 찾는 문자, 대체할 문자)
특정 문자를 다른 문자로 변경 
만약 대체할 문자 입력하지 않으면 찾는 문자로 지정한건 데이터에서 삭제됨

LPAD(문자열 또는 열 이름, 데이터의 자리수, 빈 공간에 왼쪽부터 채울 문자)
RPAD(문자열 또는 열 이름, 데이터의 자리수, 빈 공간에 오른쪽부터 채울 문자)
데이터의 자리 수를 설정 후 빈 공간을 특정 문자로 채움 


select instr('HELLO, ORACLE', 'L') as instr_1,
instr('HELLO, ORACLE', 'L', 6) as instr_2,
instr('HELLO, ORACLE', 'L', 2, 2) as instr_3
from dual;


select * from emp
where instr(ename, 'S') > 0;


select ename from emp
where instr(ename, 'S') > 0;

select ename from emp
where ename like '%S%';


select '010-1234-5678' as replace_before,
replace('010-1234-5678', '-', ' ') as replace_1,
replace('010-1234-5678', '-') as replace_2
from dual;  

select 'Oracle',
lpad('Oracle', 10, '#') as lpad_1,
lpad('Oracle', 20, '^') as lpad_2,
rpad('Oracle', 10) as rpad_1,
rpad('Oracle', 20, '$') as rpad_2
from dual;
profile
신입 개발자의 배웠던 것을 복습하기 위한 블로그입니다.

0개의 댓글