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 16135
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 14526
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 17075
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22667
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23985
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 19468
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39939
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 175366
554 [FireDAC Skill Sprints] 9. LocalSQL: DB에서 가져온 데이터(데이터셋)를 대상으로 다시 SQL쿼리 실행하기 Humphery 2015.04.01 1928
553 이 달의 기술자료 - 2021년 09월 file 험프리 2021.08.26 1927
552 [발표자료] 20160830 나만의 C++애플리케이션 완성하기 with C++빌더 험프리 2016.08.26 1924
551 [10.3 리오] IDE가 현대적이고 깔끔하게 업데이트 되었습니다. 관리자 2018.11.14 1892
550 [개발환경 설정] 안드로이드 기기 연결 시 'USB 디버깅 허용' 창이 표시되지 않는 경우 조치 방법 file 험프리 2018.08.21 1890
549 멀티-플랫폼 앱 멋지게! 쉽게! 빠르게! 완성하기 - #.1 한번에 멋지게 개발하기 file 험프리 2019.07.09 1887
548 [동영상] 8단계로 완성하는 "2014년 출시 앨범" 앱 개발 "15"분 만에 완료하기 관리자 2014.10.14 1853
547 [마이그레이션][팁] 유니코드 검토 대상 분석 도구 다운로드 [1] file 험프리 2015.11.16 1852
546 [튜토리얼] Mobile Tutorials: Mobile Application Development Humphery 2014.06.13 1849
545 RAD 스튜디오(델파이, C++빌더) 웹개발 방법(WebBroker, IntraWeb) 험프리 2016.09.07 1843
544 손쉬운 데이터 연결 방법(라이브바인딩 활용): 파이어몽키 코스북 6장 file 관리자 2014.07.18 1808
543 RAD Studio XE6 TChart 패치의 건 Humphery 2014.07.31 1795
542 [발표자료] 20190214 델파이 24주년 기념 세미나: 델파이 앱 현대화 방안 - 다양한 데이터 서비스 연동하기 관리자 2023.04.20 1793
541 20140424_Developer Direct LIVE! 2014 세미나 세션 자료입니다. 관리자 2014.04.25 1773
540 [10.3 리오][업데이트 2] Firebase 안드로이드 앱 푸쉬 알림 - 10.3.2에서 FCM 수신 설정하기 [1] file 김원경 2019.08.21 1763
539 FireDAC 성능 비교(BDE, dbGO(ADO), dbExpress, FireDAC) 험프리 2016.08.09 1761
538 [BaaS] VCL에서 특정사용자에게 GCM/APN 전송하기(FMX도 사용가능) Humphery 2014.07.25 1732
537 [시애틀] BSON(Binary JSON)을 처리하고, JSON 데이터를 스트리밍 모델로 읽고, 쓸수 있습니다. file Humphery 2015.10.05 1729
536 [업데이트][10.2 도쿄][릴리즈 2] 10.2 도쿄 - 릴리즈 2 출시 & 설치방법 안내 file 험프리 2017.12.13 1720
» [프로그래밍 애피타이저] 8장 SQL 정의와문법 file 김원경 2020.04.09 1706