SQL
Strutured Query Language
구조화된 질의 언어
= 데이터베이스가 이해할 수 있도록 특정 문법에 맞춰서 질의하는 것
ex) 육하원칙(누가, 무엇을...), 주어, 동사, 목적어 ...
SQL 문법 종류
SELECT = 테이블에서 원하는 데이터를 조회
DML = 테이블에 데이터를 입력/삭제/수정
DDL = 테이블 같은 데이터 저장소 객체를 만들거나 수정
TCL = 트랜잭션을 제어
DCL = 객체에 권한을 부여
SELECT-> 실무 SQL 쿼리 80퍼 이해 가능/ 중점으로 공부하기
<짚고넘어갈 용어>***** 계속 헷갈림 ㅠ
행: 튜플
열: 컬럼
테이블 = 엔터티를 모델링을 통해 DB가 이해할 수 있게 만든 결과로 데이터를 저장하는 저장소
모델링: 개념적 데이터 모델링-> 논리적 데이터 모델링->물리적 데이터 모델링
# 테이블 특징
- 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는 문자형은 ' '

-> 튜플마다 출력됨!
-> 변하는 값과 변하지 않는 값이 무엇인지 빠르게 확인 (= 안 변하는 값은 문자로 입력하면 됨)
* 꿀팁: 출력값에 띄어쓰기를 반영하고 싶다면 ' 뒤에 스페이스바. 닫을 때는 '앞에 한 칸 비워두기
'DB' 카테고리의 다른 글
WHERE, 비교조건, 논리조건, 부정연산, NULL조건, IN연산자 (0) | 2023.02.14 |
---|---|
내장형 함수, 형변환 함수, NULL함수 (1) | 2023.02.13 |
데이터베이스 정의 및 특징, 데이터 모델링(개념, 논리, 물리), ERD, 정규화 (0) | 2023.02.11 |