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 15427
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13961
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16497
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22054
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23268
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18922
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39253
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174698
1203 인터베이스(InterBase) 2020 버전을 사용해야 하는 5 가지 이유 file 김원경 2020.04.09 6015
1202 [프로그래밍 애피타이저] 10장 트랜잭션의 정의 file 김원경 2020.04.09 438
1201 [프로그래밍 애피타이저] 9장 저장프로시저와 트리거 file 김원경 2020.04.09 590
» [프로그래밍 애피타이저] 8장 SQL 정의와문법 file 김원경 2020.04.09 675
1199 [프로그래밍 애피타이저] 7장 데이터베이스 개념과 용어정의 file 김원경 2020.04.09 756
1198 [고객 사례- POS, 주문, 델파이, 모바일] 마리스코스 - 레스토랑 주문 관리&전송 앱 관리자 2020.04.08 621
1197 IBLite 라이브러리 및 라이선스 배포하기 관리자 2020.04.08 313
1196 C++로 UI를 손쉽게 개발해봅시다! 관리자 2020.04.07 1314
1195 [프로그래밍 애피타이저] 6장 프로시저와 함수 file 김원경 2020.04.07 1412
1194 [프로그래밍 애피타이저] 5장 메모리의 구조 file 김원경 2020.04.07 748
1193 [프로그래밍 애피타이저] 4장 데이터타입 file 김원경 2020.04.07 340
1192 [프로그래밍 애피타이저] 3장 변수와 상수 file 김원경 2020.04.07 443
1191 [프로그래밍 애피타이저] 2장 컴파일,링크 및 운영체제(Operating System) file 김원경 2020.04.06 484
1190 [프로그래밍 애피타이저] 1장. 컴퓨터프로그램이란 ? file 김원경 2020.04.06 584
1189 2020 년 3 월 GM 업데이트 file 김원경 2020.03.30 659
1188 프로그래밍 언어 인기도 측정의 문제점 file 김원경 2020.03.27 511
1187 이 달의 기술자료 - 2020년 04월 험프리 2020.03.27 290
1186 파이어몽키를 사용하여 멀티 플랫폼/아키텍처 용 소프트웨어 개발 file 김원경 2020.03.25 595
1185 [고객 사례- 의료, 델파이] COVID-19 - 검사 결과 실시간 확인 앱 관리자 2020.03.25 788
1184 [고객사례-솔루션, 델파이] 비디오 오피스(VideoOffice) - 화상회의 솔루션 관리자 2020.03.25 586