오늘이라도

2. 테이블 작성, SQL 문법 : DDL, DML, LIKE 연산, 내장함수 등 본문

취업성공패키지 SW 개발자 교육/Oracle RDBMS

2. 테이블 작성, SQL 문법 : DDL, DML, LIKE 연산, 내장함수 등

upcake_ 2020. 4. 9. 20:55
반응형

https://github.com/upcake/Class_Examples

교육 중에 작성한 예제들은 깃허브에 올려두고 있습니다. 

gif 파일은 클릭해서 보는 것이 정확합니다.


0. SQL(Structured Query Language; 구조적 질의어) 문법

 ① DDL(Data Definition Language; 정의어)

  - create(생성), drop(제거), alter(구조 변경), truncate(데이터 영구 삭제)

 ② DML(Data Manipulation Language; 조작어)

  - insert(삽입), delete(삭제), update(수정), select(검색)

 ③ DCL(Data Control Language, 제어어)

  - grant(권한 부여), revoke(권한 해제), commit(완료), rollback(복원)

 

 

 

1. DDL : 데이터 정의어

 ① CREATE : 테이블을 생성

CREATE TABLE 테이블이름(		// 테이블 생성
	컬럼이름1 데이터타입,	// 항목은 콤마로 구분
    컬럼이름2 데이터타입,		
    컬럼이름3 데이터타입		// 마지막 항목은 콤마 생략
);				// 세미콜론으로 마무리

  - CHAR(숫자) : 고정길이 문자열

  - VARCHAR2(숫자) : 가변 길이 문자열

  - NUMBER(정수부, 소수부) : 수치 데이터, 각 숫자는 자릿수를 결정

  - DATE : 날짜/시간 형식

▲테이블 생성

 

 

 ② DROP : 테이블 제거(영구 삭제)

DROP TABLE 테이블이름;	// 테이블 영구 삭제

▲테이블 제거

 

 

ALTER : 테이블의 구조를 변경

# 항목 추가
	ALTER TABLE 테이블명 ADD 추가할컬럼명 데이터타입;
# 항목 변경(데이터타입 수정)
	ALTER TABLE 테이블명 MODIFY (수정할컬럼명 데이터타입);
# 항목 변경(컬럼명 수정)
	ALTER TABLE 테이블명 RENAME COLUMN 기존컬럼명 TO 변경컬럼명;
# 항목 삭제
	ALTER TABLE 테이블명 DROP COLUMN 삭제할컬럼명;

▲항목 추가

 

▲항목 변경(데이터 타입 수정)

 

▲항목 변경(컬럼명 수정)

 

▲항목 삭제

 

 

TRUNCATE : 테이블의 내용만 삭제

TRUNCATE TABLE 테이블이름;	//테이블 내용(레코드) 삭제

[고객 테이블] ▶ 원본

이름 주소 연락처
홍길동 광주 1111
김길동 서울 2222
박문수 부산 3333

 

[고객 테이블] ▶ DELETE

데이터는 지워지지만, 테이블 용량은 줄어들지 않음

이름 주소 연락처
     
     
     

 

[고객 테이블] ▶TRUNCATE

테이블 용량이 줄어들고, 데이터도 삭제

이름 주소 연락처

 

 

 

 

[고객 테이블] ▶ DROP

테이블에 대한 흔적 자체가 영구 삭제

영 구 삭 제

 

 

2. DML : 데이터 조작어

 ① INSERT : 새로운 레코드를 삽입

INSERT INTO 테이블명 [(삽입할 필드명)]
	VALUES (필드에 삽입될 값);

  - 대괄호 []는 생략 가능한 부분을 의미한다.

▲새로운 레코드 삽입

 

 

 ② UPDATE : 칼럼 값을 수정(갱신)

UPDATE 테이블명
	SET 속성 = 값, 속성 = 값, 속성 = 값
		WHERE 조건식;

▲컬럼 값을 수정(갱신)

 

 

 ③ DELETE : 레코드를 삭제

# DELETE FROM 테이블명 WHERE 조건식;		//조건에 해당하는 레코드만 삭제
# DELETE FROM 테이블명;				//전체 레코드가 삭제

▲특정 레코드 삭제

 

▲전체 레코드 삭제

 

 

 ④ SELECT : 레코드 검색

SELECT [ALL / DISTINCT] 컬럼리스트 FROM 테이블명
	[WHERE 조건식]
	[GROUP BY 속성] [HAVING 조건]
	[ORDER BY 속성 ASC/DESC];

▲전체 레코드 검색
▲특정 컬럼만 출력

 

▲where 조건식을 활용한 특정 레코드 출력

 

▲비교 연산자를 활용한 출력

 

▲between

 - between N and M : N과 M사이의 값을 가진 레코드 지정

 

▲LIKE 연산자 %

 - like '%A' : A로 시작하는 레코드 지정

 - like '%A%' : A가 포함된 레코드 지정

 - like 'A%' : A로 끝나는 레코드 지정

 

▲내장함수 count, sum, avg, max, min

 - count(칼럼 이름) : 해당 칼럼의 레코드 개수를 출력

 - sum(칼럼 이름) : 해당 칼럼의 레코드의 합

 - avg(칼럼 이름) : 해당 칼럼의 레코드의 평균

 - max(칼럼 이름) : 해당 칼럼의 레코드의 최댓값

 - min(칼럼 이름) : 해당 칼럼의 레코드의 최솟값

 

 

▲내장함수와 LIKE 연산의 활용

 

 - 기타 연산

  · where 칼럼 이름 in (X, Y) ▶ 해당 칼럼의 값이 X와 Y인 레코드 지정

  · sysdate from dual ▶ DBMS에 저장된 날짜 지정

  · to_char(sysdate, 'YYYY/MM/DD') from dual ▶ 지정한 양식으로 날짜 출력

 

 

 

 - 작업이 끝나고 커밋하는 것을 잊지 말자.

반응형