Education*
Devops
Architecture
F/B End
B.Chain
Basic
Others
CLOSE
Search For:
Search
BY TAGS
linux
HTTP
golang
flutter
java
fintech
개발환경
kubernetes
network
Docker
devops
database
tutorial
cli
분산시스템
www
블록체인
AWS
system admin
bigdata
보안
금융
msa
mysql
redis
Linux command
dns
javascript
CICD
VPC
FILESYSTEM
S3
NGINX
TCP/IP
ZOOKEEPER
NOSQL
IAC
CLOUD
TERRAFORM
logging
IT용어
Kafka
docker-compose
Dart
SQL Syntax 와 연산자
Recommanded
Free
YOUTUBE Lecture:
<% selectedImage[1] %>
yundream
2023-08-14
2022-08-10
1715
# SQL Syntax SQL 은 프로그래밍 언어로 SQL만의 독특한 문법을 가지고 있다. 다행인 점은 특정 목적에 특화된 DSL(Domain-specific language)이기 때문에 범용 언어들에 비해서 훨씬 쉽게 배울 수 있다는 점이다. 모든 쿼리는 연습용 데이터베이스를 통해서 실행해 볼 수 있다. [MySQL & SQL 스터디 준비](https://www.joinc.co.kr/w/mysql_study_ready) 를 참고하여 실습환경을 구축하자. ### Language element * 키워드 : SELECt, COUNT, YEAR 혹은 ASC, DOMAIN과 같은 주요 SQL 예약어들이다. 이를 통해서 명령을 수행하거나 조건을 부여 할 수 있다. * Identifiers(식별자) : 테이블, 스키마, 컬럼과 같은 데이터베이스에서 다루는 개체들의 이름이다. * Clauses(절) : SQL에서 Cluases는 고급언어의 조건문과 유사하다. 고급언어에서 작업에 조건을 거는 것과 마찬가지로 SQL 에서는 Cluases를 이용해서 작업조건을 설정 할 수 있다. Where 절, Union Clase, Order By 등 다양한 Clauses이 있다. * Expressions(표현식) : SQL 표현식은 하나 이상의 값, 연산자 및 값을 생성하는 SQL 함수의 조합으로 수식과 같으며, 쿼리 언어로 작성한다. 부울표현식, 날짜 표현식, 숫자 표현식 등 다양한 표현식이 존재한다. * Queries(쿼리) : 특정 기준에 따라서 데이터를 검색하는 것을 쿼리라고 한다. SQL의 가장 중요한 요소이다. 기본적으로 SQL은 이들 5개 요소의 결합으로 이루어진다. * Comment(주석) : 고급언어의 주석과 같은 목적으로 사용한다. 쿼리문을 설명하기 위해서 사용하며 실행되지는 않는다. 아래 쿼리는 "London City"에 거주중인 고개(Customer)의 정보를 가져온다. ```sql SELECT CustomerID, ContactName, Phone FROM customers WHERE City='London' ORDER BY City; ``` | CustomerID | ContactName | Phone | | ---------- | ----------- | ----- | | AROUT | Thomas Hardy | (171) 555-7788 | | BSBEV | Victoria Ashworth | (171) 555-1212 | | CONSH | Elizabeth Brown | (171) 555-2282 | | EASTC | Ann Devon | (171) 555-0297 | 쿼리문을 분석해보자.  ## 연산자 고급 언어와 마찬가지로 **연산자**를 제공한다. 코딩을 해야 연산자를 익힐 수 있는 것과 마찬가지로 SQL 역시 쿼리를 작성해봐야 연산자의 정확한 사용방법을 알 수 있다. 여기에서는 이런 연산자들이 있구나 정도를 숙지하고 넘어가면 된다. ### Arithmetic 연산자 덥셈, 뺄쌤, 나눗셈 과 같은 일반적인 산술 연산자다. 고급언어에서는 가장 많이 사용하는 연산자이겠는데, 데이터에 대한 연산 보다는 저장, 조회, 집계에 주로 사용하다 보니, 고급 언어 만큼 자주 사용하지는 않는다. | Operator | 설명 | | -------- | --- | | + | Add | | - | Subtrac | | \* | Multiply | | / | Divide | | % | Modulo | **예제 - 1** ```sql -- 7 SELECT 3 + 4; -- 5.0000 SELECT 10 / 2; ``` **예제 - 2** 좀 더 현실적인 예제다. 제품명(ProductName)이 chai 인 제품의 가격을 출력한다. 가격이 USD라서 한화로(현재 1 달러당 대략 1,000원) 변환했다. ```sql -- chai의 USD 가격 18.0000 SELECT ProductName, UnitPrice FROM products WHERE ProductName = 'chai'; -- UnitPrice * 1300 = 23400.0000 SELECT ProductName, (UnitPrice*1300) AS KRWPrice FROM products WHERE ProductName = 'chai'; ``` | ProductName | KRWPrice | | ----------- | -------- | | Chai | 23400.0000 | <br> ### Comparsion(비교) 연산자 고객 데이터를 관리한다고 가정해보자. 어떤 지역에 사는 고객, 특정 연령대의 고객, 성별 집계 등으로 조회하는 경우가 많을 것이다. 그만큼 실제 쿼리에서 자주 사용하는 연산자다. | Operator | 설명 | 예시 | | -------- | --- | --- | | = | 같다 | Author = 'Yundream' | | <> | 같지 않다.(!=와 동일하다) | Dept != 'Sales' | | > | 보다 큰 | CreatedAt > '2020-01-31' | | < | 보다 작은 | Salary < 3500 | | \>= | 크거나 같은 | Dependents >=2 | | <= | 작거나 같은 | Rate <= 0.25 | <br> ### Logical(논리) 연산자 | Operator | 설명 | | -------- | --- | | ALL | 전체 값을 비교하여 모두 만족해야 true | | AND | 모두 True 이면 True | | ANY | 다수의 비교 값 중 하나라도 만족하면 true | | BETWEEN | 두개 값 사이에 있다면 TRUE | | EXISTS | 서브 쿼리로 부터 특정 값이 존재하면 true | | IN | 목록에 있는 아이템 중 일치하는게 있으면 True | | LIKE | 값의 패턴이 일치하면 True | | NOT | 부정연산자 | | OR | 하나라도 True 이면 True | | SOME | 서브 쿼리와 함께 사용하며, 다수의 비교 값 중 하나라도 만족하면 true | ```sql -- Paris 혹은 London에 거주중인 고객 SELECT * FROM customers WHERE City IN ('Paris','London'); ``` OR 연산자로 동일한 일을 할 수 있다. 아래 쿼리를 실행하면 동일한 결과를 얻을 수 있다. ```sql SELECT * FROM customers WHERE City = 'Paris' OR City ='London'; ``` IN 연산자를 사용하면 훨씬 간결하게 쿼리문을 작성할 수 있기 때문에 이런 경우 OR 보다는 IN을 사용한다. <br> ### Bitwise 연산자 Bitwise 연산자는 두 식 사이의 비트 조작을 수행한다. 고급 언어를 이용하는 시스템, 네트워크 개발자라면 Bitwise 연산자를 그럭저럭 사용 하겠지만, 전반적으로 사용을 하지 않는 추세이다. | Operator | 설명 | | -------- | --- | | & | Bitwise AND | | \| | Bitwise OR | | ^ | Bitwise NOT | <br> ### Compound(복합) 연산자 Compound 연산자는 특정 연산을 실행하고 그 결과를 저장한다. | Operator | 설명 | | -------- | --- | | += | 덧셈 연산을 실행하고 그 결과를 저장한다. | | -= | 뺄셈 연산을 실행하고 그 결과를 저장한다. | | \*= | 곱셈 연산을 실행하고 그 결과를 저장한다. | | /= | 나눗셈 연산을 실행하고 그 결과를 저장한다. | | %= | 나머지 연산을 실행하고 그 결과를 저장한다. | | &= | AND 연산을 실행하고 그 결과를 저장한다. | | ^-= | 배타적 논리합 연산을 실행하고 그 결과를 저장한다. | | \|\*= | OR 연산을 실행하고 그 결과를 저장한다. | ## 마무리 [SQL Study With MySQL](https://www.joinc.co.kr/w/sql_study_with_mysql_index) 에서 MySQL과 관련된 다른 문서들을 읽을 수 있습니다. SQL 문법과 연산자들에 대해서 살펴봤습니다. 어디까지나 소개일 뿐이고 고급 쿼리는 나오지 않았습니다. 이런 일을 할 수 있겠구나 감을 잡는 정도면 충분합니다. SQL 학습용 데이터도 준비했고 기본 문법도 살펴봤으니 다음 부터는 SQL을 좀 더 자세히 살펴보게될겁니다.
Recent Posts
Vertex Gemini 기반 AI 에이전트 개발 06. LLM Native Application 개발
최신 경량 LLM Gemma 3 테스트
MLOps with Joinc - Kubeflow 설치
Vertex Gemini 기반 AI 에이전트 개발 05. 첫 번째 LLM 애플리케이션 개발
LLama-3.2-Vision 테스트
Vertex Gemini 기반 AI 에이전트 개발 04. 프롬프트 엔지니어링
Vertex Gemini 기반 AI 에이전트 개발 03. Vertex AI Gemini 둘러보기
Vertex Gemini 기반 AI 에이전트 개발 02. 생성 AI에 대해서
Vertex Gemini 기반 AI 에이전트 개발 01. 소개
Vertex Gemini 기반 AI 에이전트 개발-소개
Archive Posts
Tags
database
mysql
sql
SQL tutorial with MySQL
Copyrights © -
Joinc
, All Rights Reserved.
Inherited From -
Yundream
Rebranded By -
Joonphil
Recent Posts
Archive Posts
Tags