데이터베이스 기초
데이터 유형 지정
날짜 형식(date) 지정: 'yyyy-mm-dd'
날짜 및 시간 유형(datetime) 지정: 'yyyy-mm-dd hh ss.nnn'
LIKE 술어
%: 임의의 문자(0자 포함)
- : 임의의 한 문자
[예]
* "높음"포함 : WHERE 열 이름 LIKE '% 높음 %'
* "높음"으로 시작: WHERE 열 이름 LIKE '높음%'
* "높음"으로 시작하는 3자: WHERE 열 이름 LIKE '높음__'
배치 파일에서 SQL 실행
SQLServer를 설치하고 있는 환경에서는 sqlcmd를 사용할 수 있다.
Windows 인증으로 Server 연결
```bat : sql.bat
set Server=%COMPUTERNAME%\SQLEXPRESS
echo %Server%
CD %~dp0
SQLCMD -S %Server% -i input.txt -s, -W -o output.txt
pause
``
```bat : input.txt
USE [testDB]
GO
SELECT * FROM [dbo].[DATATABLE];
GO
``
SQL 파일에 인수 전달
배치 파일에서 SQL이 작성된 파일(sql 파일)에 인수를 전달합니다.
```bat : sql.bat
set Server=%COMPUTERNAME%\SQLEXPRESS
echo %Server%
CD %~dp0
SQLCMD -S %Server% -i input.txt -v start_date="2017-07-01 00:00:00"-s, -W -o output.txt
pause
``
```bat : input.txt
USE [testDB]
GO
SELECT * FROM [dbo].[DATATABLE] WHERE [file_start_date] > '$(start_date)';
GO
``
sqlcmd 옵션
sqlcmd
-a packet_size
-A (dedicated administrator connection)
-b (terminate batch job if there is an error)
-c batch_terminator
-C (trust the server certificate)
-d db_name
-e (echo input)
-E (use trusted connection)
-f codepage | i:codepage[,o:codepage] | o:codepage[,i:codepage]
-g (enable column encryption)
-G (use Azure Active Directory for authentication)
-h rows_per_header
-H workstation_name
**-i input_file**
-I (enable quoted identifiers)
-j (Print raw error messages)
-k 1 | 2
-K application_intent
-l login_timeout
-L c
-m error_level
-M multisubnet_failover
-N (encrypt connection)
**-o output_file**
-p 1
-P password
-q "cmdline query"
-Q "cmdline query"(and exit)
-r 0 | 1
-R (use client regional settings)
-s col_separator
** -S [protocol:]server[instance_name][,port] **
-t query_timeout
-u (unicode output file)
-U login_id
**-v var="value"**
-V error_severity_level
-w column_width
** -W (remove trailing spaces) **
-x (disable variable substitution)
-X 1
-y variable_length_type_display_width
-Y fixed_length_type_display_width
-z new_password
-Z new_password (and exit)
-? (사용)
참고
%: 임의의 문자(0자 포함)
- : 임의의 한 문자
[예]
* "높음"포함 : WHERE 열 이름 LIKE '% 높음 %'
* "높음"으로 시작: WHERE 열 이름 LIKE '높음%'
* "높음"으로 시작하는 3자: WHERE 열 이름 LIKE '높음__'
배치 파일에서 SQL 실행
SQLServer를 설치하고 있는 환경에서는 sqlcmd를 사용할 수 있다.
Windows 인증으로 Server 연결
```bat : sql.bat
set Server=%COMPUTERNAME%\SQLEXPRESS
echo %Server%
CD %~dp0
SQLCMD -S %Server% -i input.txt -s, -W -o output.txt
pause
``
```bat : input.txt
USE [testDB]
GO
SELECT * FROM [dbo].[DATATABLE];
GO
``
SQL 파일에 인수 전달
배치 파일에서 SQL이 작성된 파일(sql 파일)에 인수를 전달합니다.
```bat : sql.bat
set Server=%COMPUTERNAME%\SQLEXPRESS
echo %Server%
CD %~dp0
SQLCMD -S %Server% -i input.txt -v start_date="2017-07-01 00:00:00"-s, -W -o output.txt
pause
``
```bat : input.txt
USE [testDB]
GO
SELECT * FROM [dbo].[DATATABLE] WHERE [file_start_date] > '$(start_date)';
GO
``
sqlcmd 옵션
sqlcmd
-a packet_size
-A (dedicated administrator connection)
-b (terminate batch job if there is an error)
-c batch_terminator
-C (trust the server certificate)
-d db_name
-e (echo input)
-E (use trusted connection)
-f codepage | i:codepage[,o:codepage] | o:codepage[,i:codepage]
-g (enable column encryption)
-G (use Azure Active Directory for authentication)
-h rows_per_header
-H workstation_name
**-i input_file**
-I (enable quoted identifiers)
-j (Print raw error messages)
-k 1 | 2
-K application_intent
-l login_timeout
-L c
-m error_level
-M multisubnet_failover
-N (encrypt connection)
**-o output_file**
-p 1
-P password
-q "cmdline query"
-Q "cmdline query"(and exit)
-r 0 | 1
-R (use client regional settings)
-s col_separator
** -S [protocol:]server[instance_name][,port] **
-t query_timeout
-u (unicode output file)
-U login_id
**-v var="value"**
-V error_severity_level
-w column_width
** -W (remove trailing spaces) **
-x (disable variable substitution)
-X 1
-y variable_length_type_display_width
-Y fixed_length_type_display_width
-z new_password
-Z new_password (and exit)
-? (사용)
참고
sqlcmd
-a packet_size
-A (dedicated administrator connection)
-b (terminate batch job if there is an error)
-c batch_terminator
-C (trust the server certificate)
-d db_name
-e (echo input)
-E (use trusted connection)
-f codepage | i:codepage[,o:codepage] | o:codepage[,i:codepage]
-g (enable column encryption)
-G (use Azure Active Directory for authentication)
-h rows_per_header
-H workstation_name
**-i input_file**
-I (enable quoted identifiers)
-j (Print raw error messages)
-k 1 | 2
-K application_intent
-l login_timeout
-L c
-m error_level
-M multisubnet_failover
-N (encrypt connection)
**-o output_file**
-p 1
-P password
-q "cmdline query"
-Q "cmdline query"(and exit)
-r 0 | 1
-R (use client regional settings)
-s col_separator
** -S [protocol:]server[instance_name][,port] **
-t query_timeout
-u (unicode output file)
-U login_id
**-v var="value"**
-V error_severity_level
-w column_width
** -W (remove trailing spaces) **
-x (disable variable substitution)
-X 1
-y variable_length_type_display_width
-Y fixed_length_type_display_width
-z new_password
-Z new_password (and exit)
-? (사용)
참고
Reference
이 문제에 관하여(데이터베이스 기초), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/lusf/items/9f4d89b9c48a95070a2f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)