Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 예제
- PostgreSQL
- 문자열
- 인스톨
- 기초
- MySQL
- vb
- 델파이
- 입문
- SQL
- Visual Studio 2005
- 파이어버드
- SDK
- winsock
- 파라미터
- Delphi
- VB.NET
- WIN32 SDK
- Visual Basic
- xml
- 셋업
- MFC
- c#
- 시리얼 통신
- 소니
- 설치
- 데이터베이스
- Firebird
- dll
- 초보
Archives
- Today
- Total
프로그래밍 노트
BNF로 표기한 SQL문법 본문
○ 테이블 정의
<테이블 정의> | ::= | create table <테이블명> ( <테이블요소> [ { , <테이블요소> } ... ] ) |
<테이블 요소> | ::= | <속성정의> | <테이블 제약정의> |
<속성 정의> | ::= | <컬럼명> <데이터형> [ <컬럼제약> ] |
<데이터형> | ::= | |
<컬럼 제약> | ::= | not null [ unique | primary key ] |
<테이블 제약 정의> | ::= | unique | primary key ( <컬럼명> [ { , <컬럼명> } ... ] ) |
○ 질의
<select> | ::= | select [ all | distinct ] [ <수식> [ { , <수식> } ... ] | * ] <from 구> [<where 구> ] [ <group 구> ] [ <having 구> ] [ <order 구>] |
<from 구> | ::= | from <테이블 지정> [ { , <테이블 지정> } ... ] |
<테이블 지정> | ::= | <테이블명> [ join <테이블명> on <결합 조건> ] |
<결합조건> | ::= | <컬럼 지정> = <컬럼 지정> |
<where 구> | ::= | where <검색조건> |
<group 구> | ::= | group by <컬럼 지정> [ asc | desc ] |
<having 구> | ::= | having <검색조건> |
<order 구> | ::= | order by <컬럼 지정> [ asc | desc ] [ { , <컬럼 지정> [ asc | desc ] } ... ] |
<수식> | ::= | <항> | <수식> + <항> | <수식> + <항> |
<항> | ::= | <인자> | <항> * <인자> | <항> / <인자> |
<인자> | ::= | [ + | - ] <1차인자> |
<1차인자> | ::= | <값지정> | <컬럼 지정> | <집합함수 지정> | ( <수식> ) |
<속성 지정> | ::= | [ <테이블명> . ] <컬럼 명> |
<집합함수지정> | ::= | count(*) | <distinct 집합함수> | <all 집합함수> |
<distinct 집합함수> | ::= | { avg | max | min | sum | count } ( distinct <컬럼 명> ) |
<all 집합함수> | ::= | { avg | max | min | sum } ( [ all ]<컬럼 명> ) |
<검색조건> | ::= | <BOOL항> | <검색조건> or <BOOL항> |
<BOOL항> | ::= | <BOOL인자> | <BOOL항> and <BOOL항> |
<BOOL인자> | ::= | [ not ] <BOOL1차인자> |
<BOOL1차인자> | ::= | <술어> | ( <검색조건> ) |
<술어> | ::= | <비교술어> | <between 술어> | <in 술어> | <like 술어> | <null 술어> | <한정술어> | <exists 술어> |
<비교술어> | ::= | <수식> <비교연산자> { <수식> | <부질의> } |
<비교연산자> | ::= | <> | = | < | > | <= | >= |
<between 술어> | ::= | <수식> [ not ] between <수식> and <식> |
<in 술어> | ::= | <수식> [ not ] in { <한정값 리스트} | <부질의> } |
<한정값 리스트> | ::= | <값지정> [ { , <값지정> } ... ] |
<like 술어> | ::= | <속성 지정> [ not ] like <패턴> |
<패턴> | ::= | <값지정> |
<null 술어> | ::= | <컬럼 지정> is [ not ] null |
<한정술어> | ::= | <수식> <비교연산자> <한정자> <부질의> |
<한정자> | ::= | all | <some 술어> |
<some 술어> | ::= | some | any |
<exists 술어> | ::= | exists <부질의> |
○ 부질의
<질의지정> | ::= | select [ all | distinct ] { <수식> | * } <from 구> [ <where 구> ] [ <group 구> ] [ <having 구> ] |
○ 복수질의
<질의 지정> | ::= | select [ all | distinct ] [ <수식> [ { , <수식> } ... ] | * ] <from 구> [ <where 구> ] [ <group 구> ] [ <having 구> ] [ <order 구> ] |
○ insert문
<insert문> | ::= | insert into <테이블명> [ { <삽입 컬럼 리스트>} ] { values ( <삼입값 리스트> | <질의 지정> } |
<삽입 컬럼 리스트> | ::= | <컬럼명> [ { , <컬럼명> } ... |
<컬럼값 리스트> | ::= | <추가값> [ { , <추가값> } ... |
<추가값> | ::= | <값지정> | null |
○ update문
< update문 > | ::= | update <테이블명> set <설정구:검색> [ { , <설정구:검색> } ... ] [ where <검색조건> ] |
<설정구:검색> | ::= | <대상 컬럼:검색> = { <수식> | null } |
<대상 컬럼:검색> | ::= | <컬럼명> |
○ delete문
< delete문 > | ::= | delete from <테이블명> [ where <검색조건> ] |
음 이해하기 쉬운듯 어려운 듯....
Comments