20230404 [문제1] 입사한 월을 출력하고 월별 입사자 수를 1월부터 12월 까지 순서대로 출력하시오. ((내가 쓴 답안)) SELECT tochar(hiredate, 'mm') "입사한 월", count(*) "월별 입사자 수" FROM employees GROUP BY tochar(hiredate, 'mm') ORDER BY 1; -- extract 날짜를 숫자형으로 -- to_char 날짜를 문자형으로 ((강사님 답안)) 1) to_char 사용 SELECT month||'월' 월, 인원수 FROM(SELECT tonumber(tochar(hire_date, 'mm')) month, count(*) 인원수 FROM employees GROUP BY tonumber(tochar(hire_date, 'mm')) ORDER BY 1); 2) extract 사용 SELECT month||'월' 월, 인원수 FROM
20230404 다음 SELECT 문장에서 Column Header로 출력되는 것은? ( 3 ) SELECT employeeid, firstname||last_name "Employee Name" FROM employees; ① employee_id, employee name ② Employee_id, Employee Name ③ EMPLOYEE_ID, Employee Name ④ EMPLOYEE_ID, EMPLOYEE NAME 다음 QUERY의 결과는 몇개의 column인가? ( 1 ) SELECT 'a'||'b'||'C' "Result" FROM dual; ① 1 ② 3 중복 행을 제거 할 때 사용하는 키워드는? ( 2 ) ① ALL ② DISTINCT ③ NVL ④ COALESCE SELECT문의 기능이 아닌 것은? ( 4 ) ① 프로젝션(PROJECTION) ② 선택(SELECTION) ③ 조인(JOIN) ④ 엔티티
20230403 SQL ■ 날짜 타입 ❍ 현재 접속한 지역의 timezone 수정 ALTER SESSION SET TIME ZONE = '+09:00'; ❍ 날짜 표현법 DATE TIMESTAMP TIMESTAMP WITH TIMEZONE TIMESTAMP WITH LOCAL TIMEZONE INTERVAL YEAR TO MONTH INTERVAL DAY TO SECOND ❍ to_date 함수 문자를 날짜형으로 변환하는 함수 ❍ to_timestamp 함수 문자를 날짜형(timestamp)으로 변환하는 함수(시분초 표현) ❍ totimestamptz 함수 문자를 날짜형(timestamp with time zone)으로 변환하는 함수 ❍ to_yminterval 함수 문자를 날짜형(INTERVAL YEAR TO MONTH)으로 변환하는 함수 ❍ to_dsinterval 함수 문자를 날짜형(INTERVAL DAY TO SECOND)으로
20230331 SQL ■ VIEW의 두 가지 제약조건 1) VIEW에 체크 제약조건을 생성하는 방법 2) VIEW를 통해서 DML을 불허하는 방법(SELECT만 가능하게 하도록 하는 제약조건) ■ VIEW에 표현식 있는 경우 ● 체크 제약조건을 확인하는 방법 ■ SEQUENCE ❍ SEQUENCE 생성 ❍ SEQUENCE이름.NEXTVAL : 사용가능한 번호를 리턴하는 가상 컬럼(INSERT) ❍ SEQUENCE이름.CURRVAL: 현재 사용 가능한 번호를 리턴하는 가상컬럼(INSERT) ❍ SEQUENCE 삭제하는 방법 ❍ SEQUENCE 설정부터 생성 ❍ SEQUENCE 수정 ❍ sequence이름.nextval 은 UPDATE에서도 사용 가능함 (위에서 INSERT 함) ■ SYNONYM (동의어) ❍ SYNONYM 생성하는 방법 ● SYNONYM 이름은 고유한 명칭이어야 함 ❍ SYNONYM 삭제하는 방법 ● 다른 사람이 만든 synonym 중 내가 사용할 수 있
20230330 SQL ▶ 제약조건 다섯 가지 PRIMARY KEY FOREIGN KEY UNIQUE CHECK NOT NULL -- 이렇게 다섯 개임. 이 외 업무별 제약 조건은 TRIGGER를 이용해서 만듦 ❍ 제약조건 삭제 ❍ UNIQUE 제약조건 ❍ CHECK 제약조건 ❍ NOT NULL 제약조건 ■ 테이블 생성시 제약조건 함께 생성 ■ 테이블 이름 수정 ■ 컬럼 이름 수정 ■ 제약조건 이름 수정 ■ 인덱스 이름 수정 ■ FLASHBACK TABLE ❍ 삭제한 테이블 복원 ● 제약조건 이름 수정 ● 인덱스 이름 수정 ■ TRUNCATE ■ COMMENT ❍ 테이블 주석 확인/생성/삭제 ❍ 컬럼 주석 확인/생성/삭제 ■ VIEW CTAS 만드는 것과 같음 ● VIEW인지 TABLE인지 여부 확인 방법 ❍ VIEW를 삭제하는 방법 ❍ VIEW를 수정하는 방법 ❍ VIEW에 신규 데이터 INSERT 하기 ❍ VIEW에 신규 데이터 UPDATE 하기 ❍ VIE
20230329 SQL ■ SAVEPOINT ■ 다중테이블 INSERT 무조건 INSERT ALL INSERT ALL INTO VALUES INTO VALUES SELETE FROM 조건 INSERT ALL INSERT ALL WHEN THEN INTO VALUES WHEN THEN INTO VALUES SELETE FROM 조건 FIRST INSERT INSERT FIRST WHEN THEN INTO VALUES WHEN THEN INTO VALUES ELSE INTO VALUES SELETE FROM ■ 기존 테이블에 컬럼을 추가하는 방법 ■ MERGE (예시) MERGE INTO USING ON WHEN MATCHED THEN UPDATE SET DELETE WHERE WHEN NOT MATCHED THEN INSERT VALUES ■ 컬럼 추가 ALTER
20230328 SQL ❍ 유저 삭제 ❍ 유저 생성 ❍ 패스워드 만료 ❍ TABLE 테이블을 생성하려면 두 가지를 체크해야 함 ❍ 테이블 이름, 컬럼 이름, 유저 이름, 다른 객체이름, 제약조건 이름 ❍ 컬럼 타입 ❍ 테이블 생성 ❍ 테이블 삭제(영구 삭제, 복원 불가) ■ DML(Data Manipulation Language) INSERT UPDATE DELETE MERGE ■ TCL(Transaction Control Language) COMMIT : DML작업을 영구히 데이터베이스에 저장 ROLLBACK : DML작업을 영구히 데이터베이스에서 취소 SAVEPOINT : ROLLBACK 기능을 도와주는 표시자 ● Transaction : 논리적으로 DML을 하나로 묶어서 처리하는 작업 단위 ❍ INSERT ● INSERT 수행시 default 값을 입력하는 방법 ❍ UPDATE ❍ DELETE문 ■ 테이블 복제 CTAS ❍ INSERT
20230327 SQL 그룹화 연산자 rollup cube grouping sets 계층 검색 START WITH CONNECT BY PRIOR ORDER SIBLINGS BY DDL(Data Definition Language) 유저관리(권한) 유저생성 DCL(Data Control Language) 권한 부여 시스템 권한 부여 시스텐 권한 회수 객체 권한 부여 객체 권한 회수 유저 정보 수정 ===== union all(중복 포함; 중복성 없는 집합 합칠 때) > union exists > intersect not exists > minus UNION ALL, UNION, INTERSECT, MINUS SELECT e.employeeid, d.departmentname FROM employees e, departments d WHERE e.departmentid(+) = d.departmentid(+); -> 이거 안 됨!! 1) SELE
0230324 SQL SQL hr 데이터 언락 방법 dba > alter user hr account unlock identified by 1234; 금요일이다아! [문제75] 월별 연도별 급여 총액을 아래 결과처럼 출력해주세요. 월 2001년 2002년 2003년 2004년 01 02 ... 12 SELECT tochar(hiredate, 'mm') 월, sum(decode(tochar(hiredate, 'yyyy'),'2001',salary))"2001년", sum(decode(tochar(hiredate, 'yyyy'),'2002',salary))"2002년", sum(decode(tochar(hiredate, 'yyyy'),'2003',salary))"2003년", sum(decode(tochar(hiredate, 'yyyy'),'2004',salary))"2004년", sum(de
20230323 SQL 파이팅!! [문제57] Executive 부서이름에 소속된 모든 사원에 대한 employeeid, lastname, job_id 조인을 이용해서 출력해주세요. 1) SELECT * FROM departments WHERE department_name = 'Executive'; 2) SELECT * FROM employees WHERE department_id = 90; 1)+2) SELECT e.employeeid, e.lastname, e.jobid, d.departmentname FROM employees e JOIN departments d ON e.departmentid = d.departmentid WHERE d.department_name = 'Executive'; SELECT e.employeeid, e.lastname, e.jobid, d.departmentname FROM employees e JOIN depart
20230322 SQL ♥ 인공지능 수학 최고 중요!! ♡ 결과 데이터 행 수 검증하기!! ● 의미분석 오류(Semantic Error): 테이블에 없는 컬럼 이름을 select에 적은 경우 발생 [문제44] 2007년 입사한 사원들의 도시이름별 급여의 총액, 평균을 출력해주세요. 단, 부서 배치를 받지 않은 사원들의 정보도 출력해주세요. 1) 오라클 전용 SELECT l.city, sum(e.salary), round(avg(e.salary)) FROM employees e, departments d, locations l WHERE hiredate >= todate('2007/01/01', 'yyyy/mm/dd') AND hiredate < todate('2008/01/01', 'yyyy/mm/dd') AND e.departmentid = d.departmentid(+) AND d.locationid = l.locationid(+) GROUP BY l.ci
20230321 SQL ● 오라클 내 테이블 옵션 중 ‘model’ 들어가면 ERD (or table description) 화살표 : 키 P : primary key of the table 도메인 만드는 공부 필요! 실제 회사에서는 column 이름이 다를 수도 있음 => 값으로 체크해야 함 테이블 구조, PK(Primary Key), relation 먼저 다 살펴보아야 함 ★프로그래밍 중요!!★ ■ JOIN 종류 5가지 1) EQUI JOIN 2) INNER JOIN 3) OUTER JOIN 4) SELF JOIN 5) NON EQUI JOIN ■ ANSI 표준 1) NATURAL JOIN 2) JOIN USING 3) JOIN ON 4) (LEFT, RIGHT)OUTER JOIN 5) CROSS JOIN(CARTESIAN PRODUCT) [문제33] 사원들의 employeeid, countryname 출력해주세요. SELECT e.employ
20230320 SQL SELECT upper(last_name) FROM employees; ■ 그룹함수 여러 행당 하나의 결과를 반환하는 함수 SUM, AVG, MEDIAN, VARIANCE, STDDEV, MAX, MIN, COUNT 그룹함수에 입력하는 값이 숫자항만 입력해야 하는 함수: SUM, AVG, MEDIAN, VARIANCE, STDDEV 그룹함수에 입력하는 값이 모든 타입이 가능한 함수: MAX, MIN, COUNT 그룹함수는 NULL을 포함하지 않습니다. 대표값: 자료의 특징을 대표하는 값(평균 AVG, 중앙값 MEDIAN, 최빈값 COUNT) ◆ COUNT : 행의 수를 구하는 함수 SELECT count(*) - null을 포함함 FROM employees; SELECT count(employee_id) - null을 포함하지 않음 FROM employees; SELECT count(commission_pct) - n
20230317 SQL ■ 형 변환 함수 tochar(두 가지), tonumber, to_date ■ NULL 함수 nvl, nvl2, coalesce, nullif ■ 조건제어문 case 표현식, decode 함수 ■ 형 변환 함수 ● to_char (1) date(날짜형)을 char(문자형)으로 변환하는 함수 to char(날짜, ‘날짜모델요소’) SELECT * FROM nlssessionparameters; SELECT sysdate, to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss.sssss') day1, to_char(sysdate, + 100, 'yyyy-mm-dd hh24:mi:ss.sssss') day2, to_char(sysdate, - 100, 'yyyy-mm-dd hh24:mi:ss.sssss') day3, to_char(sysdate, + 10/24, 'yyyy-mm-dd hh24:mi:ss.sssss') day
20230316 SQL ◈ 함수 ◈ 문자함수 lower upper initcap concat length lengthb instr substr substrb trim ltrim rtrim [문제14] [문제15] replace lpad rpad [문제16] [문제17] ◈ 숫자함수 8 round trunc ceil floor mod power sprt [문제18] ◈ 날짜 함수 10 sysdate systimestamp current_date current_timestamp localtimestamp months_between add_months next_day last_day [문제19] [문제20] ■ 함수(fuction) ◆ 기능의 프로그램 ◆ 단일행 함수 : 행당 조작하는 함수, 입력값으로 한 행의 필드값이 들어가서 출력값으로 하나가 리턴함 문자함수, 숫자함수, 날짜함수, 형변환함수, 일반함수 ◆ 함수는 중첩할 수 있음 [memo] ☆ 데이터
20230315 SQL ■ SQL DEVELOPER - dba SELECT\*FROM dba_users; SELECT\*FROM user_tables; SELECT\*FROM tab; SELECT\*FROM user_segments; ■ TABLESPACE_NAME : TBS(논리적 관점) DB(논리적 관점) ----------- OS DISC(물리적 관점) | | TBS - -----------------------
20230314 1일차 Oracle SQL Developer ■ SQL(Structured Query Language) 데이터베이스에 있는 테이블의 데이터를 액세스 할 수 있는 언어 ◆ DQL(Data Query Language) SELECT ◆ DML(Data Manipulation Language) INSERT UPDATE DELETE MERGE ◆ TCL(Transaction Control Language) COMMIT ROLLBACK SAVEPOINT ◆ DDL(Data Definition Language) CREATE ALTER DROP RENAME TRUNCATE COMMENT ◆ DCL(Data Control Language) GRANT REVOKE ■ TABLE 행(ROW)과 열(COLUMN)로 구성되어 있는 데이터의 저장 구조 SELECT * FROM dba_users; alter user h