변수와 흐름 제어

CJB_ny·2022년 3월 31일
0

DataBase

목록 보기
20/29
post-thumbnail

변수

C#과 마찬가지로

변수나 if, else문을 통해 흐름을 제어 할 수 있다.


먼저 변수 선언하는 부분부터 보도록 하겠다.

DECLARE @i AS INT = 10;

@는 보통 다른 변수와 헷갈리지 않게하기 위하여 붙인다.

DECLARE @j AS INT;
SET @j = 10;

이런식으로 나중에 셋팅하는 것도 가능하다.

이렇게하면 C# Stack에 있는 것처럼 똑같이 사용이 가능하다.


역대 최고 연봉을 받은 선수의 이름은?

이런식으로 뽑아 올 수 있을 것이다.

이런식으로 주우욱 나옴

그리고 이부분을 저장하고싶다고 하면은

이렇게 선언해주고 firstName가져오고 싶을 때

이렇게 ( ) 로 묶어서 실행해주면

이부분 한꺼번에 실행해주면

이래 뜬다

그런데 lastName도 똑같이 복붙해서 가져오면되는데

이방법이 무식해 보이니까

우리가 사용하는

SQL Server에서만 제공하는 방법으로 lastName을 가져와보도록 하자.


이렇게 하면 조금더 쉽게 가능하기는 하다.


배치(batch)

배치는 한마디로 GO라고 치는것이 배치이다.

C#에서는

{int a = 10;} int a = 10;

이렇게해도 상관은 없는데

SQL Server에서 이러한 상관없게 해주는 기능을 제공하는것이

"batch"이다.

그러면 위에 DECLARE @i AS INT = 10;

있는거랑 밑에 DECLARE @i AS INT = 10; 랑 다른 @i이다.

GO 이전에 사용했던 변수는 소용없고 GO이후로 다시 선언해서 사용해야 된다는 것이다.

즉, batch를 이용해 변수의 유효범위 설정 가능하다.

또한 배치는 하나의 묶음으로 분석되고 실행되는 명령어 집합이라고 보면된다.

만약 이런경우 오타를 내어서 에러가 뜨는 경우

첫번째는 에러가 뜨지만 두번째는

이렇게 결과가 잘 뜬다.

GO로 구분 해놨기 때문이다.

즉, 각각 고립시켜서 보겠다라는 의미이다.


배치는 이까지하고 이제

흐름 제어

이런식인데 만약 IF문 다음에 여러줄에 걸쳐서 뭔가를 실행하고 싶다면은

C#에서는

if () { }

이렇게 묶어서 사용했는데

여기서는 BEGIN END로 묶어서 사용한다.

이렇게

ELSE 또한 BEGIN END로 묶어서 사용 ㄱㄱ


while문도 이런식으로 ㄱㄱ

BREAK도 이렇게 사용가능하다.

이렇게 continue도 사용가능하다.


테이블 변수

변수는 변수인데 테이블도 변수로 활용할 수 있다.

-> 임시로 사용할 테이블을 변수로 만들 수 있다!

-> 임시로 사용될 테이블 변수 만들 수 있다
(testA, testB 만들고 삭제 -> NO)

-> DECLARE 사용 -> tempdb 데이터베이스에 알아서 임시 저장 후 알아서 날라감

그래서 이런식으로 활용할 수도 있다.

-> 만약에 나중에 게임서버를 만들때

유저목록을 보고 싶은데

유저 이름들을 @test처럼 임시 테이블에 넣어놓은 다음에

@test에서 그 해당 유저가 있는지 없는지 보면서 진행시킬 수 있을 것이다.

profile
https://cjbworld.tistory.com/ <- 이사중

0개의 댓글