일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 버추얼머신
- html
- rinux
- NCS
- 데이터베이스
- Cisco
- ciscopacket
- 오라클
- 자바
- 참조타입
- 리눅스
- ospf
- php
- 정보처리기사
- jsp연결
- 정처기필기
- 네트워크
- cisco packet
- Oracle
- jsp
- 원형그래프
- javaee
- w3school
- Java
- 네트워크관리사
- autoset
- 라우터
- sql
- VLAN
- 이것이 자바다
- Today
- Total
기록해! 정리해!
5-예제2 본문
drop table school;
create table school(
idx char(3),
sname nvarchar2(10),
age number(3),
tel varchar2(15)
);
문제1. idx에 p.k 를 부여하여 school을 만드시오.
alter table school
add primary key (idx);
문제2. 레코드를 추가하시오.
insert into school(idx, sname, age, tel)
values ('101', '둘리', 12, '010-5037-6133');
insert into school(idx, sname, age, tel)
values ('102', '하니', 15, '010-1234-1212');
insert into school(idx, sname, age, tel)
values ('104', '영심이', 17, '017-5555-0341');
insert into school(idx, sname, age, tel)
values ('105', 'young won', 20, '010-5555-6363');
insert into school(idx, sname, age, tel)
values ('107', '대한민국', 22, '019-3245-1234');
insert into school(idx, sname, age, tel)
values ('109', '아름이', 25, '010-1212-5555');
문제3. 이름을 기준으로 내림차순 정렬하시오.
select * from school
order by sname desc;
문제4. 번호가 101, 104, 107 인 학생의 레코드를 출력하시오.
select * from school
where idx in(101, 104,107);
문제5. 105번의 이름을 영원으로 변경하시오.
update school set sname='영원'
where idx='105';
문제6. 104번의 나이를 15살로 수정하시오.
update school set age='15'
where idx='104';
문제7. 이름이 아름이인 학생의 전화번호를 삭제하시오.
update school set tel=''
where sname='아름이';
문제8. 전체 학생의 나이를 19살로 수정하시오.
update school set age='19'
where idx in(101,104,105,107,109);
문제9. 102번 학생을 삭제하시오.
delete from school
where idx='102';
문제10. 전체 레코드를 삭제하시오.
delete from school; --DML(롤백 가능)
drop table school; --DDL(롤백 불가능)
select * from school;
--252p
1. sname과 tel의 값의 길이를 구하시오
select length(sname)길이1, length(tel)길이2 from school;
2. 전체의 값을 하나의 컬럼에 나타내시오
select idx||sname||age||tel as 학생정보
from school;
3.별칭
select '번호:'||idx||',이름:'||sname||',나이:'||age||',전화번호:'||tel
as 학생정보
from school;
4.뷰
create view v_school
as
select '번호:'||idx||',이름:'||sname||',나이:'||age||',전화번호:'||tel
as 학생정보
from school;
select * from v_school;
5.쉼표 찾기
select instr(학생정보,',')from v_school;
select instr(학생정보,',',1)from v_school; --첫글자부터 쉼표찾기
select instr(학생정보,',',8)from v_school; --여덟번째 글자부터 쉼표찾기
select instr(학생정보,',',1),instr(학생정보,',',8),instr(학생정보,',',14) from v_school;
6.문자 바꾸기
insert into school(idx, sname, age, tel)
values ('200', 'Park min', 25, '010-1212-5555');
select lower(sname),upper(sname),initcap(sname) from school;
--소문자 / 대문자 / 첫글자만 대문자
7. 뷰 별칭
create view v_school1
as
select lower(sname)소문자,upper(sname)대문자,initcap(sname)첫글자 from school;
select * from v_school1;
create view v_school2(소문자,대문자,첫글자)
as
select lower(sname),upper(sname),initcap(sname) from school;
select * from v_school2;
8.변환함수 (253p)
select * from school;
문자열을 문자열로 변환하는 함수
select replace (tel,'-','') from school;
-- -가 ''(공백)으로 변함
select sname,replace(lower(sname),'min','민')
,replace (tel,'-','') from school;
select tel,translate(tel,'0123','영일이삼')from school;
--0123이 영일이삼 으로 바뀜
select tel,substr(tel,0,3) from school;
--0번째부터해서 3번째 글자 나옴
select tel,substr(tel,0,3),substr(tel,5,4) from school;
select tel,substr(tel,1,3),substr(tel,5,4),substr(tel,10,4) from school;
select substr(tel,1,3)||substr(tel,5,4)||substr(tel,10,4) as "전화번호" from school
where tel is not null ; --하나의 컬럼으로 만들 때
Create table t2
as
select substr(tel,1,3) || substr(tel,5,4) || substr(tel,10,4) as "전화번호"
from school
where tel is not null ;
select * from t2 ;
select substr(전화번호,1,3) || '-' || substr(전화번호,4,4) || '-' || substr(전화번호,8,4) as "전화번호"
from t2
where tel is not null ;