오라클 쓰려면JAVA설치, JAVA_HOME설정 되어 있어야 함.자바로 만들어졌기 때문테이블 - no sql에서 봤던 컬렉션\-- SQL(Structured Query Language)의 종류 : \-- 데이터 정의(DDL), 데이터 조작(DML), 데이터 제어(DCL
기본키 설정을 해줘야 함.PRIMARY KEY뒤에 있는 건 타입임.물품에 있는게 들어와야 해서 타입이 똑같이 넣어야함주문자도 똑같이 들어와야해서 타입이 똑같아야함무결성 제약 조건에 위배돼서 만들어지지 않음
vuerd.json 맞아야 함.에디터 열기
제약조건 만들때 명칭을 달고 안달고제약조건을 만들 때 다음과 같이 만들면 이름이 자동으로 생성이 된다.다음과 같이 외래키의 이름을 추가해주려면 다음과 같이 붙여준다.
데이터 제어어(Data Control Language)사용자에게 권한 생성 혹은 권한 삭제 명령어.CREATE : 계정 생성DROP : 계정 삭제GRANT : 권한 생성REVOKE : 권한 삭제시스템 계정 => system /1111권한부여, 권한삭제, 제거암호 3번
--데이터 정의어: DDL --테이블 생성 및 구조, 제약조건 등을 설정 테이블 만들기 CONSTRAINT PKMEMBER3ID PRIMARY KEY(ID), 여기서 PKMEMBER3ID는 기본 키 이름임. 안붙이면 자동으로 만들어진다. 기본 키 이름이 붙
INSERT : 데이터 입력UPDATE : 데이터 수정DELETE : 데이터 삭제SELECT : 데이터 조회다시 조회DATE와 TIMESTAMP의 차이가 자세하게 나옴.TIMESTAMP가 자세하게 나옴.제약조건에 위배되었을 때DCL은 COMMIT, ROLLBACK을 마
일괄추가 같은 경우는 애매하게 하나만 들어가는 경우 안됨.다 실패하거나 다 성공하거나 해야함3건 중 2건을 성공하면 되돌려 놔야함아래는 쓰지 않는 게 좋다.
SELECT SEQ_BOARD3_NO.CURRVAL FROM DUAL;\-- 조회할 때 애매하면 DUAL을 붙임 시퀀스는 테이블이 아니라 DUAL을 쓴다.시퀀스는 커밋이 자동으로 이뤄짐.ROLLBACK을 해도 올라감인서트 실패해도 시퀀스는 올라감.
데이터를 추가했을 때 구조는 유지하고 데이터는 쓰고 있음뷰를 통해 만듦, 테이블을 통해 목록을 만드는 게 아님. 속도가 느려서 안됨.합쳐놓은 걸 뷰로 만듦 그리고 뷰를 보여줌.원본을 보여주는 게 아님추가, 삭제, 수정은 원본으로 함. 원본을 조작해서 만듦 만들어진걸로
inner join 을 A 와 B에 대해 수행하는 것은, A와 B의 교집합을 말합니다. 벤다이어그램으로 그렸을 때 교차되는 부분입니다.교집합을 컬럼으로 쓴다.컬럼명이 겹치면 오류가 발생함. \*을 써서 하는 것 보다 다 써서 하는 게 좋다.밑의 방식이 좋다.세 개를 한
INNER JOIN이 JOIN 조건에 부합하는 행만 JOIN이 발생하는 것이라면, OUTER JOIN은 조건에 부합하지 않는 행까지도 포함시켜 결합하는 것을 의미한다.LEFT OUTER JOIN은 왼쪽 테이블의 것은 조건에 부합하지 않더라도 모두 결합되어야 한다는 의미
1. SELECT 뒤에 오는 인자값들을 콤마(,)로 구분하지 않는것과 같은 SQL문법에 맞지 않는 경우에 주로 발생한다. 2. 컬럼명을 임의로 지어줄 때에는 띄어쓰기를 하면 안된다.
오류가 남.이를 해결하는 방법은\*앞에 공통된 임의의 문자를 넣어주자.
그룹으로 하면 그룹 컬럼의 개수만큼 만들어짐. 이렇게 하면 오류가 남.STDCLS와 NAME의 수가 차이나기 떄문에.
SQL 작성이 사용할 수 있는 유용한 기능이 제공되는 함수\*DBMS 제품마다 조금씩 차이가 있다.내장함수 ( TO_CHAR )
일반 프로그래밍 언어 요소를 다 갖고 있으며, 데이터베이스 업무를 처리하기 위한 최적화된 언어BLOCK 구조로 다수의 SQL 문을 한번에 처리하므로 수행 속도가 빠름3만개 정도 되는 인서트를 일일이 다 할 수 없다. INSERT 반복문 같은 걸 처리하기 위한 언어PL/
프로시저자주 사용하는 SQL을 프로시저로 만듬 -> 필요할 때 마다 호출 -> 반환되는 값은 없음조회된 데이터는 가져갈 수 있음.없으면 만들고 기존에 있으면 수정 (UPSERT임)
스프링은 AUTOCOMMIT이기 때문에 위의 방식임중간에 오류 났을 때 되돌릴 방법이 없음.그래서 INSERTALL처럼 한번에 할 수 있는 방법을 써야한다.회원정보수정 D라는 회원정보의 이름, 나이를변경일괄삭제 조건 2개의 경우 두개다 일치하는 행만 삭제된다.
WHERE에 있는 M은 아직 만들어지지 않은 것으로 보기 때문에 FROM으로 다시 감싼다.
재고수량합계가 25000이상인 판매자별 물품수량 조회 GROUP하고 나서 결과를 가지고 조건을 거는 것GROUP뒤에 통계낸 뒤에 계산하는 건 HAVINGHAVING은 뒤에 재고수량합으로 호출못하는거보니까 만들어지고 나서 작동하는 게 아니네HAVING을 사용할 테이블을
판매자별 재고수량이 가장 높은 것 1개씩 조회
을 해주고 출력하면 잘 된다.
데이터베이스 트리거(Database Trigger)는 테이블에 대한 이벤트에 반응해 자동으로 실행되는 작업을 의미한다. 트리거는 데이터 조작 언어(DML)의 데이터 상태의 관리를 자동화하는 데 사용된다. 트리거를 사용하여 데이터 작업 제한, 작업 기록, 변경 작업 감사
:new는 insert할 때 받아올 값임. 그래서 order1을 from 하지 않았지만 order1의 column을 쓸 수 잇는거임.
컬럼의 값이 Null 인 데이터를 조회 하기 위해서는fields = Null 이 아니라fields IS Null 을 사용해야 한다