JAVA를 어느 정도 공부했다면 데이터 베이스 또한 알아둬야 하기 때문에 오늘부터 SQL에 대해서 포스팅을 시작하려고 합니다!!
■ SQL이란?
SQL은 Structured Query Language의 줄임말로 구조화된 질의 언어이며, 자료를 관리 및 처리하기 위해 설계된 언어입니다. SQL은 1070년대 초에 IMB에서 최초 개발되었으며 관계형 모델이라는 이론에서 파생된 특징을 가지고 있는데, 현재 SQL의 표준으로 ANSI SQL이 정립되었습니다. 각 DBMS 프로그램에서 ANSI SQL을 기반으로 개발된 개별 SQL을 사용하며 서로 근소한 차이를 보입니다.
■ NoSQL이란?
NoSQl은 수없이 크고 작은 다양한 데이터의 처리 속도를 향상시키기 위해 RDBMS와는 달리 임시 저장공간에 데이터를 저장, 응답하는 매우 최적화된 key : value 저장 기법을 사용합니다.
1 ) 특징
- 데이터간의 관계를 정의하지 않습니다.(table 간을 연결하여 조회할 수 있는 join 기능이 없습니다.)
- 스키마가 없습니다.
- 데이터 속성들을 동적으로 정의합니다.
- 데이터 조회를 위해서는 비 SQL Interface를 통한 데이터 접근이 필요합니다.
2 ) 장/단점
- 장점 : 데이터 분산에 용의 하고, 가변성이 있는 데이터 저장이 쉽습니다.
- 단점 : 데이터가 일관성이 없고 복잡한 쿼리문을 사용하기 어렵습니다.
3 ) NoSQL종류
NoSQl도 종류가 있는데 꼭 알아두실 필요는 없지만 알아두시면 좋을 거 같아서 아래에 정리했습니다.
- Document DataBase : Mongo DB, Cough DB
- Wid Columnar DataBase : HBase, Cassandra, Hypertable
- Graph DB : ArangoDB, 마크로직, Neo4j
- Key - Value DB : Riak, Tokyo 등
SQL과 NoSQL은 각각의 장단점이 있기 때문에 상황에 맞게 활용을 할 수 있는데 구조를 확인해보시면 좀 더 이해하기 쉬울 거 같습니다.
구조는 다음과 같습니다.
■ SQL 명령어의 종류
SQL 명령어의 종류는 크게는 5가지의 종류로 나누어지며, 종류마다 정의는 아래와 같습니다.
종 류 | 문 법 | 설 명 |
DQL(Data Query Language) | 데이터 질의어(query문) - select문 | 테이블 내의 데이터를 조회할 때 사용 합니다 |
DML(Data Manipulation Language) | 데이터 조작어 - insert, update, delete | 테이블 내의 데이터를 입력, 수정, 삭제할 때 사용 합니다 |
DDL(Data Definition Language) | 데이터 정의어 - create, alter, drop | 테이블 등의 객체를 생성, 변경, 삭제할 때 사용 합니다 |
TCL(Transaction Control Language) | 트랜잭션 제어어 - commit, rollback, savepoint | 어디서부터 롤백할지를 지정 합니다 |
DCL(Data Control Language) | 데이터 제어어 - grant(권한부여), revoke(권한회수) | DB 사용자에게 권한을 부여하거나 취소할 때 사용 합니다 |
※ PL/SQL : 제어문(조건문, 반복문)이 들어있는 SQL로써 오라클에서 지원하는 확장된 SQL입니다.
■ SQL 형식
각 프로그래밍 언어가 가진 특성은 꼭 구별 지어 알아두어야 사용할 때 오류를 줄일 수 있습니다.
SQL은 다음과 같은 형식을 갖고 있습니다.
1) 기본형식
select 컬럼명1, 컬럼명2 ,.... from 테이블명
where 조건절 order by 정렬의 기준컬럼명[asc/desc]
※ 데이터베이스에서 원하는 데이터를 검색, 추출
2 ) Syntax
SELECT [ALL | DISTINCT] 열_리스트
[FROM 테이블_리스트]
[WHERE 조건]
[GROUP BY 열_리스트 [HAVING 조건]]
[ORDER BY 열_리스트 [ASC | DESC]];
3 ) distinct / all / order by / where
-distinct: 중복된 데이터를 허용하지 않음
-all: 중복된 데이터를 허용함(기본생략)
-order by : 정렬 - asc (오름차순, 생략가능), desc (내림차순)
-where 절 : 검색에 조건을 부여한다.
4 ) alias (별칭)
- 기본형식 :
컬럼명 [as] “별칭”
(큰따옴표는 생략가능하나 단, 별칭에 빈문자열이 있을때는 큰따옴표를 처리해야 한다. ex) "별칭 별칭")
5 ) 연산자의 종류
가) 산술연산자 : +, -, *, / (참고: 나머지연산은 mod(A,B)라는 함수를 써야함)
나) 비교연산자 : =, !=, >, >=, <, <=
다) 논리연산자 : and, or, not
7) SQL연산자: in, any, all, between, like, escape, is null, is not null
8) 결합연산자: ||
결합할 내용이 날짜나 문자인 경우에는 단일따옴표(' ')를 붙임
9) 연산자 우선순위
0순위: 괄호( )
1순위: 비교연산자, SQL연산자, 산술연산자
2순위: not
3순위: and
4순위: or
5순위: 결합연산자
마치며
오늘은 SQL이 무엇인지, 어떻게 작성하는지를 살펴보았습니다.
다음 포스팅에선 본격적으로 SQL에서 필수적으로 알아야 하는 예약어들과 함수에 대해서 배워보도록 하겠습니다.
'[ SQL ] > SQL' 카테고리의 다른 글
[ SQL ] View_Index_Sequence (0) | 2023.02.01 |
---|---|
[ SQL ] 테이블과 제약 조건(constraint) (2) | 2023.01.31 |
[ SQL ] Transaction and Sub Query (0) | 2023.01.30 |
[ SQL ] JOIN (2) | 2023.01.22 |
[ SQL ] SQL 함수 정리 (1) | 2023.01.21 |