데이터 베이스/Oracle SQL 13

[ Oracle SQL ] 조인[JOIN]

1. INEER 조인(JOIN) 같은 키를 가지고 있는 두 테이블을 관계가 있는 것만 합치는것, 기본값. outer는 제거한다. (table1.id = table2.write_id) select * from table1 inner join table2 on table1.id = table2.write_id; 2. Outer Join 같은 키를 가지고 있는 두 테이블을 합치는것, outer도 포함한다. 값이 없는 경우 null값을 포함한다. 주인공을 기준으로 관계있는 것을 합치기. select * from table1 [left/right/full] outer join table2 on table1.id = table2.write_id; 3. Self Join 데이터가 ..

[oracle sql] 문자열 내장 함수 (2)

1. 문자열 패딩 함수 select LPAD('HELLO',5) FROM DUAL; select LPAD('HELLO',5, '0') FROM DUAL; select LPAD('HELLO',10,'0') FROM DUAL; select RPAD('HELLO',10,'0') FROM DUAL; 2. INITCAP(문자열) : 첫 글자를 대문자로 바꾸는 함수 select initcap('the important thing is ... ') from dual; select initcap('the impo하rtant t히hing is ... ') from dual; -> 한글 뒤 글자도 대문자로 바뀜. 3. INSTR(문자열, 검색문자열, 위치, 찾을 수) : 문자열 검색 함수 select instr('all ..

SQL DEVELOPER 경고 오류 실행 안됨

"SQL DEVELOPER 경고 - 일부 모듈을 설치하지 못했습니다." 라는 경고창과 함께 developer 실행이 되지 않았다. 해결한 방법은 다음과 같다. C:\Users\사용자명\AppData\Roaming\SQL Developer 폴더 내에 있는 파일을 모두 삭제한다. 이게 전부다. 삭제 하니 실행이 잘 된다. 단점은.. 지금까지 실행한 모든 테이블, 접속정보 등등이 사라진다는 것.. 상관 없는 분만 이렇게 하시길..

[oracle sql] 문자열 내장 함수 (1)

1. SUBSTR(문자열, 시작위치, 길이) : 문자열 잘라내는 함수 SELECT SUBSTR('HELLO',1,3) FROM DUAL; -> HELLO의 1번째 위치부터 3글자 SELECT SUBSTR('HELLO',3) FROM DUAL; -> HELLO의 3번째 위치부터 다 SELECT SUBSTRB('HELLO',3) FROM DUAL; -> 바이트단위, HELLO의 3번째 바이트부터 다(영문이라 1바이트 단위) SELECT SUBSTRB('안녕',3) FROM DUAL; ex) 모든 학생의 이름과 출생 월만을 조회하시오. select name, substr(birthday,6,2) month from student; ex) 회원 중에서 전화번호가 011으로 시작하는 회원의 모든 정보를 출력하시오..

rownum 실습

rownum은 sql 쿼리를 실행했을 때 결과값에 자동으로 붙는 인덱스 같은 것이다. rownum을 이용하면 결과값의 개수를 제한해서 나타낼 수 있다. 예를 들어 select * from notice where rownum 1 and 5; 이라고 입력하면 결과값을 5개까지만 나타낸다. 하지만 rownum을 2번째부터 나타내려고 할땐 문제가 생긴다. select * from notice where rownum between 2 and 3; 언뜻 보기엔 문제없는 쿼리 같지만 실행해보면 결과값이 나오지 않는다. 이유는 처음 rownum이 생길때 rownum은 1부터 시작한다. 그리고 rownum을 between 2 and 3 이 문장과 비교하게 된다. rownum 1은 범위 값에 안들어가기 때문에 다음 결과값..

Oracle DML 데이터 조작어

1. INSERT/SELECT INSERT INTO VALUES INSERT INTO MEMBER(ID, PWD) VALUES('newlec', '111'); 넣지 않으면 NULL값 SELECT * FROM MEMBER; : MEMBER의 모든 데이터 꺼내기 SELECT ID AS USER_ID, NAME, PWD FROM MEMBER; (=)SELECT ID USER_ID, NAME, PWD FROM MEMBER; AS 생략 가능 2. UPDATE / DELETE UPDATE MEMBER SET PWD='333', name='손오공' WHERE ID='dragon'; ; ->ID가 'dragon'인 행의 PWD가 222, NAME이 '손오공'으로 업데이트 됨 DELETE MEMBER WHERE ID='..