목록프로그래밍/SQL (67)
쌓고 쌓다
3번 - EQUI JOIN의 3가지 방법을 이용하여 소속학과이름과 학생 이름을 학과 이름, 학생 이름순으로 정렬하여 출력 4번 - OUTER JOIN의 2가지 방법을 이용해 101번 학과에 소속된 학생들의 지도 교수 이름을 출력. (단, 지도 교수가 배정되지 않은 학생도 함께 출력) 5번 - 부서 테이블에서 각 부서의 상위 부서 이름을 출력 6번 - 공과대학에 소속된 학부와 학과 이름을 출력 7번 - 각 학과에 소속된 학과명, 학생명, 교수명을 모두 출력 8번 - 모든 학생의 이름, 지도 교수 이름, 학과 이름을 출력 9번 - 교수별로 교수 이름과 지도 학생 수를 출력 풀이 코드 (3) --WHERE SELECT d.dname,s.name FROM student s, department d WHERE s..
OUTER JOIN EQUI JOIN의 경우 한쪽 칼럼중 하나라도 NULL이 있으면 조인 결과로 출력이 안된다. 그래서 한쪽 칼럼이 NULL이 있어도 출력할 필요가 있을 때 OUTER JOIN을 사용한다. OUTER JOIN with (+) 기호 WHERE 절에서 OUTER JOIN의 연산자인 (+) 기호를 사용한다. 조인 조건문에서 NULL 이 존재하는 테이블의 칼럼에 (+) 기호를 사용한다. SELECT table1.column, table2.column FROM table1, table2 WHERE table1.column(+) = table.column 또는 table1.column = table2.colum(+) 제약 사항 OUTER JOIN에서 IN 연산자는 사용 불가 다른 조건과 OR 연산자..
1번 학과별로 평균 몸무게와 학생 수를 출력(평균 몸무게를 내림차순으로 정렬) 2번 학생 수가 최대인 학년과 최소인 학년의 학생 수를 출력 3번 학과내에서 같은 학년에 재학중인 학생 수가 3명 이상인 학과 번호, 학년, 학생 수, 최대 키, 최대 몸무게 출력 4번 학과와 학년별 키 평균, 학과별 키 평균, 전체 학생에 대한 키 평균을 출력 ***5번*** 학과별 평균 몸무게와 학년별 평균 몸무게를 출력 6번 학과별 교수 수가 2명 이하인 학과 번호, 교수 수 출력 *7번 교수중에서 급여와 보직수당을 합친 금액이 가장 많은 경우와 가장 적은 경우 그리고 평균 금액을 출력 단, 보직수당이 NULL이면 0으로 계산, 급여는 소수점 둘째 자리에서 반올림 8번 학과와 직급별 급여 평균, 학과별 급여 평균, 직급별..
1번 - 아이디 길이 7 이상인 학생의 이름, 아이디 출력 2번 - 학생의 이름, 아이디(소문자로), 생년월일('2000-01-01') 출력 3번 - 학생의 이름, 지도 교수 번호(없다면 0000으로) 출력 4번 - 학생의 비만도가 10보다 작으면 '정상', 10보다 크고 20보다 작으면 '과체중', 20보다 크면 '비만' 출력 => 비만도 = (실제체중-표준체중)*100, 표준체중 = (키 - 100)*0.9 5번 - 학번을 3으로 나눈 나머지가 0이면 'A팀', 1은 'B팀', 2는 'C팀'으로 분류하여 학생 번호, 이름, 학과 번호, 팀이름 출력 6번 - 학생 번호의 지역번호가 02이면 '서울', 051이면 '부산', 052이면 '울산', 053이면 '대구', 나머지는 '기타'로 이름, 전번, 지역..
1번 SELECT name, grade, height FROM student WHERE height > 170 ORDER BY height DESC; 2번 SELECT name, userid, grade FROM student WHERE deptno=101 ANd grade>='3'; 3번 -- 비교 연산자 SELECT name, grade, height FROM student WHERE height >= 165 AND height = 300 AND comm IS NOT NULL OR sal >= 450; 10번 SELECT profno "NO", name FROM professor WHERE deptno=201 UNION SELECT studno, name FROM student WHERE deptno..
2번 SELECT * FROM tab; 3번 - 학생 테이블의 구조 확인 4번 SELECT * FROM student; 5번 SELECT studno, name, userid FROM student; 6번 - 학과 번호를 중복되는 행을 제외하고 출력 SELECT DISTINCT deptno FROM student; 7번 SELECT name "이름", birthdate "생년월일", height "키(cm)", weight "몸무게(kg)" FROM student; 8번 SELECT name || '학생의 키는' || height || '(cm)이고, 몸무게는 ' || weight || '(kg)이다.' FROM student; 9번 - 표준체중( 키-몸무게*0.9 ) SELECT name, height..
EQUI JOIN SELECT table1.column, table2.column FROM table1, table2 WHERE table1.column1=table2.column2; 공통 칼럼 있을 때 그 값을 비교하여 같은 값을 가지는 행을 연결하여 결과를 생성한다. join attribute(속성) : 연결 고리가 되는 공통 칼럼 EX) 학생 테이블과 부서 테이블을 EQUI JOIN하여 학번, 이름, 학과번호, 소속학과이름, 학과 위치를 출력 SELECT s.studno, s.name, s.deptno, d.dname, d.loc FROM student s, department d WHERE s.deptno=d.deptno; EQUI JOIN - NATURAL JOIN WHERE절을 사용하지 않고 ..
조인(JOIN) 하나의 SQL 명령문으로 여러 테이블에 저장된 데이터를 이용하여 조회할 수 있다. 종류: EX) 학번이 10101인 학생의 이름과 소속 학과 이름을 출력 SELECT name, student.deptno, dname FROM student, department WHERE student.deptno=department.deptno; student 테이블에 학번(studno), 학생의 이름(name), 학과 번호(deptno)가 있고 department에 학과 번호(deptno), 학과 이름(dname)이 있다. 여기서 student 테이블의 학과 번호와 department의 학과 번호를 매치시켜 일치하는 department 테이블의 행을 가져와 사용한다. 여기서 student의 deptno..