관리 메뉴

개발 노트

8/2 DCL, DDL, DML, Oracle SQL Developer, SELECT, 합성연산자 ||, 데이터타입 CHAR, VARCHAR2, WHERE 본문

프로젝트 기반 JAVA 응용 SW개발 : 22.07.19~23.01.20/Oracle SQL

8/2 DCL, DDL, DML, Oracle SQL Developer, SELECT, 합성연산자 ||, 데이터타입 CHAR, VARCHAR2, WHERE

hayoung.dev 2022. 8. 2. 17:06

(실습용 데이터베이스 생성 sql 파일)

Create Table-EMP_DEPT_실습용 자료 생성.sql
0.01MB
Create Table-EMP_DEPT_실습용 자료 생성_Mysql용.sql
0.01MB
Create Table-Package 실습용 자료 생성.sql
0.01MB

 

 

1. Oracle 설치를 한 후 developer를 설치해야 함. 

비밀번호 : oracle

 

[DCL, DDL, DML (꼭 외우기, 중요)]

DDL

- Data Definition Language (데이터 정의어)

- 데이터 베이스의 스키마를 정의하고, 명시된 문장이 입력되어 지면 DBMS가 스키마에대한 명세를 시스템 카탈로그에 저장

- Create table / Alter table

DML

- Data Manipulation Language (데이터 조작어)

- 데이터 베이스의 원하는 데이터를 수정하고, 삽입하고, 삭제하는 언어

- Select / Insert / Delete / Update

DCL

- Data Control Language (데이터 제어어)

- 데이타베이스의규정이나기법을 정의하고 제어하는언어

- 권한 부여/취소, 보안, 병행수행 제어

- Grant / Revoke

 

[cmd창에서 oracle 접속 방법]

>sqlplus system/oracle 	// 로그인아이디/비밀번호

 

2. Oracle SQL Developer 실행 > 왼쪽 위 초록색 플러스 누름 > name,  사용자 이름, 비밀번호 입력 후 테스트 > 상태 : 성공 이 떠야 함. > 접속 클릭

 

3. 직접 scott 계정 만들기

-- 계정명 : scott, 비밀번호 : tiger
CREATE user scott IDENTIFIED by tiger;
-- DBA 권한을 scott에게 부여
GRANT DBA to scott;

출력 결과

 

*우클릭 > 행 번호 토글 하면 행 번호 생김.

 

4. admin 계정은 system(비밀번호 oracle), 일반 계정은  scott(비밀번호 tiger)

 

5. 세로줄이 컬럼명

가로 한 줄이 row

이 안의 각각의 데이터들을

한 번에 모아둔 것이 스키마

nullabe : null값 가능, 불가능

 

6. comments : 논리적인 구조를 설정할 때 추가

우클릭 > 편집 > 설명란에 한글로 작성

 

 

 

하단의 코드와 같은 역할이다.

   COMMENT ON COLUMN "SCOTT"."DEPT"."DEPTNO" IS '부서번호';
   COMMENT ON COLUMN "SCOTT"."DEPT"."DNAME" IS '부서명';
   COMMENT ON COLUMN "SCOTT"."DEPT"."LOC" IS '부서위치';

 

 

7. DESC 테이블명 : 테이블의 스키마 내용을 보여줌

DESC dept;

출력 결과

*테이블의 sql 여기에 있음

 

8. DEPT 전부 선택

SELECT * FROM dept;

출력 결과

 

9.원하는 컬럼만 선택해서 나옴

SELECT deptno, loc FROM dept;

출력 결과

 

10.  Department 테이블로부터 TBL(Table약자) deptno, dname만 조회

SELECT deptno, dname FROM department;

출력 결과

 

[SQL 명령문의 표준 형식]

- sql은 대소문자를 구별하지 않는다. 하지만 키워드는 주로 대문자로 사용하고 테이블명과 칼럼 이름은 소문자로 작성하는 것을 권장한다.

 

- 개념모델링에서는 애트리뷰트라고 부르는 것을 테이블을 만들면(물리모델링으로 만들면) 컬럼이라고 바꿔부름.

 

11. Model에서 왼쪽의 p가 primary key(이 테이블의 열쇠)를 뜻함.

테이블 우클릭 > 편집 > 열쇠모양이 있으면 primary key이다.

primary key는 중복할 수 없는 유일한 값이어야 함.

 

12. as 를 붙이거나 한 칸 띄고 별명을 만들 수 있다

SELECT deptno AS dno, dname "부서번호" FROM Department;

출력 결과

 

13. Student 테이블 > 우클릭 > 편집 > 설명추가

 

14. 합성 연산자 ||
학생 테이블에서 학번과 이름 칼럼을 연결하여 “Student”라는 별명으로 하나의 칼럼처럼 연결하여 출력

SELECT studno, name FROM Student;
SELECT studno, name, studno || name "studentContent" FROM student;

첫째 줄 출력 결과

둘째 줄 출력 결과

 

 

[데이터 타입]

- 데이터베이스에 저장되는 데이터는 문자, 숫자, 날짜, 이미지 등과 같은 다양한 형식으로 표현

- 실무에서 칼럼에 대한 데이터 타입이나 길이의 결정은 데이타베이스 설계 단계에서 신중하게 고려해야하는 중요한 사항

- 데이터베이스 설계 단계에서 잘못 선정된 데이터 타입은 응용 프로그램 개발을 어렵게 하거나 성능을 저하시키는 요인이 됨

 

[오라클에서 지원하는 데이터 타입의 종류]

이 중 실무에서는 varchar, number, date를 많이 쓴다. 

 

[CHARVARCHAR2의 차이점] 면접에 자주 나옴. 중요. 하단 전부 외우기.

 

CHAR(size) :

size 크기의 고정 길이의 문자열을 저장하는 문자 데이터 타입. 지정된 길이보다 짧은 데이터가 입력되는 경우, 나머지 공간은 공백으로 채워짐. 공백은 메모리낭비가 됨. 그래서 거의 쓰지 않음.

최대크기 : 2,000 바이트

최소크기 : 1 바이트

 

VARCHAR2(size) :

size 크기의 가변 길이의 문자열을 저장하는 문자 데이터 타입. 지정된 길이보다 짧은 문자열이 입력되면 뒷부분은 NULL로 처리되어 저장공간을 낭비하지 않음.

최대크기 : 4,000 바이트

최소크기 : 1 바이트

 

15. 과제1
학생의 몸무게를 pound로 환산하고 칼럼 이름을 ‘weight_pound’ 라는 별명으로 출력. 
1kg은 2.2pound

SELECT name, weight, weight*2.2 as "WEIGHT_POUND" FROM student;

출력 결과

 

16. 길이가 동일하고 타입이 다른 칼럼을 가진 테이블 생성

CREATE TABLE ex_type (c char(10), v varchar2(10))
INSERT INTO ex_type
Values('sql','sql');

출력 결과 : 테이블로 들어가서 확인해보면 첫번째는 빈칸이 있고 두번째는 빈칸이 없다.

 

17. 커밋을 해야 저장됨

commit;

 

18. WHERE은 조건문 달 때 사용

-- 1. c와 sql이 같은 것 출력
SELECT * FROM ex_type WHERE c='sql';
-- 2. v와 sql이 같은 것 출력
SELECT * FROM ex_type WHERE v='sql';
-- 3. v와 c가 같은 것 출력
SELECT * FROM ex_type WHERE c=v;

출력 결과 1, 2

출력결과 3 : 해당하는 값이 없다. (다음시간에 배울 예정

반응형