전체 글

데이터 엔지니어링/데이터베이스 및 운영체제

SQL(ORACLE) 시스템 및 DML 권한 명령어 모음

시스템 관한 명령어 CREATE USER : 데이터 베이스 유저 생성 권한 SELECT ANY TABLE : 모든 유저의 테이블 조회 권한 CREATE SESSION : 데이터베이스 접속 권한 CREATE TABLE : 테이블 생성 권한 CREATE VIEW : view 생성 권한 CREATE PROCEDURE USER : procedure, function, package 생성 권한 CREATE SEQUENCE : sequence 생성 권한 SYSDBA : 데이터베이스 관리 최고 권한 SYSOPER : 데이터베이스 관리 권한 DML 권한주기 GRANT DELETE, INSERT, SELECT, UPDATE ON 테이블명 TO 유저ID; REVOKE DELETE, INSERT, SELECT, UPDATE..

데이터 엔지니어링/데이터베이스 및 운영체제

SQL - 뷰

뷰의 생성 뷰(VIEW)는 하나 이상의 테이블을 합하여 만든 가상의 테이블 장점 편리성 및 재사용성 : 자주 사용되는 복잡한 질의를 뷰로 미리 정의해 놓을 수 있음. → 복잡한 질의를 간단히 작성 보안성 : 각 사용자별로 필요한 데이터만 선별하여 보여줄 수 있음. 중요한 질의의 경우 질의 내용을 암호화할 수 있음. 개인정보(주민번호)나 급여, 건강 같은 민감한 정보를 제외한 테이블을 만들어 사용 독립성 제공 : 미리 정의된 뷰를 일반 테이블처럼 사용할 수 있기 때문에 편리함. 또 사용자가 필요한 정보만 요구에 맞게 가공하여 뷰로 만들어 쓸 수 있음. 원본테이블이 구조가 변하여도 응용에 영향을 주지 않도록하는 논리적 독립성 제공 카티션 프로덕트 연산 시간이 오래 걸리는 것에 대해서, 미리 뷰로 만들어 놓고..

카테고리 없음

SQL 데이터조작어(DML) - 삽입, 수정, 삭제

데이터 조작어(DML) SELECT문 INSERT문 : 테이블에 새로운 튜플을 삽입하는 명령어 INSERT INTO 테이블이름[(속성리스트)] VALUES 값리스트; BULK INSERT INSERT INTO Book(bookid, bookname, publisher, price) VALUES (11, '스포츠 의학', '한솔의학서적', 90000);-- BULK INSERT(대량삽입) -- 수입 도서 목록을 BOOK 테이블에 모두 삽입하시오.(IMPORTED_BOOK 테이블은 스크립트 BOOK 테이블과 같이 이미 만들어져있음) INSERT INTO BOOK(BOOKID, BOOKNAME, PRICE, PUBLISHER) SELECT BOOKID, BOOKNAME, PRICE..

데이터 엔지니어링/데이터베이스 및 운영체제

SQL SUBQUERY 사용규칙, WHERE 부속 질의

서브쿼리 서브쿼리는 메인쿼리의 칼럼을 모두 사용할 수 있음 메인쿼리는 서브쿼리의 칼럼을 사용할 수 없음 서브쿼리 칼럼을 표시해야한다면 스칼라 서브쿼리(SELECT(SELECT ~)), 함수 등을 사용 서브쿼리는 서브쿼리 레벨과는 상관없이 항상 메인쿼리 레벨로 결과 집합이 생성 서브쿼리는 괄호로 감싸서 사용 서브쿼리는 단일행 또는 복수행 비교연산자와 함께 사용가능 서브쿼리에서는 ORDER BY 절을 사용하지 못하고, 메인쿼리 마지막 문장에 사용 가능 서브쿼리가 SQL문에서 사용가능한 곳 SELECT, FROM, WHERE, HAVING, ORDER BY, INSERT 문의 VALUES, UPDATE 문의 SET 서브쿼리의 종류는 동작하는 방식이나 반환 되는 데이터 형태에 따라 다음과 같이 두개로 분류 비연..

데이터 엔지니어링/데이터베이스 및 운영체제

SQL 집합 연산, EXISTS

집합 연산 합집합 UNION 차집합 MINUS : 오라클은 MINUS지만 SQL 표준에서는 EXCEPT를 사용한다. 교집합 INTERSECT -- 차집합 예시 -- 도서를 주문하지 않은 고객의 이름을 보이시오. SELECT NAME FROM CUSTOMER MINUS SELECT NAME FROM CUSTOMER WHERE CUSTID IN (SELECT CUSTID FROM ORDERS);EXISTS 원래 단어에서 의미하는 것과 같이 조건에 맞는 튜플이 존재하면 결과에 포함시킴. 즉 부속질의문의 어떤 행이 조건에 만족하면 참임. 반면 NOT EXIST는 부속질의문의 모든 행이 조건에 만족하지 않을 때만 참임 무조건 상관 질의로 사용함 그냥 두 테이블을 독립적으로 두고, 있는지 없는지 비교하면서 차이두기..

데이터 엔지니어링/데이터베이스 및 운영체제

SQL 서브쿼리(부속질의)

부속질의(SUBQUERY)란? 하나의 SQL 문 안에 다른 SQL 문이 중첩된 쿼리를 말함. 다른 테이블에서 가져온 데이터로 현재 테이블에 있는 정보를 찾거나 가공할 때 사용함. 보통 데이터가 대량일 때 데이터를 모두 합쳐서 연산하는 조인보다 필요한 데이터만 찾아서 공급해주는 부속질의가 성능이 더 좋음. 주질의(main query, 외부질의)와 부속질의(sub query, 내부질의)로 구성됨. 부속질의의 위치 SELECT 절 : SELECT 절에서 사용되며 단일 값을 반환하기 때문에 스칼라 부속질의라고함 스칼라나 벡터를 나오게 끔 해서 쓰면 됨(값 하나, 1차원 배열) FROM 절 : FROM 절에서 결과를 뷰(VIEW) 형태로 반환하기 때문에 인라인 뷰라고 함 2차원 값, 즉 요약된 테이블 형태로 나오..

데이터 엔지니어링/데이터베이스 및 운영체제

SQL_기초(JOIN)

카티전 프로덕트(CATESIAN PRODUCT) 두 릴레이션을 연결시켜 하나로 합칠 때 사용함. 결과 릴레이션은 첫번째 릴레이션의 오른쪽에 두번째 릴레이션의 모든 투플을 순서대로 배열하여 반환한다. 결과 릴레이션 차수는 두 릴레이션의 차수의 합이며, 두 릴레이션의 카디날리티 곱임 두 테이블을 단순히 합치는 것을 카티전 프로덕트라고 한다. 이것을 JOIN이라고 한다. 이 때 WHERE로 조건을 명시하는데, 이를 JOIN 조건이라고 한다. SELECT * FROM CUSTOMER, ORDERS WHERE CUSTOMER.CUSTID = ORDERS.CUSTID; ORDER BY CUSTOMER.CUSTID 조인 방법

데이터 엔지니어링/데이터베이스 및 운영체제

SQL 기초_SELECT문

WHERE 조건 와일드 문자 LIKE와 활용한다. 예시 SELECT BOOKNAME, PUBLISHER FROM BOOK WHERE BOOKNAME LIKE '%축구%';집계함수 SELECT 문에서만 사용 가능하다. 출력 변수명을 설정하고 싶으면 AS를 쓰는데 이 때 따옴표를 쓰지 않는다.(변수처럼 사용한다) SELECT SUM(SALEPRICE) AS 총매출 FROM ORDERS; GROUPBY GROUPBY는 집계함수와 사용한다. GROUPBY시 반드시 SELECT 문의 첫번째에 GROUPBY한 속성을 넣는다. 고객별로 주문한 도서의 총 수량과 총 판매액을 구하시오 SELECT CUSTID, COUNT(*) AS 도서수량, SUM(SALEPRICE) AS 총액 FROM ORDERS GR..

데이터 엔지니어링/데이터베이스 및 운영체제

SQL 기초

DB 계정 관리 일반적으로 DB 계정 생성 시, 읽기만 가능한 계정으로 팀원들에게 뿌린다. SELECT만 가능하게 해서, 데이터의 무결성(안정성)을 확보할 수 있다. 보통 사내 1명 정도 있는데, 주기적으로 DB 계정 비밀번호를 바꾸는 등 데이터베이스를 관리한다. DB 용어 정리 릴레이션의 특징 속성은 단일 값을 가진다 속성은 서로 다른 이름을 가진다 한 속성의 값은 모두 같은 도메인 값을 가진다(값을 갖는 범위가 같아야한다) 속성의 순서는 상관없다 릴레이션 내의 중복된 투플은 허용하지 않는다 투플의 순서는 상관없다 키 특정 투플을 식별할 때 사용하는 속성 혹은 속성의 집합임 릴레이션은 중복된 투플을 허용하지 않기 때문에 각각의 투플에 포함된 속성들 중 어느 하나(혹은 하나 이상)는 값이 달라야함. 기본..

데이터 엔지니어링/데이터베이스 및 운영체제

데이터베이스(ORACLE) 기초_2

데이터베이스 기본적으로 공유된 데이터베이스 시스템이다. 1대N의 관계를 가진, 웹 기반 서버-클라이언트 모델이다. 오라클 서버는 항상 서버에 접속 되어있어야하므로, 오라클 서버(DB)가 잘 작동하고 있는지 확인하는 방법 윈도우 기준 -> 시작메뉴 -> 서비스 접속 -> OracleServiceXE 상태 확인 DB 계정 생성 sys 계정으로 접근 및 생성 create user madang identified by madang; -- madang user 생성, 비밀번호 madang grant connect, resource to madang; -- 권한 주기 연결 접속,resource madang 계정 접속 madang 테이블 작성 DROP table orders; -- 만약에 테이블이 없을 경우, 에러발..

데이터 엔지니어링/데이터베이스 및 운영체제

데이터베이스(ORACLE) 기초_1

데이터 분석과정 데이터 수집 -> 데이터 전처리 -> 모델링 -> 평가 및 배포 데이터 수집 외부 데이터(정형/반정형/비정형) 내부 데이터(대부분이 정형데이터) DBMS RDBMS(관계형 데이터베이스) : 정형화된 구조로 데이터 저장 / EX : ORACLE, MYSSQL, MSSQL RDBMS 네트워크 : 두 대상 간의 데이터 교환 네트워크를 통해 데이터가 교환되려면 쌍방 간의 규약(프로토콜)을 지켜야한다. ORACLE은 규악(프로토콜)을 TCP/IP로 사용하도록 지정하였다. DB CLIENT 역시 오라클 서버에 원하는 데이터처리를 하려면 TCP/IP 규악에 맞춰 데이터 전송을 해야한다. TCP/IP 규악은 정확한 전송을 위해 데이터 전송이 있기 전에 CONNECTION을 통해 통신 가능여부를 확인후 ..

웹 애플리케이션/자바

1_10 인터페이스, 디자인 패턴

인터페이스 클래스 일반적인 인터페이스 = 두 대상간의 commutication(통신)을 위한 중간 매개체 Java에서의 인터페이스 자바는 다중 상속을 원칙적으로 지원하지 않는다. 하지만 인터페이스로 정의한 클래스로부터는 다중 상속을 받을 수 있다. 다중 상속 다중 상속의 장점 코드의 재사용 - Java는 이점을 포기함(상속받는 부모 클래스간의 변수명이 같은 경우 애매모호해진다.) 효율적 제어 - Java는 이걸 노림 자바는 원칙적으로 다중 상속(extends)를 허락하지 않는다. 자바에서 인터페이스 클래스로 선언한 클래스로부터는 다중 상속이 가능한다. 변수 선언 안된다. - 상수 선언만 가능하다 public static final 추상 메소드만 가능(반드시 재정의가 필요함) public abstract ..

우상욱
데이터엔지니어스터디