본문 바로가기
데이터베이스/MS-SQL

MSSQM 기본문법

by MonoSoft 2022. 12. 26.
728x90
반응형

MSSQM 기본문법

 

 

SQL문은 대소문자를 구분하지 않는다 
단.데이타는 대문자와 소문자를 구분함
주석 처리는  /* .... */ 또는 한줄  -- 사용

 

 

SYSOBJECTS 테이블 => 데이타베이스의 모든 정보가 보관됨

SYSOBJECTS의 TYPE 칼럼으로 

'U'=사용자 테이블 

'P'=저장 프로시저

'K'=프라이머리 키 

'F'=포린 키

'V'=뷰

'C'=체크 제약 등 

오브젝트 이름과 정보를 알 수 있다

 

데이타 검색

/* USE 문을 사용한 데이타베이스 선택 */

USE 데이타베이스명 

 

/* 모든 칼럼 불러오기 */

SELECT * FROM 데이블명 

 

 /* 상위 n개의 데이타만 가져오기 */

SELECT TOP n * FROM 테이블명

 

/* 특정 칼럼 가져오기 */

SELECT 칼럼1, 칼럼2, 칼럼3 FROM 테이블명

 

 /* 칼럼에 별명 붙이기 */

SELECT 칼럼1 별명1, 칼럼2 AS 별명2 FROM 테이블명

 

 /* 칼럼 별명에 스페이스가 들어갈 경우는 작은따옴표 사용 */

SELECT 칼럼3 '별 명3' FROM 테이블명

 

 /* 중복되지 않는 데이타만 가져오기 */

SELECT DISTINCT 칼럼 FROM 테이블명

 

/* 데이타는 오름차순으로 재배열되며 DISTINCT를 

사용하면 재배열이 될때까지 데이타가 리턴되지 않으므로 수행 속도에 영향을 미친다 */

 

/* 조건에 해당하는 데이타 가져오기 */

SELECT * FROM 테이블명 WHERE 조건절 

 

** 조건식 >>  칼럼=값, 칼럼!=값, 칼럼>값, 칼럼>=값, 칼럼<값, 칼럼<=값

 

** 문자열  ''(작은따옴표) 사용

** 날짜 비교 >>  'yy-mm-dd' 형식.     예>>(날짜='1992-02-02', 날짜>'1992-02-02')

 

 /* 칼럼이 x>=와 y<=사이의 데이타 가져오기 */

SELECT * FROM 테이블명 WHERE 칼럼 BETWEEN x AND y

 

/* 칼럼이 a이거나 b인 데이타 가져오기 */

SELECT * FROM 테이블명 WHERE 칼럼 IN (a, b...) 

 

/* 칼럼이 패턴과 같은 데이타 가져오기 */

SELECT * FROM 테이블명 WHERE 칼럼 LIKE '패턴' 

 

** 패턴에 사용되는 기호는 %, _가 있다

'k%'(k로 시작되는), '%k%'(중간에 k가 있는), '%k'(k로 끝나는)

'p_'(p로 시작하는 2자리), 'p___'(p로 시작하는 4자리), '__p'(3자리 데이타중 p로 끝나는)

 

Like 

/* 칼럼이 NULL인 데이타 가져오기 */

SELECT * FROM 테이블명 WHERE 칼럼 IS NULL 

 

 /* 칼럼이 x와 y 사이가 아닌 데이타 가져오기 */

SELECT * FROM 테이블명 WHERE 칼럼 NOT BETWEEN x AND y

 

/* 칼럼이 a나 b가 아닌 데이타 가져오기 */

SELECT * FROM 테이블명 WHERE 칼럼 NOT IN (a, b...) 

 

/* 칼럼이 패턴과 같지 않은 데이타 가져오기 */

SELECT * FROM 테이블명 WHERE 칼럼 NOT LIKE '패턴' 

 

/* 칼럼이 NULL이 아닌 데이타 가져오기 */

SELECT * FROM 테이블명 WHERE 칼럼 IS NOT NULL 

SELECT * FROM 테이블명 WHERE 칼럼>=x AND 칼럼<=y 

SELECT * FROM 테이블명 WHERE 칼럼=a or 칼럼=b

SELECT * FROM 데이블명 WHERE 칼럼1>=x AND (칼럼2=a OR 칼럼2=b)

 

/*복수 조건을 연결하는 연산자는 AND와 OR가 있다

AND와 OR의 우선순위는 AND가 OR보다 높은데 우선 순위를 바꾸고 싶다면 ()을 사용*/

 

/* 칼럼을 오름차순으로 재배열하기 */

SELECT * FROM 테이블명 ORDER BY 칼럼 

SELECT * FROM 테이블명 ORDER BY 칼럼 ASC 

SELECT * FROM 테이블명 ORDER BY 칼럼 DESC --내림차순

SELECT * FROM 테이블명 ORDER BY 칼럼1 ASC, 칼럼2 DESC --복수 칼럼 재배열하기

SELECT * FROM 테이블명 ORDER BY 1 ASC, DESC 3 /--칼럼 순서로 재배열하기

 

/*  기본적으로 SELECT 문에서는 출력순서가 보증되지 않기 때문에

데이타의 등록 상태나 서버의 부하 상태에 따라 출력되는 순서가 달라질 수 있다

따라서 출력하는 경우 되도록이면 ORDER BY를 지정 */

 

연산자

** 1순위는 수치 앞에 기술되는 + - 같은 단항 연산자

2순위는 사칙 연산의 산술 연산자인 * / + -

3순위는 = > 비교 연산자

4순위는 AND OR 같은 논리 연산자

()을 붙이면 우선 순위를 바꿀수 있다

 

1. SELECT 문의 연산 

SELECT 칼럼1, 칼럼2, 칼럼3+칼럼4 AS '별명' FROM 테이블명 

2. ORDER BY 구의 연산 

SELECT 칼럼1, 칼럼2, 칼럼3+칼럼4 AS '별명' FROM 테이블명 ORDER BY 칼럼3+칼럼4 DESC

SELECT 칼럼1, 칼럼2, 칼럼3+칼럼4 AS '별명' FROM 테이블명 ORDER BY 3 DESC

3. WHERE 구의 연산 

SELECT 칼럼1, 칼럼2, 칼럼3+칼럼4 AS '별명' FROM 테이블명 WHERE 칼럼2>=(칼럼3+칼럼4)

4. NULL 연산 

SELECT 칼럼1, 칼럼2, ISNULL(칼럼3, 0) + ISNULL(칼럼4, 0) AS '별명' FROM 테이블명

** 수치형 데이타와 NULL값과의 연산 결과는 항상 NULL이다

만약 NULL 값을 원치 않으면 ISNULL(칼럼, 기준값) 함수를 사용해서 기준값을 변환시킨다 

 

5. 날짜 연산 

SELECT GETDATE() /* 서버의 현재 날짜를 구한다 */

SELECT 날짜칼럼, 날짜칼럼-7 FROM 테이블명

SELECT 날짜칼럼, 날짜칼럼+30 FROM 테이블명

SELECT 날짜칼럼, DATEDIFF(day, 날짜칼럼, GETDATE()) FROM 테이블명

** 날짜의 가산과 감산은 + -로 할 수 있다

날짜와 날짜 사이의 계산은 DATEDIFF(돌려주는값, 시작날짜, 끝날짜) 함수를 사용한다

6. 문자 연산

SELECT 칼럼1 + 칼럼2 FROM 테이블명

SELECT 칼럼 + '문자열' FROM 테이블명

SELECT 칼럼1 + '문자열' + 칼럼2 FROM 테이블명

** 기본 연결은 문자와 문자이고 문자와 숫자의 연결은 CONVERT 함수를 사용해야 한다

 

728x90
반응형

'데이터베이스 > MS-SQL' 카테고리의 다른 글

[공통] 테이블데이타 오류시 복구  (0) 2022.12.28
[SQL2005] 로그파일재생성  (0) 2022.12.27
MSSQL 인덱스란?  (1) 2022.12.23
MS-SQL 트리거  (0) 2022.12.22
MSSQL HASHBYTES  (0) 2022.12.21

댓글