개발 공부/SQL 7

COMMIT / ROLLBACK

스냅샷 (자료구조) : 실제 db자료를 자료구조화 시킨 것. 수정,삭제를 해도 db자료에서 되는 것은 아님. 안전하게 종료되지 못 한 상황이 되는 경우 commit보장되지 않음. commit : 각 행자료와 비교내용이 있으면 변경된 내용이 데이터베이스에 처리해서 저장하는 기능 transaction : 일 처리 작업 단위. 트랜잭션이 없는 경우 insert를 처음하게 될때 생기고 commit하게 되면 완료 됨 => db반영 - 원자성 - 일관성 - 격리성 - 지속성 ex) 계좌 이체작업 ( 101계좌에서 10출금 -> 102계좌로 10입금 ) CREATE TABLE account (no varchar2(3) primary key, balance number(6)); INSERT INTO account(no..

개발 공부/SQL 2023.06.20

제약 조건 / ERD 사용

1. 고객테이블 생성 테이블 이름 : CUSTOMER 컬럼 이름 자료형 제약조건 id varchar2(5) PRIMARY KEY pwd varchar2(10) NOT NULL name varchar2(20) 컬럼레벨로 제약조건 설정 CREATE TABLE customer( id varchar2(2) constraint customer_pk PRIMARY KEY, pwd varchar(10) NOT NULL, name varchar2(20) ); INSERT INTO customer (id, pwd, name) VALUES ('id1', 'p1', 'n1'); INSERT INTO customer (id, pwd, name) VALUES ('id1', 'aaa', 'aaa'); -- 오류( id중복 등록시..

개발 공부/SQL 2023.06.20

SUBQUERY / DDL/ DML

위치에 따라 Subquery : WHERE절 subquery의 결과를 조건에 활용하는 방식으로 사용. WHERE 필드명 IN (SUBQUERY) InlineVies : FROM절 ScalarQuery : SELECT 실행결과 행수에 따라 단일행 서브쿼리 : 메인쿼리와 일반비교연산 ( =, >, =, WHERE (department_id, salary) IN (SELECT department_id, MAX(salary) 쌍을 맞춰줘야함. SELECT department_id, employee_id, first_name, salary FROM employees WHERE (NVL(department_id, 0), salary) IN (SELECT NVL(department_id, 0), MAX(salary)..

개발 공부/SQL 2023.06.16

GROUP BY / HAVING/ JOIN/ UNION

GROUP BY 처리 순서 중요 FROM -> WHERE-> GROUP BY-> HAVING GROUP BY절에서 사용한 컬럼만 SELECT절에서 여러행 함수와 함께 사용 가능 일반 조건 : WHERE 그룹 조건 : HAVING 급여가 5000이상인 사원의 부서별 사번, 급여, 부서번호를 출력하시오 SELECT employee_id, salary, department_id FROM employees WHERE salary >= 5000; 급여가 5000이상인 사원의 부서별 부서번호, 총급여를 출력하시오 SELECT department_id, SUM( salary ) FROM employees WHERE salary >= 5000 GROUP BY department_id; 급여가 5000이상인 사원의 부서..

개발 공부/SQL 2023.06.15

SQL 함수

내장 함수 단일행 함수 : 행 별로 처리되는 함수 숫자형 함수 : MOD ( ) 나머지 값을 구해주는 함수, NULL 함수 : NVL( ) 문자형 함수 : LENGTH( ) 날짜형 함수 : MONTHS_BETWEEN( ), SYSDATE 형변환 함수 : TO_CHAR( ) 숫자를 문자로 ※ 숫자 지정 형식 지정 형식 설명 예 결과 9 9로 출력 자릿수 지정 TO_CHAR(salary, '99999999') 24000 0 자릿수만큼 0을 출력 TO_CHAR(salary, '09999999') 00024000 $ 달러 기호 TO_CHAR(salary, '$9999999') $24,000 L 지역 화폐 기호(원) TO_CHAR(salary, 'L9999999') \24,000 . 명시한 위치에 소수점 TO_C..

개발 공부/SQL 2023.06.14

SQL Developer : SELECT

SQL (Structured Query Languge) 종류 SELECT : 조회 DML (데이터조작어) : 추가(INSERT), 수정(UPDATE), 삭제(DELETE) DDL (데이터정의어) : 객체생성(CREATE)/ 객체구조변경(ALTER)/ 객체제거(DROP) DTL (데이터트랜잭션) : 트랜잭션 완료(COMMIT)/ 복구(ROLLBACK) DCL (데이터제어) : 계정생성(CREATE USER), 변경(ALTER USER), 제거(DROP USER)/ 권한부여 (GRANT),취소(REVOKE) 쿼리(Query)란 무엇인가? 쿼리(Query)란 쉽게 이야기해서 데이터베이스에 정보를 요청하는 것 쿼리(Query)를 바로 번역을 하면 '질의'라고 해석이 됨.즉, 질의를 보내고 결과를 얻는 것입니다...

개발 공부/SQL 2023.06.13

데이터 베이스 기본 개념

데이터베이스란? 데이터들을 구조적으로 통합해둔 곳. 여러 사용자가 공유하고 접근할 수 있도록 구조화된 데이터의 집합 DBMS로 관리되는 데이터 묶음 DBMS (DataBase Management System)란? 응용 프로그램이 데이터베이스를 사용 할 수 있게끔 관리해주는 소프트웨어 시스템 ( DB프로그램이라고 생각하면 됨) - 파일시스템이랑 비슷하지만 파일시스템은 데이터 중복, 일관성 오류 등이 있음 종류 : MySQL, Oracle, DB2 등 SQL : 데이터에 접근할 수 있는 표준 언어 계정이 있고, 대표 계정이 System. 네트워크를 통해 socket을 만들어야 함. 라이브러리 (JDBC Driver) : 자바 개발자들이 쉽게 오라클에 접속 할 수 있도록 도와줌. SQLPLUS: 소켓 생성 후..

개발 공부/SQL 2023.06.12