본문 바로가기

DBMS/MSSQL

(19)
[MSSQL] sp_send_dbmail sp_send_dbmail MSSQL 내부에서 email 을 보내는 방법이 존재 한다. 또한 쿼리를 입력해여 해당 결과를 Body 나 첨부파일 형태로 변환하여 전송가능하다. DBMS가 단순 저장소 역할만이 아닌 메일 전송까지 담당하는것은 그다지 추천하지는 않는다. 설정 사용법 EXEC msdb.dbo.sp_send_dbmail 사전 셋팅 추후 추가 예정 Param 설정 쿼리 결과값을 엑셀 형태로 첨부하여 전달 EXEC msdb.dbo.sp_send_dbmail @profile_name = '', @recipients = '', @subject = '', @body = '', @body_format = 'HTML', @importance ='HIGH', -- 아래 내용은 쿼리 결과를 엑셀 첨부파일로 변환하..
[MSSQL] User-Defined Table Types User-Defined Table Types Winform 에서 Stored-Procedure 로 테이블 데이터를 전달하려고 할때 생성 방법 및 위치 확인 CREATE TYPE dbo.EmployeeType AS TABLE ( EmployeeID INT, FirstName NVARCHAR(50), LastName NVARCHAR(50), Salary DECIMAL(10, 2) ); Winform + Stored Procedure Stored Procedure CREATE PROCEDURE dbo.InsertEmployees @Employees dbo.EmployeeType READONLY AS ... C# 코드 DataTable 데이터 타입을 전달한다. DataTable dt = new DataTable..
[MSSQL] ISNULL ISNULL NULL 값을 특정 다른 값으로 변환 하려고 하는 경우 ISNULL(expression, replacement_value) expression : 검사 하고자 할 대상 replacement_value : 만약 expression 이 null 이라면, 변경하고 싶은 값 SELECT 문 에서의 활용 SELECT ISNULL(name, '-') AS name FROM Students; 학생의 이름 정보가 없는경우 '-' 로 변경한다 값 SET SELECT @VALUE = MAX(age) from Students where name = 'john' SET @AGE = ISNULL(@VALUE,0); 만약 age (column) 값이 존재하지 않는경우 0 으로 변경한다. There might be i..
[MSSQL] STRING_AGG (GROUP_CONCAT) STRING_AGG 여러 row 값을 선언된 구분자를 통해 (Ex , - : ) 하나의 문자열을 나타낸다. 예시 OrderID ProductName 1 Laptop 1 Mouse 2 Smartphone 2 Headphones 3 Tablet SELECT OrderID, STRING_AGG(ProductName, ', ') AS ConcatenatedProducts FROM Orders GROUP BY OrderID; 결과 값 OrderID ConcatenatedProducts 1 Laptop, Mouse 2 Smartphone, Headphones 3 Tablet Reference MYSQL GROUP_CONCAT (세로컬럼 가로로 합치기 ) MYSQL GROUP_CONCAT 사용하기 이건 MSSQL 에..
[MSSQL] CASE CASE -- Simple CASE expression: CASE input_expression WHEN when_expression THEN result_expression [ ...n ] [ ELSE else_result_expression ] END -- Searched CASE expression: CASE WHEN Boolean_expression THEN result_expression [ ...n ] [ ELSE else_result_expression ] END 쿼리 안에서 조건에 따른 작업을 수행 할 수 있다. WHEN (조건) THEN (결과) 형태로 작성한다. END 이후 표출될 컬럼 이름을 결정한다. 크게 (Simple, Searched) 두가지 표현 방법으로 사용된다. Simple..
[MSSQL] STUFF STUFF 문자열에 글자를 치환하고 싶은 경우 사용한다. STUFF (string_expression, start, length, replacement_expression) string_expression : 원본 문자열 start : 변경될 문자의 시작위치 length : 변경될 길이 수 replacement_expression : 새로운 문자열 # 1 SELECT STUFF('Hello, world!', 7, 5, 'there') Hello, there! # 2 SELECT STUFF('1234567890', 6, 0, '-') 12345-67890 # 3 SELECT Name, STUFF(Name, CHARINDEX(' ', Name), LEN(Name), '') AS FirstName FROM E..
[MSSQL] DELETE DELETE 테이블에서 데이터를 제거하는 경우 사용한다. WHERE 절을 반드시 사용한다. DELETE FROM 테이블명 WHERE condition; 기본 예시 DELETE FROM Employees WHERE id = 1; DELETE Employees WHERE id = 1; JOIN 을 활용한 데이터 삭제 DELETE Orders FROM Orders JOIN Customers ON Orders.CustomerID = Customers.CustomerID WHERE Customers.Country = 'Germany'; There might be incorrect information or outdated content.
[MSSQL] UPDATE UPDATE 테이블에 존재하는 데이터를 수정할 때 사용한다. UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition; 기본 예시 UPDATE Employees SET Name = 'John', Age = 30 WHERE id = 1; JOIN 을 활용한 데이터 수정 다른 테이블의 조건을 연결시켜 대상 테이블 값을 수정한다. UPDATE Orders SET ShipCountry = 'USA' FROM Orders JOIN Customers ON Orders.CustomerID = Customers.CustomerID WHERE Customers.Country = 'United States'; There might be in..
[MSSQL] INSERT INSERT 테이블에 새로운 ROW 를 추가 하는 경우 사용한다. INSERT INTO 테이블명 (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); 기본 예시 INSERT INTO Employees (Id, Name) VALUES (1, 'John'); 여러 행 동시 추가 INSERT INTO Employees (Id, Name) VALUES (1, 'John'), (2, 'Tom'), (3, 'Max'); SELECT 절을 이용한 데이터 추가 WHERE 절이 없는경우 해당 테이블 값 전부 삽입 INSERT INTO Students (StudentID, FirstName, LastName, Age, Grade) SELECT ID,..
[MSSQL] CONCAT CONCAT CONCAT (string1, string2 [, string3, ...]) CONCAT 함수는 두 개 이상의 문자열을 하나의 문자열로 연결(결합)하는 데 사용된다. 컬럼 끼리의 문자열을 연결하는데 유용하다. 기본 예시 SELECT CONCAT('Hello', ' ', 'World') AS Result; 컬럼 문자 연결 SELECT CONCAT(FirstName, ' ', LastName) AS FullName FROM Employees; There might be incorrect information or outdated content.