DB

SQL의미 및 종류, SQL실행순서, 자료형과 리터럴, SELECT 연결연산 및 사칙연산

빵아지 2023. 2. 11. 23:37
SQL
Strutured Query Language
구조화된 질의 언어


= 데이터베이스가 이해할 수 있도록 특정 문법에 맞춰서 질의하는 것
ex) 육하원칙(누가, 무엇을...), 주어, 동사, 목적어 ...



SQL 문법 종류

SELECT = 테이블에서 원하는 데이터를 조회
DML = 테이블에 데이터를 입력/삭제/수정
DDL = 테이블 같은 데이터 저장소 객체를 만들거나 수정
TCL = 트랜잭션을 제어
DCL = 객체에 권한을 부여

SELECT-> 실무 SQL 쿼리 80퍼 이해 가능/ 중점으로 공부하기

<짚고넘어갈 용어>***** 계속 헷갈림 ㅠ

행: 튜플
열: 컬럼

테이블 = 엔터티를 모델링을 통해 DB가 이해할 수 있게 만든 결과로 데이터를 저장하는 저장소
모델링: 개념적 데이터 모델링-> 논리적 데이터 모델링->물리적 데이터 모델링

# 테이블 특징
- 2차원의 행과 열 형태를 유지

2차원 + 행+ 열




SQL 실행 순서

이 순서 중요함!!!

- from=테이블
- where=튜플
- select=컬럼



*

'*' = 에스터리스크
- SELECT 뒤에 사용됨
- 실무에서는 잘 안 사용함
- 모든 컬럼정보 출력

ex)
SELECT * FROM 직원;
= 직원 테이블의 모든 컬럼(열)정보를 출력합니다!!!


DISTINCT

= '중복 없이' 라는 뜻

- SELECT 뒤에 위치 + 컬럼 앞에 사용
- 해당 컬럼 정보에 대해 중복 제거해줌
- 컬럼이 여러 개일 경우 이를 조합하여 중복 제거

ex)
SELECT DISTINCT 성별
,이름
FROM 직원;


AS
(ALIAS)

= 새로운 별명 부여하기

- SELECT 부분에서 출력하는 컬럼에 별명 부여
* 실무 팁: 실제 프로젝트에서는 테이블명과 컬럼 모두 영어임;;;
영단어를 조합해 네이밍하자!
ex)직원이름은 EMP_NM(=employee_name)

ex)
SELECT 직원ID AS EMP_ID
              , 패스워드 AS PASSWD
              , 이름 AS NAME
   FROM 직원;



#AS 주의사항
- 띄어쓰기 불가
- 숫자, 특수문자로 시작 불가 (=영문자는 가능)
- 특수문자는 '$', '_', '#'만 가능
- 예약어 불가(ex.SELECT)




NULL

= 아직 정해지지 않은 값을 표현할 때 사용

- 어떤 값이 들어오지 않았음을 표현
- 테이블은 특성상 행 * 열 형태를 유지해야 하니깐! ->NULL 필요해



자료형과 리터럴

리터럴 : 입력되는 (데이터)
자료형 = 바구니의 형태
- 테이블을 만들 때 각 속성(컬럼)에 대해 특정 자료형을 부여
- 일관성 있는 값을 입력 가능

관련 예시



SELECT에 리터럴 사용하기

1. 숫자형 리터럴 입력

ex)
SELECT 직원ID
              , 연봉
              , 1
     FROM 직원;

직원테이블의 튜플 수만큼 출력됨



2. 리터럴에도 별칭 부여 가능(AS)
- 리터럴 바로 옆에 AS 입력 후 원하는 별칭 작성!

ex)
1 as num




SELECT에서 사칙연산
입력
출력


<사칙연산 응용하기>

- 10%는 0.1로 표기, AS 활용!!!



SELECT에서 연결(||)연산

- 튜플 기준으로 컬럼과 리터럴을 조합해 연결 가능

<헷갈림 주의>
- 자바에서는 연결할 때 + 사용, 자바는 문자형은 " "
- DB에서 연결할 때는 || 사용, DB는 문자형은 ' '

예시

-> 튜플마다 출력됨!
-> 변하는 값과 변하지 않는 값이 무엇인지 빠르게 확인 (= 안 변하는 값은 문자로 입력하면 됨)

* 꿀팁: 출력값에 띄어쓰기를 반영하고 싶다면 ' 뒤에 스페이스바. 닫을 때는 '앞에 한 칸 비워두기