사원정보 테이블 생성 : CREATE문
CREATE TABLE 테이블명 (
컬럼1 데이터타입 [NOT] NULL 제약조건,
컬럼2 데이터타입 [NOT] NULL 제약조건,
컬럼3 데이터타입 [NOT] NULL 제약조건,
PRIMARY KEY(기본키로 삼을 컬럼명)
);
- 테이블명 : 테이블 생성 시 사용할 이름
- 컬럼1 : 실제 데이터가 들어가는 컬럼의 이름
- 데이터타입 : 컬럼의 데이터 유형
• 문자형
➊ CHAR(n) : 고정길이 무조건 n자 까지 / 최대 2000자
❷ VARCHAR2(n) : 가변길이 n자 까지 / 최대 4000자
• 숫자형
: NUMBER[ p, s ] : p, s는 생략 가능
( p : 전체 유효 자리수, s : 소수점 이하 유효 자리수 )
• 날짜형
: BC 4712년 1월 1일 ~ 9999년 12월 시 분 초 까지도 입력하면 자동 변환
- [NOT] NULL
➊ NULL
• 데이터가 없음을 의미
• 자바 ) 참조하는 주소 없음
❷ NOT NULL
• 반드시 데이터가 들어가야 함
- [제약조건] : 필요하면 컬럼의 데이터를 제한할 수 있음
- PRIMARY KEY : 데이터를 유일하게 식별할 수 있는 키 값 컬럼을 설정
복합 컬럼를 사용할 경우, 사용
- 테이블은 데이터를 보관하는 저장소
테이블의 구조는 로우가 컬럼을 구성?
- 테이블 이름과 컬럼명은 최고 30자를 넘지 않도록 하는 것을 권장
- _(언더스코아) 문자 숫자 사용 가능
단, 첫글자는 반드시 문자를 권장
- 한글을 컬럼 등의 객체 이름으로 사용은 가능하나, 권장하지 않음
언제 에러가 날 지 알 수 없음
- 단어와 단어 사이는 ‘_’를 사용하는 것을 권장
- 기본적으로 대소문자 구분을 안하는 DBMS가 많음
예) employee, product, emp_id, employee_id
※ PRIMARY KEY : 컬럼의 속성으로 작성하기 보다는 아래에 따로 언급하는 것을 권장
• 테이블 생성된 것 확인 가능
생성된 테이블 확인해보기 : SELECT문
테이블에 데이터 추가 : INSERT문
INSERT INTO 테이블명 ( 컬럼 리스트 )
VALUES ( 값 리스트 ) ;
• 컬럼 리스트와 값 리스트는 서로 일치하는 데이터형이어야 함
• 값은 명시적으로 적용
• 각 컬럼과 값의 구분기호는 ,(comma)를 사용
• 각 컬럼과 값의 명시한 순서가 동일해야 함
※ Oracle에서는 다중 INSERT문 허용 안됨
• 생성된 테이블 데이터 확인 결과
- PRIMARY KEY의 경우, null 값 허용 불가 / 중복 허용 불가
- ORACLE : auto_increment 특성 없음
- 동일한 데이터를 다시 추가했을때 : 무결성 제약 조건에 위배됨
• PRIMARY KEY의 무결성 : 이미 emp_id가 5인 데이터가 추가되어있음
• emp_id를 6으로 변경 후 실행 → 데이터 삽입됨
- INSERT 구문의 확장
INSERT INTO 테이블명 VALUES (값 리스트) ;
→ 컬럼 리스트가 빠진 경우는 모든 컬럼을 다 사용하겠다는 의미
∴ 값 리스트는 모든 컬럼 리스트와 동일해야 함
• 컬림 리스트는 테이블 생성 시, 사용한 컬럼 순서를 따라야 함
값 리스트 및 데이터형도 이 순서와 일치해야 함
• 기본 형식
INSERT INTO 테이블명 ( 컬럼 리스트 ) VALUES (값 리스트) ;
→ 이 구문이 가독성, 유지/보수 측면에서 더 도움이 됨
∴ 기본 구문 사용하는 것 권장
- 오라클의 Update Query 기본 설정
• 트랜잭션이 기본으로 걸려있음
• UPDATE Query를 실행하시면 반드시 COMMIT 명령을 내려주기
• JDBC의 경우, auto_commit이 실행 중
데이터 삭제 : DELETE문
DELETE FROM 테이블명 WHERE 조건 ;
➊ DELETE FROM 에서 ‘FROM’의 경우, 생략 가능
단, 가독성을 위해 생략하지 않는 것을 권장
❷ WHERE 조건절의 경우, 절대 생략하지 않도록 주의
• 다음 예시는 모두 동일한 기능
DELETE FROM employee WHERE 1 = 1; // WHERE 조건절이 true이므로 모든 데이터 삭제
DELETE FROM employee;
TRUNCATE TABLE employee;
• emp_id = 6인 자료 삭제해보기
• 테이블에서 확인 가능
지하철 승객 인원 통계 테이블 생성
- 테이블 생성 시, 요구사항
• board_time(탑승시간) : 탑승한 시간대를 적는것으로 제한
9시 - 10시 사이 : 9
10시 - 11시 사이 : 10
- 테이블에 추가할 데이터
- 생성된 테이블
'백엔드 > Oracle' 카테고리의 다른 글
Oracle : SQL - 내장 함수 (0) | 2023.07.07 |
---|---|
Oracle : SQL ( SELECT -2 ) (0) | 2023.07.06 |
Oracle : SQL ( SELECT - 1 ) (0) | 2023.07.05 |
44 - Oracle : SQL 기본 (0) | 2023.06.29 |
Oracle 사용자 계정 및 샘플 테이블 생성 (0) | 2023.06.27 |