트리거 생성 / 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은 중복 값을 빼고 합집합을 보여줌
Select Id, Email, Name from UKcustomers
UNION
Select Id, Email, Name from UScustomers
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 임.
'Database > SQL Server' 카테고리의 다른 글
MS SQL-사용자 지정 함수(스칼라, 인라인 테이블, 다중 테이블) (0) | 2020.12.04 |
---|---|
MS SQL Query 내장 함수(문자열, 숫자, 시간 관련 ) (0) | 2020.12.04 |
MS SQL Server - 데이터베이스 생성/변경/삭제 , 테이블 생성/변경/삭제, 제약조건 생성 (0) | 2020.12.01 |
MySQL - Problem solving , Data analysis (0) | 2020.10.01 |
Session-데이터베이스(Database), SQL (0) | 2020.05.14 |