반응형

Procedural Language Extention to SQL 의 약자로 오라클 자체에 내장되어있는 절차적언어로서 SQL의 단점을 보완.
변수정의, 조건처리(IF), qksqhrcjfl (LOOP,WHILE,FOR)등을 지원.

[선언부] 변서나 상수 선언 
[실행부] 제어,반목분, 항수정의 등 로직 기술가능 
[예외처리부] 에러 발생히 해결할 문장 기술

※SET SERVEROUTPUT ON 
--오라클에서 제공하는 프로시저를 사용하여 출력하는 내용을 화면에 보여주도록 하는 환경변수 
--디폴트값이 OFF이기때문에 ON으로 변경해야함 


* := 는 대입, = 는 값비교 (자바에서의 =와 == 처럼) 
  
* 선언부, 실행부
DECLARE   --[선언부] 변서나 상수 선언 
vempno number(4); 
vename varchar2(10); 

BEGIN   --[실행부] 제어,반목분, 항수정의 등 로직 기술가능 
vempno := 999; 
vename := '조수현'; 
DBMS_OUTPUT.PUTLINE(vempno||'-'||vename); 
END; 
/

* := 는 대입, = 는 값비교 ( JAVA에서의 =와 == 처럼) 

출처: https://jyosssss.tistory.com/33 [개미는 뜐뜐]

반응형
반응형

SQL 서버에서 TSQL문장을 수행할 때, 배치(Batch)라고 하는 단위로 TSQL을 실행한다. SQL Batch 단위는 보통 GO로 구분하는데, DML(Database Manipulation Language : INSERT,UPDATE,DELETE를 가리킴) 문장이나 SELECT 등의 쿼리는 하나의 배치안에 여러 문장들이 들어갈 수 있다. 하나의 배치 안에서 사용할 변수를 지정할 수 있는데 이를 위해 DECLARE를 사용한다. DECALRE 뒤에 변수명 (@로 시작한다)과 변수 타입을 적어준다.

 

DECALRE @id INT



 

 

 

 

로컬 변수 사용

선언된 변수는 로컬 배치 범위내에서 사용될 수 있다. 즉, GO 이전에 사용하면 유효하다. 변수에 값을 설정하기 위해서는 SET문은 사용한다. 예를 들어, SET @v = 'Test'는 변수 @v에 초기값 Test 문자열을 넣는 것이다.

예제

-- 로컬 변수 선언
DECLARE @Group nvarchar(50)
DECALRE @Sales money;

-- 로컬 변수 초기화
SET @Group = N'Asia';
SET @Sales = 100;

-- 로컬 변수 사용
SELECT *
FROM Sales
WHERE Group = @Group 
AND Sales >= @Sales;
GO

 

출처 : http://www.sqlprogram.com/Basics/sql-declare.aspx

반응형
반응형

습관적으로 쓰는 GO 의 의미를 정확히 정의해보자.

 

1. GO 를 쓰는 이유 

 

  MS SQL에서 Go는 일괄처리batch의 단위라고 볼 수 있다.

 

매번 한줄 한줄 명령어를 실행할 때마다 데이터베이스에 접속해서 왔다갔다하면 처리시간도 많이 걸리고 효율적이지 못하다. 

따라서 큰 덩어리 단위로, 묶음 단위로 처리할 것을 묶어서 보내주는 batch라는 개념이 나오게 된다. GO는 그 구분점!

 

예를 들어, CREATE TABLE 문을 실행해서 테이블을 만들었다고 하자. 

그런데 이 밑에 바로 INSERT문을 사용해서 해당 테이블에 데이터를 넣으면 에러가 나올 것이다.

일괄처리로 한번에 처리하려 하는데 테이블만드려하는데 옆에선 아직 생성중인 테이블에 바로 데이터 넣으려고하니까

 

 

2.  GO 의 분류

 

독립적인 명령어로써 SQL문처럼 보이지만 사실 SQL이 아니다.

마이크로 소프트가 독자적으로 확장한 Transact-SQL도 아니다.

하기의 세가지 툴에서 쓰이는 tool용 명령어.

 

3.  GO 가 쓰이는 TOOL의 종류

 

1. SQL cmd 유틸리티

2. OSQL 유틸리티

3. SQL Server Management Studio 의 코드 편집기

 

 

4.  GO 의 특징

 

 이전에 쓰인 GO 다음부터 현재 GO앞까지를 실행한다.

따라서 여기서 중요한 것이, 변수의 선언의 문제! 이전에 선언한 변수 뒤에 GO가 들어왔으면 리셋되어버린다.

뒤에서 해당 변수를 다시 사용하고 싶다면 GO 뒤에 다시 선언해줘야함!

 

출처 : https://aubreyjeong.tistory.com/entry/MS-SQL%EC%9D%98-GO-%EC%9D%98-%EC%9D%98%EB%AF%B8

반응형
반응형

MYSQL에서는 KEY값에다가 AUTOINCREMENT 라고 써주며 되었던 것 같은데, MSSQL에서는 조금 다른 것 같다.

 

| 방법1. CREATE TABLE

테이블 생성 할 때, 컬럼명 옆에 아래와 같이  IDENTITY 라고 작성해 준다. 

   [MEDIA_SEQ] [int] IDENTITY(1,1) NOT NULL,
    [CATEGORY] [nvarchar](50) NOT NULL,
    [FIMENAME] [nvarchar](50) NOT NULL,

 

| 방법2. Microsoft SQL Server Management studio 



출처: https://clover7-webnote.tistory.com/124 [Hello! Hola! Hej! ]

반응형

+ Recent posts