Database/SQL

SQL 기초 (1) / DB / Database

Garonguri 2021. 9. 24. 13:55
728x90

 

SQL의 아주 기초가 되는 문법들이 있다. Group by, Select 등..

이런 간단한 문법들은 접해본 경험이 많기 때문에, 구우우우욷이 정리하지 않는다.

 

최근 직부캠 1주차에서 w3school을 통해 SQL의 기초 문법을 다수 복습했는데,

그 중 비교적 적게 접해본 문법들의 사용을 정리해보려 한다.!!!

SQL Select Distinct
SQL Null Values
SQL Update
SQL Select Top
SQL Like
SQL Wildcards
SQL Aliases
SQL inner/outer Join
SQL Having
SQL Case
SQL Stored Procedures

 

1.     SQL Distinct

 

SQL function 아니지만, 중복을 제거할  있는 키워드이다.

일반적 SQL 중복 여부에 상관 없이 모든 자료를 가져오기 때문이다.

 

SELECT DISTINCT [column] FROM [table]

 

컬럼이 중복되지 않고, 별개의 레코드로 반환된 결과가 나온다.

 

2.     SQL Null Values

 

SQL function 아니다.

Null값을 가진 필드는 값이 없는 필드와 같다. (비어있거나, 0 있는 필드와 차이가 있다는 것을  알고 있어야 !)

 

Null인지, 아닌지 테스트 하려면 IS (NOT) NULL test하면 된다.

 

WHERE [column] IS NOT NULL

 

 

3.     SQL Update

 

테이블의 자료를 업데이트   사용한다.

 

UPDATE [table] SET [column1], [column2] WHERE [condition]

 

Where절에 맞는 condition 가진 데이터를 SET 맞게 변경해준다.

여러개 값을 동시에 같은 값으로 변경하려면, SET 컬럼을 여러개 써주면 된다.

 

4.     SQL SELECT TOP

 

상위 몇개의 레코드만 가져오고 싶을  사용한다.

 

SELECT TOP [n개] [column] FROM [table]WHERE [condition]

 

Order by 등으로 정렬해준다면 더 사용하기 용이할 듯 하다.

 

5.     SQL Like & Wildcards

 

특정 문자열과 같은 값이 레코드 안에 있는지를 찾을 때 사용한다.

Pattern을 검색할 때 0개 이상의 문자열에는 %(0, 1, 문자열) , 한개의 문자에는 _를 사용한다.

 

SELECT [column1], [column2] FROM [table] WHERE [column] LIKE [pattern]

 

% _를 통해, 내가 비교하고자 하는 문자열이 맨 앞인지, 뒤인지, 몇번쨰인지.. 등등을

조절해서 검색할 수 있다. -> 이것을 Wildcard라고 한다.

 

6.     SQL Aliases

 

칼럼에 별명을 붙여준다고 생각하면 된다. (별칭이라고 )

유효 기간은 해당 쿼리 까지 만이다.

 

SELECT [column1] AS [name1][column2] AS [name2]

 

알아보기 힘든 칼럼에 많이 사용한다.

이 때, 별칭에 공백이 들어간 경우 [ ] 써주는 것 잊으면 안된다.

 

7.     SQL INNER / OUTER JOIN

 

Inner join : 기준 테이블과 Join할 테이블 모두에 같은 데이터가 존재해야 조회가 가능하다. 

Outer join : 기준 테이블에만 데이터가 존재한다면 조회가 가능하다. Join 테이블에 데이터가 존재하지 않아도 된다는 뜻. 만약 join 테이블에 데이터가 존재할 경우, 해당 데이터를 참조할 수 있다.

 

SELECT [column]FROM [table1] INNER JOIN [table2] ON [table1.column] = [table2.column]

 

이 때, 기준 테이블 지정은 LEFT, RIGHT로 지정한다.

 

8.     SQL Having

 

Having WHERE이랑 동일한 역할을 하지만, 

Having절은 그룹 함수를 포함하는 것만을 조건으로 한다는 것이 WHERE절과의 차이점이다.

 

Table이나 레이블, 개별 행에 적용되는 조건이라면 where

집합의 행이나 집계 함수, group by절에 부합하는 조건이라면 having

 

9.     SQL Case

 

조건에 따라 값을 지정해주는, If else 문과 비슷하다.

 

CASE

           WHEN [Condition1]  THEN [Result1]

           WHEN [Condition2] THEN [Result2]

           WHEN [Condition3] THEN [Result3]

           ELSE

END

 

ELSE에도 해당하지 않는다면, NULL을 반환한다.

 

 

 

728x90