본문 바로가기

Database/Oracle8

DB [혼공SQL] 정리 + 쿼리문 정리 취업 준비 및 면접 질문에 대비하며 SQL의 중요성을 다시 한번 느꼈다. 혼자공부하는 SQL을 구매하여 빠르게 내용을 한번 정리하였다. 조작어 SELECT 문 순서, GROUP BY는 WHERE 대신 HAVING과 같이 사용 주로 집계 함수(SUM, MIN, AVG등)과 주로 사용 조작어 SELECT 문 순서, GROUP BY는 WHERE 대신 HAVING과 같이 사용 주로 집계 함수(SUM, MIN, AVG등)과 주로 사용 ' INSERT, UPDATE, DELETE 문 데이터형식 변수사용 PREPARE, EXECUTE LIMIT에는 변수사용이 불가능하여 PREPARE, EXECUTE 로 대체 형변환 - CAST, CONVERT 실수를 정수(SINGED)로 변환 조인 내부 조인 두 테이블에 모두 .. 2023. 4. 28.
Oracle [7] JOIN, VIEW 조인 (JOIN) 두개 이상의 테이블에서 찾고자하는 데이터를 검색하기 위해 사용한다. JOIN 하는법 1. 내가 원하는 데이터를 찾는다 2. 원하는 데이터가 있는 테이블을 찾는다. 3. 여러개의 테이블에 있다면 각각의 테이블의 공통컬럼을 찾는다. 1. 송강 교수가 강의하는 과목을 찾는다. SELECT A.PNO , A.PNAME , B.CNO , B.CNAME FROM PROFESSOR A , COURSE B WHERE A.PNO = B.PNO AND A.PNAME = '송강'; 2. 학점이 2학점린 과목과 이를 강의하는 교수를 검색한다. SELECT A.PNO , A.PNAME , B.CNO , B.CNAME , B.ST_NUM FROM PROFESSOR A , COURSE B WHERE A.PNO =.. 2022. 6. 27.
Oracle [6] 서브쿼리, 제약조건(PK, FK) 서브쿼리란? (하위 질의문) -WHERE, HAVING절 하의질의문 -FROM절 하위질의문 -> 서브쿼리문 작성순서 1. 서브쿼리문 먼저 작성 2. 메인 쿼리문 작성 //부서 중 평균연봉이 가장 높은 부서의 번호와 평균 연봉 조회 순서 : 1. 평균연봉이 가장높은 쿼리문 2. 메인 쿼리문 SELECT MAX(AVG(SAL)) FROM EMP GROUP BY DNO; SELECT DNO , AVG(SAL) FROM EMP GROUP BY DNO HAVING AVG(SAL) = ( SELECT MAX(AVG(SAL)) FROM EMP GROUP BY DNO ); ex) 물리학과 학생 중에 학년별로 성적이 가장 우수한 학생의 평점을 검색하세요. SELECT A.MAJOR , A.SYEAR , A.SNO , A.. 2022. 6. 23.
Oracle [5] 제약조건 제약조건이란? 데이터를 추가, 삭제, 수정이 일루어질 때 DB의 무결성을 유지한다. PRIMARY KEY 제약조건 테이블의 모든 데이터를 유일하게 식별해주는 식별자 PK로 설정된 컬럼의 중복 데이터는 허용되지 않음 -> UNIQUE + NOT NULL (즉, 주민등록번호, ID와 같이 다른 데이터와 겹치지 않아야 하는 데이터를 사용할 때 이용하면 좋다.) --컬럼 단위에서 지정 CREATE TABLE 테이블 명 ( 컬럼1 데이터타입 CONSTRAINT 제약조건 PRIMARY KEY, 컬럼2 ....., ); --테이블 단위에서 지정 CREATE TABLE 테이블 명 ( 컬럼1 데이터타입, 컬럼2 데이터타입, 컬럼3 .... CONSTRAINT 제약조건 PRIMARY KEY(PK로 지정할 컬럼명) ); .. 2022. 6. 22.
Oracle [4] DDL과 DML (INSERT, UPDATE, DELETE) DDL (Data Definition Language) 한번 선언하면 끝, 트랜잭션 대상x 롤백이 안된다. CREATE/ALTER/DROP -> 테이블 생성/ 수정/ 삭제 테이블 생성 CREATE TABLE [테이블 이름] { 컬럼명1 데이터형, 컬럼명2 데이터형, 컬럼명3 데이터형, } 데이터형(자료형) 문자형: CHAR(size), VARCHAR2(size) -> CHAR은 고정형, VARCHAR2는 가변형 숫자형: NUMBER 날짜형: DATE, TIMESTAMP(디테일) 테이블 복사 CREATE TABLE emp AS SELECT * FROM employees; (기존 데이터 내용 포함) 테이블 구조 수정 --컬럼추가 -> ALTER TABLE emp ADD(job VARCHAR2(20)); --.. 2022. 6. 22.
Oracle [3] 문자함수, 숫자함수, 날짜함수, 변환함수 문자함수 LOWER() -> 소문자로 변환 UPPER() -> 대문자로 변환 SUBSTR() -> 부분문자열 추출 LENGTH() -> 문자열 길이 LPAD(), RPAD() -> 데이터 빈 공간을 특정 문자로 채움 //소문자 SELECT A.DNO , LOWER(A.DNAME) , A.LOC FROM DEPT A WHERE LOWER(A.DNAME) = 'erp'; //대문자 SELECT ENAME , SUBSTR(ENAME, 2) --두번째 글자부터 출력 , SUBSTR(ENAME, -2) --뒤에서 두번째 글자부터 출력 , SUBSTR(ENAME, 1, 2) --첫번째 글자부터 2개 글자 출력 , SUBSTR(ENAME, -2, 2) --뒤에서 두번째 글자부터 2개 글자 출력 FROM EMP; //.. 2022. 6. 22.