본문 바로가기
공부,일/SQL

210531_2

by fromnothing1 2021. 5. 31.

CAST

:DATA 형변환

SELECT CAST('2020-10-19 12:35:29.123' AS DATETIME) AS 'DATETIME'
SELECT CAST('2020-10-19 12:35:29.1234567 +12:15' AS DATETIME2(7)) AS 'DATETIME2'
SELECT CAST('2020-10-19 12:35:29.1234567 +12:15' AS DATE) AS 'DATE'
SELECT CAST('2020-10-19 12:35:29.1234567 +12:15' AS TIME(7)) AS 'TIME'
SELECT CAST('2020-10-19 12:35:29.1234567 +12:15' AS DATETIMEOFFSET(7)) AS 'DATETIMEOFFSET'
SELECT CAST('2020-10-19 12:35:29.123' AS SMALLDATETIME) AS 'SMALLDATETIME'

복원 시키기 (restore)

 

명령어로 복원 시키자 

use tempdb
restore database sqlDB from DISK = 'C:\백업장치\sqlDB_210528.bak' with replace;

DECLARE

: 변수 선언

USE sqlDB;
DECLARE @myVar1 INT;
DECLARE @myVar2 SMALLINT, @myVar3 DECIMAL(5,2);
DECLARE @myVar4 NCHAR(20);

SET @myVar1 = 5;
SET @myVar2 = 3;
SET @myVar3 = 4.25;
SET @myVar4 = '가수 이름==> ' ;

SELECT @myVar1 ;
SELECT @myVar2 + @myVar3;

SELECT @myVar4, Name FROM userTbl WHERE height >180 ;

 

max 형을 이용한 대량의 데이터 입력

REPLICATE('ㅁ',1000)  ㅁ을 1000 개 넣은 문자열 생성

create table maxTbl
(
	col1 varchar(Max),
	col2 nvarchar(Max)

);

insert into maxTbl values(replicate(CAST('A' as VARCHAR(Max)),1000000),REPLICATE(convert(VARCHAR(Max),'가'),1000000));

SELECT LEN(col1) AS [VARCHAR(MAX)], LEN(col2)AS [NVARCHAR(MAX)] FROM maxTbl;

varchar ,nvarchar 는 각각 8000,4000 byte 까지의 변수를 저장 할 수 있다. 때문에 

10000 byte 의 데이터를 정장 하기 위해서는 max type 을 사용해야 한다. 

 

 

cast or convert 함수를 통해서 데이터를 먼저 max type 으로 변환 시킨후에 저장해야지 정상 동작 된다. 

 

REPLACE('문자열','A','B')

 문자열안의 A -> B 로 바꿔줌

UPDATE maxTbl 
SET col1 = REPLACE((SELECT col1 FROM maxTbl),'A','B'),
col2 = REPLACE((SELECT col2 FROM maxTbl),'가','나');

select * from maxTbl;

 

REVERSE & SUBSTRING

REVERSE : 거꾸로 출력

SUBSTRING: COLUMN 잘라서 출력

SELECT REVERSE((SELECT col1 FROM maxTbl));
SELECT SUBSTRING((SELECT col2 FROM maxTbl),999991,10);

'공부,일 > SQL' 카테고리의 다른 글

20210601_2  (0) 2021.06.01
20210601  (0) 2021.06.01
210531  (0) 2021.05.31
210527  (0) 2021.05.27
MS-SQL 백업, 복원  (0) 2021.05.27

댓글