literal 상수(literal 문자, 표현식)
SQL> select name, '교수님 배고파요' from professor;
NAME '교수님배고파요 ; '교수님 배고파요' 부분을 literal상수(literal문자, 또는 표현식)이라고 한다. ---------- --------------- 이재우 교수님 배고파요 김도훈 교수님 배고파요 성연희 교수님 배고파요 염일웅 교수님 배고파요 권혁일 교수님 배고파요 이만식 교수님 배고파요 전은지 교수님 배고파요 남은혁 교수님 배고파요
8 rows selected. |
연결연산자(||로 문자열 또는 컬럼을 이어줄 수 있다.)
SQL> select deptno||' '||dname from dept;
DEPTNO||''||DNAME -------------------------------------------------------- 10 ACCOUNTING 30 SALES 20 RESEARCH 40 OPERATIONS |
실습문제 : 김도훈(교수) ,김도훈'교수' 처럼 professor테이블에서 자료를 뽑아보세요.
SQL> select name||'('||position||') , ' ||
2 name||''''||position||'''' <---- 여기서 ''안에 '가 표시되게 하려면 '''' 라고 써줘야 표시됩니다.
3 from professor;
NAME||'('||POSITION||'),'||NAME||''''||POSITION||''''
-------------------------------------------------------------------
김도훈(교수) , 김도훈'교수'
이재우(조교수) , 이재우'조교수'
성연희(조교수) , 성연희'조교수'
염일웅(전임강사) , 염일웅'전임강사'
권혁일(교수) , 권혁일'교수'
이만식(부교수) , 이만식'부교수'
전은지(전임강사) , 전은지'전임강사'
남은혁(부교수) , 남은혁'부교수'
8 rows selected.
SQL> select studno, name, grade, deptno2 from student3 where grade=2;
STUDNO NAME G DEPTNO---------- ---------- - ----------10201 김진영 2 10210104 지은경 2 10110105 임유진 2 10120103 김진경 2 20110108 류민정 2 101
SQL> select name, studno, height2 from student3 where height between 160 and 170;
NAME STUDNO HEIGHT where tablename BETWEEN A AND B 형식으로 사용하며,---------- ---------- ---------- A와 B를 포함해서 검색합니다.박미경 10102 168김영균 10103 170김진영 10201 164지은경 10104 161하나리 10203 160김진경 20103 166류민정 10108 162
SQL> select profno, name, position, deptno2 from professor3 where position in('조교수', '전임강사');
PROFNO NAME POSITION DEPTNO where tablename in('조건1', '조건2', ....); 방법으로 사용합니다.---------- ---------- -------------------- ----------9902 이재우 조교수 2019903 성연희 조교수 1019904 염일웅 전임강사 1029907 전은지 전임강사 101
SQL> select name, grade, deptno 2 from student
3 where name like '김_영';
NAME G DEPTNO
---------- - ----------
김진영 2 102
| SQL> select name, grade, deptno 2 from student
3 where name like '김%';
NAME G DEPTNO
---------- - ----------
김영균 3 101
김진영 2 102
김진경 2 201
|
SQL> select name from student2 where name between '아%' and '자%';
NAME----------이동훈오유석임유진윤진욱이광훈
SQL> select name, position, comm 2 from professor 3 where comm is null;
NAME POSITION COMM ---------- -------------------- ---------- 이재우 조교수 염일웅 전임강사 이만식 부교수 전은지 전임강사 |
1 select name, position, comm 2 from professor 3* where comm is not null SQL> /
NAME POSITION COMM ---------- -------------------- ---------- 김도훈 교수 20 성연희 조교수 15 권혁일 교수 25 남은혁 부교수 17 |
집합 연산자 |
의 미 |
주의사항 : 컬럼이름은 달라도 상관없지만, 데이터타입은 같아야한다. |
|
UNION |
두 집합에 대해 중복되는 행을 제외한 합집합 |
"+(첫 컬럼으로 정렬)" |
정렬사용 |
UNION ALL |
두 집합에 대해 중복되는 행을 포함한 합집합 |
"+(정렬안함)" |
|
MINUS |
두 집합간의 차집합 |
"-(순서중요)" |
정렬사용 |
INTERSECT |
두 집합간의 교집합 |
"교집합(속도느림)" |
정렬사용 |
(정렬사용한다는 말은 데이터베이스에 행이 엄청 많을때, 이 쿼리 잘못쓰면 하루종일 걸린다는 말입니다. 쓸때 조심하세요)
SQL> select name, position from professor 2 union 3 select name, grade from student;
NAME POSITION ---------- -------------------- 권혁일 교수 김도훈 교수 김영균 3 김진경 2 김진영 2 남은혁 부교수 류민정 2 박동진 1 박미경 1 서재진 1 성연희 조교수
NAME POSITION ---------- -------------------- 염일웅 전임강사 오유석 4 윤진욱 3 이광훈 4 이동훈 1 이만식 부교수 이재우 조교수 임유진 2 전은지 전임강사 전인하 4 조명훈 1
NAME POSITION ---------- -------------------- 지은경 2 하나리 1 |
SQL> select deptno from professor 2 minus 3 select deptno from student;
DEPTNO ---------- 202
다른건 안그런데 minus는 순서가 중요합니다.
SQL> select deptno from professor 2 intersect 3 select deptno from student;
DEPTNO ---------- 101 102 201 |
1 select deptno, grade, studno, name, userid2 from student3* order by deptno desc, grade asc ; deptno 내림차순으로 정렬 후 ,grade 오름차순으로 정렬해서 뽑아옴.(asc 생략가능)SQL> /
DEPTNO G STUDNO NAME USERID---------- - ---------- ---------- ----------201 1 20101 이동훈 Dals201 1 20104 조명훈 Rader214201 1 20102 박동진 Ping2201 2 20103 김진경 lovely102 1 10203 하나리 hanal102 2 10201 김진영 simply102 3 10204 윤진욱 Samba7102 4 10202 오유석 yousuk101 1 10106 서재진 seolly101 1 10102 박미경 ansel414101 2 10104 지은경 Gomo00
DEPTNO G STUDNO NAME USERID---------- - ---------- ---------- ----------101 2 10105 임유진 YouJin12101 2 10108 류민정 cleanSky101 3 10103 김영균 mandu101 4 10107 이광훈 huriky101 4 10101 전인하 jun12
'Oracle > SQL' 카테고리의 다른 글
2012.01.03 SQL 2일차(2) 일반함수(nvl,nvl2,decode,case) (0) | 2012.01.09 |
---|---|
2012.01.03 SQL 2일차(1) 문자함수(LPAD,RPAD,REPLACE), 숫자함수, 날짜함수, 변환함수 (0) | 2012.01.09 |
2012.01.02 SQL 1일차(3) 연습노트( RTRIM의 미묘한 삭제, SUBSTR연습 ) (0) | 2012.01.09 |
SQL Plus 명령어 (0) | 2012.01.09 |
2012.01.02 SQL 1일차(2) (sql함수,문자함수,대소문자변환함수,문자열길이반환함수,문자조작함수) (0) | 2012.01.09 |