🔓데이터베이스/SQL

sql 분석 기본 정리 <기본 이론 정리>

하얀성 2023. 2. 24. 10:47

리퀘스트 : 클라이언트가 보내는 요구사항
리스폰스: 서버의 응답
DBMS : DB관리 시스템

SQL종류 : DML DCL DDL
Sql은 관계형 데이터베이스에서 사용


<데이터 필터링>

Selcet /기둥 선택
from /테이블 선택
Order By ,ASD DESD /순서대로 정렬, 오름차순, 내림차순
Select Distinct / 중복 행제거(null도 ok)

where / 조건 부여해서 검색

 



-> LIKE 연산자

문자열 중에서 특정부분이 일치되면 그  해당하는 부분을 참으로 나타냄
(모두를 검색해봐야함-> 과부하 가능성up)

 


-> IN 연산자

로직할 연산자를 여러개 쓰는 것을 막기위해 쓰는 연산자, 범위설정 가능.

+
limit row_count /count만큼 줄여서보여줌(양수만 가능)
+
OFFSET은 0부터시작(즉, 시작할 행에서  -1하여 지정)
Ex)' OFFSET 2 '라면 값 3개를 불러옴

+
between  A and B / A,B 값 둘다도 범위에  포함해서 출력(NOT 붙이면 A,B를 포함한 범위의 여집합 출력)

+
IN은 값 자체를 특정해서 그것만 출력가능
조건을 서브쿼리로 잡아서 그 서브쿼리를 IN조건의 조건으로 넣어서 사용가능.

+
LIKE  
%Br_wn% : %아무거나, 몇개든 와도 된다
단.....' _ '는 딱 한글자만 가능.
ESCAPE + ' ' : ' '다음에 오는 글자는 그냥문자로 취급하라 
%cjdje' '%%가 쓰였다면... 
양옆 %는 명령어, ' '다음 %는 문자.


+GLOB (Mysql에 없음 like 연산자로 처리)

+ IS NULL 
Null 값을 대입해서 구하려함. null 값인 행이 분명히 있는데... 대입해도 안나옴. 

행 값이 null이라 해서 값이 없는게 아니라
null이라는 값이 있는 거라서 IS NULL로 뽑아냄(0과0은 비교가능)
ax = NULL -> 필드에 NULL 안나옴
ax IS NULL -> 필드에 NULL 나옴.
IS NOT NULL -> NULL 필드값 빼고 다

 


sql JOIN - join 역할

 

-둘  이상의 테이블에서 데이터 결합
-테이블을 여러 번 읽을 필요x,트랜잭션 보호
-외래 키와 관련된 테이블 집합을 손쉽게 처리

@트랜잭션(transaction)은 하나의 작업을 수행하기 위해 필요한 데이터베이스의 연산들을 모아놓은 것으로, 데이터베이스에서 논리적인 작업의 단위가 된다.

트랜잭션은 장애가 발생했을 때 데이터를 복구하는 작업의 단위도 된다.



●조인의 정체는 곱집합

♤Inner join 반대편에도 대칭 되게끔 요소가  있는 것만 사용.

-primary key(주요값)
어떤 행을 특정할 수 있는 고유값.
-포링키
고유값을 다른테이블에서 가리키도록 만듦.
inner join은 이 두키의 대칭을 의미

♤LEFT 왼쪽은 무조건 사용. 왼쪽에 있는 요소만 대칭 시킴


♤RIGHT 오른쪽 무초건 사용. 오른쪽에 있는 요소만 대칭 

♤FULL 반대편에 대칭되는게 없는 요소더라도 모두사용

♤cross join
전체 다보는 것 1 -abc , 2 abc , 3 abc
♤self join
자신이 자신을 가리킴
♤FULL OUTER JOIN
left 조인 두개 합체하고, 중복되는 거 빼줌.

 


sql Group By - Group By column1

' ' 있는 놈들 모두 출력.(두가지 조건도 가능)

특정 클럼을 기준으로 해서 그 클럼의 행에 속한, 다른 클럼을... 우리가 직계연산을 넣어서 평균이든 합이든 뭐든 도출하게됨.

 

Count 
갯수 불러오기
+
SUM
범위 안에 있는 수치의 트랙들(수치의 하위 정보)을 더해옴. 
+
Max Min round(Avg)
각 수치의 트랙(수치의 하위정보)들 중 가장 큰것, 작은 것, 평균을 나타냄.

+
having condition
 ' ' 있는 놈들에서 condition 있는 애들만 보거나 안보이게끔.

 



■트랜잭션

연산의 기본적인 단위

ACID : 
원자성, 일관성, 격리, 내구성 앞글자 딴 것.