SQL 정의와문법

SQL (Structured Query Language)

 

SQL RDBMS(Relational Database)에 저장된 데이터와 통신하기 위해 필요한 프로그래밍 언어입니다. SQL 문법은 영어와 유사하게 만들어져서 쉽게 읽고 쓰고 해석할 수 있습니다. ‘에스큐엘혹은시퀄로 발음합니다.

 

SQL IBM에서 1970년대 초에 도널드 D. 챔벌린과 레이먼드 F. 보이스가 처음 개발하였습니다. 초기에는 SEQUEL (Structured English Query Language)라는 이름으로 시작하였으며, IBM의 준 관계형 데이터베이스 관리 시스템에 저장된 데이터를 조작하고 수신하기 위해 고안되었습니다. SEQUEL은 나중에 SQL으로 바뀌었다. 그 까닭은 SEQUEL이 영국의 호커 시들리 항공사의 상표였기 때문입니다.

 

 

SQL 명령어

 

SQL 명령어는 크게 4종류의 그룹으로 나뉩니다.

  • DDL(Data Definition Language) - 데이터베이스 스키마와 설명을 처리하는 정의하는 언어입니다. 데이터베이스나 테이블 생성/변경/삭제 등의 작업이 여기에 포함됩니다.

     

  • DML(Data manipulation language) - 데이터 검색, 삽입, 변경, 삭제를 수행하여 조작하는 언어입니다. 실질적으로 저장된 데이터에 처리할 때 사용합니다.

     

  • DCL(Data Control Language) - 데이터에 접근할 수 있는 권한을 관리하는 언어입니다.

     

  • TCL(Transaction Control Language) - 트랜잭션을 다루는 언어입니다.

 

종류

 

명령어

 

DDL

CREATE, ALTER, DROP, TRUNCATE, COMMENT, RENAME

DDE

 

SELECT, INSERT, UPDATE, DELETE, MERGE, CALL, EXPLAIN PLAN, LOCK TABLE

DCL

GRANT, REVOKE

TCL

COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION

 

 

ANSI SQL 이란?

 

1986 SQL-86의 명칭(별칭 SQL-87)으로 ANSI에 의한 최초의 표준화가 되었습니다. 여러 데이터베이스들의 SQL들이 제공해주는 특성에 따라 SQL이 다를 수 있습니다. 하지만 ANSI 표준으로 작성된 SQL은 모든 데이터베이스에서 호환됩니다. 델파이는 ANSI SQL을 사용합니다.

 

 

 

l  표준 SQL 기본 문법 정리 - (테이블, , 인덱스 작성과 삭제)

     https://siyoon210.tistory.com/137

 

l  표준 SQL 기본 문법 정리 - (조회, 조건)

     https://siyoon210.tistory.com/133

 

l  표준 SQL 기본 문법 정리 - (정렬, 연산)

     https://siyoon210.tistory.com/134?category=840254

 

l  표준 SQL 기본 문법 정리 - (추가, 삭제, 갱신)

     https://siyoon210.tistory.com/135?category=840254

 

l  표준 SQL 기본 문법 정리 - (집계함수, 서브쿼리)

     https://siyoon210.tistory.com/136?category=840254

 

l  표준 SQL 쿼리 구문

    https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax?hl=ko

 

 

데이터베이스에서 사용되는 데이터 타입

 

  SQL에서 사용할 수 있는 데이터 타입의 종류는 많지만, 그 중에 자주 사용되는 데이터 타입을 데이터베이스 별로

  정리해보았습니다.

 

   LOB이란 Large Object의 약자로 대용량 데이터를 저장할 수 있는 데이터 타입입니다. 일반적으로 그래픽, 이미지, 사운드 등    비정형 데이터를 저장할 때 LOB타입을 사용합니다. 문자형 대용량데이터는 CLOB NCLOB, 그래픽, 이미지, 동영상 등의       데이터는 BLOB를 주로 사용합니다.

  우리가 사용할 데이터베이스인 인터베이스,  현업에서 자주 사용하는 오라클,  MS SQL Server 등의 데이터 타입들을 살펴        보도록 하겠습니다.

  l  인터베이스

이름

 

사이즈

 

범위

 

설명

 

BLOB

 

Variable

 

·         None

 

 

 

 

 

 

 

 

 

·         Blob 세그먼트 사이즈는 64K까지

 

·         그래픽, 텍스트 및 디지털 음성과 같은 대용량 데이터를 저장하기 위한 동적 크기 조정 가능 데이터 유형

 

 

 

 

 

·         기본 구조 단위는 세그먼트

 

 

·         Blob 하위 유형은 Blob 내용을 설명합니다.

 

BOOLEAN

 

16 bits

 

·         TRUE

 

·         FALSE

 

·         UNKNOWN

 

·         , 거짓 및 알 수 없는 진리 값을 나타냅니다.

 

·         모든 통용어에 운영 데이터 저장소(ODS) 11 이상이 필요합니다.

 

CHAR(<n>)

 

<n> characters

 

·         1 ~ 32,767 바이트

 

 

 

·         문자 세트 문자 크기는 32K에 맞을 수 있는 최대 문자 수를 결정합니다.

 

·         고정 길이 CHAR 또는 텍스트 문자열 유형

 

 

 

·         대체 키워드: CHARACTER

 

DATE

 

32 비트

 

1 Jan 100 a.d.
~ 29 Feb 32768 a.d.

 

·         날짜를 32 비트 롱 워드로 저장

 

DECIMAL ­(<precision>, <­scale>)

 

Variable
(16, 32, 64
비트)

 

·         <정밀도> = 1~18; 저장할 <precision> 자릿수 이상을 지정합니다.

 

·         <스케일> = 0~18; 소수점 이하 자릿수는 <precision>보다 작거나 같아야 합니다.

 

·         오른쪽에서 소수점 <scale> 자릿수가 있는 숫자

 

 

·         : DECIMAL (10,3)은 다음 형식으로 숫자를 정확하게 유지합니다. ppppppp.sss

 

DOUBLE ­PRECISION

 

64 bits1

 

2.225 x 10–308 to 1.797 x 10308

 

IEEE 배정도: 15 자리

 

FLOAT

 

32 bits

 

1.175 x 10–38 to 3.402 x 1038

 

IEEE 단정도: 7 자리

 

INTEGER

 

32 bits

 

–2,147,483,648 to 2,147,483,647

 

부호가 있는 Long

 

NUMERIC ­(<precision>, <­scale>)

 

Variable (16, 32, or
64 bits)

 

·         <정밀도> = 1~18; 정확하게 <precision> 자릿수를 저장하도록 지정합니다.

 

 

 

 

·         <스케일> = 0~18; 소수점 이하 자릿수를 지정하며 <precision보다 작거나 같아야 합니다.

 

·         오른쪽에서 소수점 <scale> 자릿수가있는 숫자

 

 

 

 

 

·         : NUMERIC (10,3)은 다음 형식으로 숫자를 정확하게 유지합니다. ppppppp.sss 오른쪽에서 소수점이 있는 <scale> 숫자의 숫자

 

SMALLINT

 

16 bits

 

–32,768 to 32,767

 

부호가 있는short

 

TIME

 

32 bits

 

0:00 AM-23:59:59.9999 PM

 

InterBase 유형 ISC_TIME의 부호 없는 정수 : 자정 이후 0.0001 초 단위의 시간

 

TIMESTAMP

 

64 bits

 

1 Jan 100 a.d.
to 29 Feb 32768 a.d.

 

인터베이스 유형 ISC_TIMESTAMP; 날짜와 시간 정보를 결합

 

VARCHAR (<n>)

 

<n> characters

 

·         1 ~ 32,765 바이트

 

·         문자 세트 문자 크기는 최대 문자 수 32K에 맞게 결정합니다.

 

·         가변 길이 CHAR 또는 텍스트 문자열 유형

 

·         대체 키워드: CHAR VARYING, CHARACTER VARYING

 

 

 

 l  오라클

타입/언어

 

오라클

 

문자타입

 

CHAR(n)

고정길이 문자 / 최대 2000byte / 디폴트 값은 1byte

VARCHAR(N)

가변길이 문자 / 최대 4000BYTE / 디폴트 값은 1byte

NCHAR(n)

고정길이 유니코드 문자(다국어 입력가능) / 최대 2000byte

숫자타입

 

NUMBER(P,S)

가변숫자 / P (1 ~ 38, 디폴트: 38) / S (-84 ~ 127, 디폴트 값 : 0)  / 최대 22byte

FLOAT(P)

 

NUMBER의 하위타입 / P (1~128 .디폴트 : 128) / 이진수 기준 / 최대 22byte 

BINARY_FLOAT

32비트 부동소수점 수 / 최대 8byte 

BINARY_DOUBLE

64비트 부동소수점 수 / 최대 8byte 

날자타입

 

DATE

BC 4712 1 1~ 9999 12 31) , , , , , 초 까지 입력 가능

TIMESTAMP

연도, , , , , + 밀리초까지 입력가능 

LOB 데이터 타입

 

CLOB

문자형 대용량 객체 고정길이와 가변길이 문자집합 지원

NCLOB

유니코드를 지원하는 문자형 대용량 객체

BLOB

이진형 대용량 객체

BFILE

대용량 이진 파일에 대한 위치, 이름 저장

 

 

 l  MS SQL Server

   https://developerking.tistory.com/6

 

 다운 로드 :  8장 SQL정의및문법.pdf

 

 


프로그래밍을 제대로 공부해보고 싶다면, 다음 순서로 진행하시는 것을 권장합니다.

 

  1. 프로그래밍 애피타이저 시리즈
  2. [동영상] 데브기어 델파이 기초 시리즈
  3. [오프라인 강의] 델파이/C++빌더 기초 강화
  4. [오프라인 강의] 델파이/C++빌더 윈도우 프로그래밍

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 14387
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13023
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 15532
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 21064
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 22297
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 17932
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 38228
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 173741
614 2020년 5월 GM 업데이트 - 여러분의 비즈니스에 길을 열어주세요! 관리자 2020.05.26 315
613 델파이 안드로이드 개발을 위해 OpenJDK 채택 file 김원경 2020.05.25 887
612 엠바카데로 오픈 소스 프로젝트 관리자 2020.05.25 699
611 [10.4 시드니 신기능] 겟잇 패키지 매니저(GetIt Package Manager) 개선 험프리 2020.05.21 593
610 [10.4 시드니 신기능] 컨트롤 개별 VCL 스타일 적용(Per-Control Style) 적용 험프리 2020.05.19 918
609 [10.4 시드니 신기능] 새로운 VCL TEdgeBrowser 컴포넌트 험프리 2020.05.18 22880
608 [고객 사례- 솔루션, 델파이] Beyond Compare - 데이터, 시스템 비교/병합/관리 프로그램 관리자 2020.05.14 741
607 [고객 사례- 솔루션, 델파이] AlignMix - 시각화된 세일즈 관리 도구 관리자 2020.05.12 364
606 [발표자료] 20200429 델파이 Push 메시지 전송 시스템 구현 방법 with 구글 Firebase [3] file 관리자 2020.05.04 1019
605 헬스케어 분야에서의 델파이 - 코로나에 맞서며 file 김원경 2020.04.29 604
604 [고객 사례- 의료, 델파이] COVID-19 격리 대상자 상태 관리 앱 관리자 2020.04.28 643
603 이 달의 기술자료 - 2020년 05월 file 험프리 2020.04.24 349
602 [사례 소개] 데브기어 마이그레이션 유상 컨설팅 사례 험프리 2020.04.22 529
601 델파이용 벡터 컨테이너 file 김원경 2020.04.14 752
600 [프로그래밍 애피타이저] 개발이 처음이거나 비 전공자 분들을 위한 가장 첫 번째 STEP! 관리자 2020.04.13 2448
599 [프로그래밍 애피타이저] 10장 트랜잭션의 정의 file 김원경 2020.04.09 436
598 [프로그래밍 애피타이저] 9장 저장프로시저와 트리거 file 김원경 2020.04.09 582
» [프로그래밍 애피타이저] 8장 SQL 정의와문법 file 김원경 2020.04.09 657
596 [프로그래밍 애피타이저] 7장 데이터베이스 개념과 용어정의 file 김원경 2020.04.09 749
595 [고객 사례- POS, 주문, 델파이, 모바일] 마리스코스 - 레스토랑 주문 관리&전송 앱 관리자 2020.04.08 606