전체 글 226

PL/SQL : 커서 CURSOR

CURSOR 커서 - SELECT 실행 경과가 여러 개의 로우 일 때 이를 처리하기 위해 사용 (결괏값이 여러 행일 경우) - CURSOR, OPEN, FETCH, CLOSE 4단계 1. DECLARE CURSOR - CURSOR를 선언하기 위해 DECLARE CURSOR 사용 2. OPEN CURSOR - 질의를 수행, 검색 조건을 충족하는 모든 행으로 구성된 결과를 생성하기 위해 CURSOR를 OPEN 합니다. - CURSOR는 이제 결과 셋에서 첫 번째 행을 가리킨다 (포인터와 비슷) 3. FETCH CURSOR - FETCH 문은 결과 셋에서 로우 단위로 데이터를 읽어 들인다. - FETCH 후에 CURSOR는 결과에서 다음 행으로 이동 4. EXIT WHEN~ CLOSE - 커서가 끝에 위치하게..

SQL/ORACLE SQL 2022.11.11

PL/SQL : 제어 문, 반복 문

제어 문 (선택문) IF THEN END IF IF THEN ELSE END IF IF THEN ELSIF IF - 조건에 따라 어떤 명령을 선택적으로 처리 DECLARE -- 선언부 --변수 선언 GRADE CHAR(10); RESULT VARCHAR2(30); BEGIN -- 실행부 GRADE := 'B'; --값을 대입 IF GRADE = 'A'THEN --비교연산자 (=) RESULT := 'A학점'; ELSIF GRADE = 'B'THEN RESULT := 'B학점'; ELSIF GRADE = 'C'THEN RESULT := 'C학점'; ELSE RESULT := '제적'; END IF; DBMS_OUTPUT.PUT_LINE('학점 : '||GRADE||'=>'||RESULT); EXCEPTIO..

SQL/ORACLE SQL 2022.11.11

PL/SQL : 변수 선언

PL/SQL 변수 상수 등을 선언하여 SQL과 절차적 언어에서 사용 DECLARE 선언부 - 모든 변수나 상수를 선언하는 부분 DECLARE로 시작됨 (필수아님) BEGIN 실행부 - 로직을 기술 할 수있는 부분 BEGIN으로 시작됨 (필수) EXCEPTION 예외처리부 - 에러가 발생(예외사항) 하면 이를 해결하기 위한 부분 EXCEPTION으로 시작됨 (필수아님) 쿼리문을 수행하기 위해서 ' / ' 가 반드시 입력되어야함 PL/SQL 블록은 ' / '가 있으면 종결됨확인 * 기본적으로 PL/SQL은 결과물을 보여주지 않는다. 결과물을 보고 싶다면 SERVEROUTPUT 설정 을 ON 으로 설정해 주어야 한다 SET SERVEROUTPUT ON --외부에 메세지를 출력하라는 뜻 (이것 먼저 실행 또는 ..

SQL/ORACLE SQL 2022.11.11

VIEW 연습

학생 테이블 생성 학번(문자) 이름(문자) 학과(문자) 나이(숫자) 성별(문자) 전화(문자) 주소(문자) 취미(문자) 교수 번호(문자) 제약조건 학번 기본키 참조키 교수 번호 학과(컴퓨터학과, 통계과, 건축과, 전기과, 전자과) 나이(19세 이상) 성별(남, 여) 취미를 제외하고 모든 칼럼 NULL 포함 X CREATE TABLE STUDENT ( STNUM VARCHAR2(10) PRIMARY KEY, STNAME VARCHAR2(20) NOT NULL, MAJOR VARCHAR2(20) NOT NULL CHECK(MAJOR IN('컴퓨터학과','통계과','건축과','전기과','전자과')), AGE NUMBER NOT NULL CHECK(AGE >=19), GENDER CHAR(5) NOT NULL C..

SQL/SQL 연습 2022.11.10

VIEW : 뷰

VIEW (뷰) 하나 이상의 물리적인 테이블을 근거한 논리적인 가상 테이블 (메모리) 저장 장치 내에 물리적으로 존재하지 않는 다 (디스크 저장 공간이 할당되지 않음) 사용법 CREATE OR REPLACE VIEW [VIEWNAME] AS [SUBQUERY] [WITH CHECK OPTION] [WITH READ ONLY] VIEW를 사용하기 위해서는 권한이 필요하다 VIEW 권한 부여 (SYSTEM(관리자) 계정으로 부여) GRANT CREATE VIEW TO [사용자 계정]; VIEW는 테이블 수에 따라 단순 뷰(simple view), 복합 뷰(complex view)로 나뉨 VIEW는 보안과 사용의 편의성 때문 사용됨 보안을 위한 뷰 (예제) CREATE VIEW V_EMP_SAMPLE AS S..

SQL/ORACLE SQL 2022.11.10

제약 조건 연습

학생 테이블 STUDENT_T 생성 ID 문자열(5) 기본키, NAME 문자열(10), NULL 아님 나이 숫자 NULL 아님, 성별 문자열(5) NULL 아님 학년 문자열(10) NULL 아님, 주소 문자열(50) NULL 아님 아이디 (기본키) 나이 (19세 이상) 성별 (남, 여) 학년 (1학년, 2학년, 3학년, 4학년) 테이블 생성 CREATE TABLE student_t( ID VARCHAR2(5) PRIMARY KEY, NAME VARCHAR2(10) NOT NULL, age NUMBER NOT NULL CHECK(age >= 19), gender VARCHAR2(5) NOT NULL CHECK(gender IN ('남','여')), grade VARCHAR2(10) NOT NULL CHEC..

SQL/SQL 연습 2022.11.10

제약 조건 : CHECK, DEFAULT

CHECK 칼럼에서 허용 가능한 데이터의 범위나 조건을 정의하여 설정된 값만 허용함 설정된 이외의 값이 들어오면 오류 메시지와 함께 명령을 수행하지 못하게 함 CHECK 제약 조건의 수는 제한이 없다 CURRVAL, NEXTVAL, ROWNUM 같은 의사 칼럼 SYSDATE, USER와 같은 함수에는 사용 못함 사용법 CREATE TABLE [테이블명]( [칼럼명] [데이터 형식] CONSTRAINT [제약조건명] CHECK (조건) ); 예제 CREATE TABLE EMP_SECOND( ENO NUMBER(4) CONSTRAINT EMP_SECOND_ENO_PK PRIMARY KEY, ENAME VARCHAR2(10), SALARY NUMBER(4) CONSTRAINT EMP_SECOND_SALARY_..

SQL/ORACLE SQL 2022.11.10

GROUP BY , HAVING

1.포지션별 인원수, 최대키 ,최소키 , 평균키를 출력 소수점 2자리 SELECT POSITION, COUNT(*) 인원수, MAX(HEIGHT) 최대키 ,MIN(HEIGHT) 최소키 , ROUND(AVG(HEIGHT),2) 평균키 FROM PLAYER GROUP BY POSITION HAVING POSITION IS NOT NULL; 2.K리그 선수들의 포지션별 평균키를 구하고 평균키가 180CM이상인 정보만 출력 SELECT position,COUNT(*), ROUND(AVG(HEIGHT)) 평균키 FROM player GROUP BY position HAVING ROUND(AVG(HEIGHT)) >= 180; 3.K리그 선수들중 삼성블루윙즈(K02)와 FC서울(K09)의 인원수를 출력 SELECT ..

SQL/SQL 연습 2022.11.09

비교 연산자, 논리 연산자, SQL 연산자 문제

1. 소속팀이 삼성블루윙즈팀인 선수들을 출력 SELECT player_name FROM PLAYER WHERE team_id IN('K02'); 2. 포지션이 미드필더인 선수들을 출력 SELECT player_name FROM PLAYER WHERE POSITION IN ('MF'); 3. 키가 170CM 이상인 선수들을 출력 SELECT player_name FROM PLAYER WHERE HEIGHT >=170; 4. 소속팀이 삼성 블루윙즈이거나 전남 드래곤즈 소속인 선수들을 출력 SELECT PLAYER_NAME FROM PLAYER WHERE TEAM_ID IN('K02') OR TEAM_ID IN('K07'); SELECT PLAYER_NAME FROM PLAYER WHERE TEAM_ID = ..

SQL/SQL 연습 2022.11.09