Database/SQL Server

SQL Server-트리거 생성, ID 확인(Identity), 유니크 키 만들기, 조인 Join, having 과 where , stored procedure 프로시저 , 암호화(Encryption)

청렴결백한 만능 재주꾼 2020. 12. 3. 06:31
반응형

트리거 생성 / Create Trigger   

Create Trigger trForInsert on Test1 for Insert
as
Begin
	Insert into Test2 Values('YYYY')
End

ID확인하는 세가지 방법

Select SCOPE_IDENTITY() 
Select @@IDENTITY 
Select IDENT_CURRENT('Test2')
  • DENT_CURRENT는 임의의 세션과 범위에 있는 특정 테이블에 대해 생성된 마지막 ID 값을 반환합니다.
  • @@IDENTITY는 전체 범위에 걸쳐 현재 세션에 있는 임의의 테이블에 대해 생성된 마지막 ID 값을 반환합니다.
  • SCOPE_IDENTITY는 현재 세션과 현재 범위에 있는 임의의 테이블에 대해 만들어진 마지막 ID 값을 반환합니다.

[펌] from andromedarabbit.net/identity_scope_identity_ident_current/

 

 

Unique key 만들기

Alter Table Person
Add Constraint UQ_Person_Email Unique(Email)

 

 

중복값 없이 불러오기 

Select DISTINCT [Column_name] from [Table_name]

 

검색 조건 주기 (CITY 열이 LONDON이 아닌 행을 가져옴)

Select [Column_name] from [Table_name] where City <> 'London'

 

 

Difference - WHERE and Having

 

1. WHERE clause can be used with - Select, Insert, and Update statements, where as HAVING clause can only be used with the Select statement.

2. WHERE filters rows before aggregation (GROUPING), where as, HAVING filters groups, after the aggregations are performed.

3. Aggregate functions cannot be used in the WHERE clause, unless it is in a sub query contained in a HAVING clause, whereas, aggregate functions can be used in Having clause.

 

요약:

Having 은 필터링이 되거나 Group by로 되어진 새로운 테이블에 조건을 넣을 때 쓴다. 다른 글에서 설명함:guseowhtjs.tistory.com/134

 

 

 

조인 JOIN

--문법
SELECT 테이블별칭.조회할칼럼, 테이블별칭.조회할칼럼 
FROM 기준테이블 
INNER JOIN 조인테이블 ON 기준테이블.기준키 = 조인테이블.기준키

Inner Join or Join

교집합

Matching Rows only

 

Left Outer Join or Left Join

 

Right Outer Join or Right Join

 

Full Outer Join or Full join

합집합

 

Cross Join
크로스 조인은 ON 을 쓸 수가 없고 10개의 행 테이블과 4개의 행 테이블을 cross join 을 하면 40개의 결과가 나온다.

 

 

 

UNION을 사용하여 TABLE  합치기

UNION과 UNION ALL의 차이

 UNION ALL은 합집합이고 중복값 상관 안함.

Select Id, Email, Name from UKcustomers
UNION ALL
Select Id, Email, Name from UScustomers

UNION ALL

 

UNION은 중복 값을 빼고 합집합을 보여줌

Select Id, Email, Name from UKcustomers
UNION
Select Id, Email, Name from UScustomers

UNION

 

 

Stored Procedures 프로시저 저장하기

CREATE PROCEDURE spGetCustomers
AS
BEGIN
	Select Name, email from UKCustomers
END

파라미터 넣어주기

CREATE PROCEDURE spGetCustomers
@Name nvarchar(20)
AS
BEGIN
	Select Name, email from UKCustomers Where Name = @Name
END

 

암호화 하기

CREATE PROCEDURE spGetCustomers
@Name nvarchar(20)
WITH Encryption
AS
BEGIN
	Select Name, email from UKCustomers Where Name = @Name
END

 

 

유용한 System stored procedures

1. sp_help procedure_name ( ALT + F1)
파라미터 이름이나 데이터타입같은 저장된 프로시저에 대한 정보를 보여준다. 

2. sp_helptext procedure_name

저장된 프로시저의 텍스트를 보여준다.

3. sp_depends procedure_name

디펜던시에 대한 것을 보여준다. 어떻게 연결 되어 있으며 어떤 column인지 어떤 데이터 타입인지 selected, updated인지 알려줌. 매우 유용한 sp 임.

반응형