[JSP] 11.3 SQL 쿼리 기초

2022. 4. 19. 18:00JAVA/Servlet&JSP

1. 주요 SQL 타입

표준 SQL의 주요 타입

SQL타입 설명
CHAR 확정 길이의 문자열 저장
VARCHAR 가변 길이의 문자열 저장 (최대 255)
LONG VARCHAR 긴 가변 길이의 문자열 저장
NUMBERIC 숫자를 저장
DECIMAL 십진수 저장
INTEGER 정수 저장
TIMESTAMP 날짜 및 시간을 저장
TIME 시간을 저장
DATE 날짜를 저장

 

오라클 데이터 타입

문자 데이터 타입

데이터 타입 내용
CHAR(n)  고정길이 문자 / 최대 2000byte / 디폴트 값은 1byte 
 VARCHAR2(n)  가변길이 문자 / 최대 4000BYTE / 디폴트 값은 1byte 
 NCHAR(n)  고정길이 유니코드 문자(다국어 입력가능) / 최대 2000byte / 디폴트 값은 1byte 
 NVARCHAR(n)  가변길이 유니코드 문자(다국어 입력가능) / 최대 2000byte / 디폴트 값은 1byte 
 LONG   최대 2GB 크기의 가변길이 문자형 
 CLOB  대용량 텍스트 데이터 타입(최대 4Gbyte)
 NCLOB  대용량 텍스트 유니코드 데이터 타입(최대 4Gbyte)

숫자 데이터 타입

데이터 타입 내용
 NUMBER(P,S)   가변숫자 / P (1 ~ 38, 디폴트 : 38) / S (-84 ~ 127, 디폴트 값 : 0)  / 최대 22byte 
 FLOAT(P)  NUMBER의 하위타입 / P (1~128 .디폴트 : 128) / 이진수 기준 / 최대 22byte 
 BINARY_FLOAT  32비트 부동소수점 수 / 최대 4byte 
 BINARY_DOUBLE  64비트 부동소수점 수 / 최대 8byte

날짜 데이터 타입

데이터타입   설명 
 DATE  BC 4712년 1월 1일부터 9999년 12월 31일, 연, 월, 일, 시, 분, 초 까지 입력 가능 
 TIMESTAMP
 연도, 월, 일, 시, 분, 초 + 밀리초까지 입력가능 

LOB 데이터 타입

데이터 타입  설명 
CLOB  문자형 대용량 객체 고정길이와 가변길이 문자집합 지원 
NCLOB  유니코드를 지원하는 문자형 대용량 객체 
BLOB  이진형 대용량 객체 
BFILE  대용량 이진 파일에 대한 위치,이름 저장 

 

2. 테이블 생성 쿼리

create table TABLENAME(
	FIELD_NAME1	FIELD_TYPE1(LEN1) PRIMARY KEY,
    FIELD_NAME2 FIELD_TYPE2(LEN2) NOT NULL,
    ...
    FIELD_NAMEn FIELD_TYPEn(LENn) UNIQUE
)
create table MEMBER(
	MEMBERID VARCHAR(10) PRIMARY KEY,
    PASSWORD VARCHAR(10) NOT NULL,
    NAME     VARCHAR(20) NOT NULL,
    EMAIL    VARCHAR(80) UNIQUE
)

 

3. 테이블 삽입 쿼리

INSERT INTO [테이블 이름]([필드1], [필드2], ..., [필드n])
VALUES ([값1], [값2], ..., [값n])

 

테이블에 대한 필드 목록을 정의하면 일부 필드에 대해서 값을 지정하여 데이터를 삽입할 수 있습니다.

insert into MEMBER(MEMBERID, PASSWORD, NAME) values('user1', '1234', '김용환')

테이블에 대한 필드 목록을 표시하지 않으면 전체 필드에 대해서 값을 지정해야함

insert into MEMBER values('user1', '1234', '김용환', 'user1@gmail.com')

 

4. 데이터 조회 쿼리 - 조회 및 where

select [필드1], [필드2], ..., [필드n] from [테이블 이름] [where 필드이름 = 값]

 

select * from MEMBER where NAME = '김용환';

 

and 연산자 사용 (or, <>, IS NULL, IS NOT NULL)

select * from MEMBER
where NAME = '김용환' and EMAIL = 'user1@gmail.com';

 

like 연산자 사용

select * from MEMBER
where NAME like '김%';

 

5. 데이터 조회 쿼리 정렬

select .. from [테이블 이름] where [조건절] order by [필드1] asc, [필드2] desc, ...
  • asc : 오름차순, 생략 가능
  • desc : 내림차순

6. 데이터 쿼리 조회 - 집합

select max(SALARY), min(SALARY), sum(SALARY) from ...

 

select count(*) as 회원수 from MEMBER;

 

7. 데이터 수정 쿼리

update [테이블이름] set [필드1]=[값1], [필드2]=[값2], ..., [필드n]=[값n] where [조건절]

 

update MEMBER set NAME='홍길동' where EMAIL = 'user1@gmail.com';

 

8. 데이터 삭제 쿼리

delete from [테이블이름] where [조건절]

 

delete from MEMBER where MEMBERID = 'user1';

 

9. 조인

select A.필드1, A.필드2, B.필드3, B.필드4
from [테이블1] A inner join [테이블2] B on A.[필드x] = B.[필드x]

 

 

References

JSP 2.0 프로그래밍 기초부터 중급까지
[Oracle] 오라클 데이터타입(DataType) 총 정리