SQL(Structed Query Language) : 구조화된 질의 언어
트랜잭션 (Transacrion) : 환영대기
게획 => 분석/설계 => 개발 => 디버깅 => 배포 => 유지보수
분석/설계 : 요구사항 개체/관계/속성(ERD, 스키마) (단어, 용어, 자료)사전 ERD
시퀀스 클래스다이어그램 뮤스케이스
개발 : 분석/설계 에서 나온 산출불로
뷰(JSP) 컨트롤러(JAVA) 서비스 DB(ORACLE)
CRUD(게시판) : 오류수정 게시판-페이징-SPRING
<SQL문의 입력 및 실행에 관한 일반적인 사항>
1. 모든SQL문은 세미콜론(;)으로 끝난다.
2. SQL의 명령문은 대소문자를 구분하지 않는다. 데이터는 대소문자를 구분함
3. 하나의 SQL문은 명료하도록 한 줄 또는 여러 줄로 나누어 입력할 수 있음
ex)
SELECT * FROM ALL_USER;
SELECT *
FROM ALL_USER
;
책 P144
테이블 생성(creat)
DDL(Data Definition Language)
테이블명 정의 규칙
1. 하나의 계정 내에서 테이블명은 유일해야 함
2. 영문자로 시작해야 함
3. 영문자, 숫자, 특수문자 중 #_$ 를 사용할 수 있음
4. 30BYTES를 넘을 수 없음
5. 예약어 사용 못함(NOT, NULL, INSERT...)
테이블명(개체), 컬럼명(속성)
영문 대소문자 바꾸기 : ALT + '
실행 : CTRL + ENTER, 플레이버튼 클릭
ex)
CREATE TABLE LPROD
(
LPROD_ID NUMBER(5) NOT NULL, --순번
LPROD_GU CHAR(4) NOT NULL, --상품분류코드
LPROD_NM VARCHAR2(40) NOT NULL, --상품분류명
CONSTRAINT PK_LPROD PRIMARY KEY (LPROD_GU)
);
--테이블에 설명글 달기
COMMENT ON TABLE LPROD IS '상품분류';
--컬럼에 설명글 달기
COMMENT ON TABLE LPROD.LPROD_ID IS '순번';
COMMENT ON TABLE LPROD.LPROD_GU IS '상품분류코드';
COMMENT ON TABLE LPROD.LPROD_NM IS '상품분류명';
ALTER TABLE : 테이블의 구조만 변경, 데이터 내용은 변경안됌
ALTER TABLE <테이블 명>
ADD (새로운컬럼명 TYPE [DEFAULT VALUE], ...) => 컬럼 추가
MODIFY (필드명 TYPE [NOT NULL][DEFAULT VALUE], ...)
=> 컬럼 자료형/크기 변경, NULL을 NOT NULL로, NOT NULL을 NULL로 제약조건 변경
=> 컬럼명을 변경X => RENAME을 써야 함
DROP COLUMN 필드명 => 기존 컬럼, 제약조건 제거

--ADD(추가) CONSTRAINT(제약사항) CHECK_PHONE(이름)
--CHECK : BUYER_NELEXT 컬럼에 데이터가 입력될 때 범위 설정
--REGEXP_LIKE : 정규식
--[0-9] : 0~9사이의 정수
--[0-9][0-9] : 두 자리의 정수
ALTER TABLE BUYER
ADD CONSTRAINT CHECK_PHONE
CHECK(REGEXP_LIKE(BUYER_TELEXT,'[0-9][0-9]'));


ERWIN: file -> new -> logical/physical 로 새로만들고
physical에서 tools -> reverse engineering 클릭해서 logical/physical 상태로 바꾸고
->

상태를 만들고 next
