SQL 기초 3

 | SQL
2009. 6. 20. 03:17
출처 모든 삶의 기록 | 걸투신
원문 http://blog.naver.com/nufe2002/110003759096


조건에 맞는 행 가져오기
 
조건에 맞는 행을 가져오려면 WHERE 절을 사용한다
SELECT title_id, qty FROM sales
중에서 수량이 20 이상인 것만 가져오려면
SELECT title_id, qty FROM sales
WHERE qty >= 20
 
 
 
비교
 
=, >, <, >=, <=, <>, !=, !>, !<
 
 
 
NULL
 
만약 NULL값에 대해 어떤 처리를 하고자 한다면 IS [NOT] NULL 또는 =NULL 등으로 조건을 줄수있다
SELECT title_id, price
FROM titles
WHERE price IS NULL
 
 
 
정렬
 
원하는 컬럼에 대하여 정렬을 하고 싶다면 ORDER BY를 사용한다
SELECT title_id, qty FROM sales
ORDER BY qty
 
 
 
몇 개만 가져오기 (TOP n)
 
전체 중 일부분의 행만 가져오고 싶다면 TOP n을 사용할 수 있다
 
SELECT TOP 6 title_id, qty
FROM sales
 
같은 순위의 것을 모두 가져오고 싶다면 WITH TIES를 사용한다
 
SELECT TOP 6 WITH TIES title_id, qty
FROM sales
ORDER BY qty DESC
 
 
 
범위
 
범위를 주고 데이터를 가져올 때는 BETWEEN을 사용한다
 
SELECT title_id, qty
FROM sales
WHERE qty BETWEEN 10 AND 20
ORDER BY qty
 
 
 
목록
 
특정한 값들만 가져오려면 IN을 사용한다
 
SELECT title_id, qty
FROM sales
WHERE title_id IN ('BU1032', 'BU1111', 'MC3021')
 
 
 
문자열 / LIKE와 패턴 매칭
 
문자열의 비교에 사용되는 pattern matching이라는 것이 있다
패턴 매칭에 사용되는 와일드 카드에 대해 살펴보자
_ : 어떤 것이든 한 문자가 와야한다
% : 아무것도 없는 경우를 포함하여 어떤 것이라도 상관없다
[] :  []안에 있는 글자들
[^] : ^ 다음에 있는 글자는 제외한 다른 것이 와야한다
 
ex)
book_ : books / booka/ booky
book% : book / books / booked
%book% : abook / abooks / book
[st]ring : sing / ting
[b-f]ing : bing / cing / ding / eing / fing
M[^c]% : Mike  / Many / Mickey
이것을 like와 함께 사용하면 된다
 
SELECT title_id, title
FROM titles
WHERE title LIKE '%computer%'
 
 
 
중복된 행 - DISTINCT
 
둘 이상의 중복된 데이터가 있을때 DISTINCT를 사용한다
 
SELECT DISTINCT title_id
FROM sales
ORDER BY title_id
 
 
 
WHERE 절을 사용할 때 고려할 것
 
*를 사용하지 말것 - 많은 부하를 가져오게 된다
 
연산자 앞에는 컬럼만 오도록한다 - WHERE절에 사용하는 컬럼은 무조건 연산자 왼쪽에 두고 더 이상의 가공을 하지 않도록 하는 것이 좋은 습관이다
 
적잘한 ()와 띄워쓰기

'SQL' 카테고리의 다른 글

xp_cmdshell (MS SQL Server 2000)  (0) 2009.08.03
TABLE 정리 스크립트  (0) 2009.07.24
프로시저에서 DTS Package 실행하기  (0) 2009.07.23
SQL 기초 2  (0) 2009.06.20
SQL 기초 1  (0) 2009.06.19
Posted by ProjectGhost

SQL 기초 2

 | SQL
2009. 6. 20. 03:13
출처 모든 삶의 기록 | 걸투신
원문 http://blog.naver.com/nufe2002/110003759093

숫자에 대한 연산자
 
형식)
+, -, *, /, %, (, ) 
숫자에 대한 산술적 연산 함수 
ABS : 절대값(absent)
SIGN : 양수, 음수 또는 0
ACOS, ASIN,ATAN,ATN2, COS, SIN, COT, TAN : 수학 시간에 사용하던 함수들
DEGREES : 라디안을 각도로 변환
EXP : 지정된 값의 지수 값
LOG/ LOG10 : 주어진 값의 로그
RADIANS : 각도를 라디안으로 변환
POWER : y승
SQARE : 제곱
SQRT : 제곱근
PI : 3.141592653589793 상수값
CEILING : 주어진 값보다 크거나 같은 가장 작은 정수(절상)
FLOOR : 주어진 값보다 작거나 같은 가장 큰 정수(절사)
RAND : 0과 1 사이의 임의의 부동 소수점 수. 옵션으로 정수의 초기값을 줄 수 있다
ROUND : 반올림
 
 
문자에 대한 함수
 
+ : 둘 이상의 문자를 연결한다
ASCII : 가장 왼쪽 문자에 대한 ASCII 값
CHAR : ASCII 값에 대한 문자
CHARINDEX : pattern의 시작 지점을 돌려준다
DIFFERENCE : 두 문자열을 비교하여 비슷한 정도를 0에서 4 사이의 값으로 돌려준다
LEFT : 왼쪽에서 주어진 숫자만큼의 자리를 돌려준다
LEN : 주어진 문자의 길이를 돌려준다
LOWER : 소문자로 변환한다
LTRIM : 앞(왼쪽)에 있는 빈칸을 모두 삭제한다
NCHAR : 주어진 정수값에 대한 유니코드 무자를 돌려준다
PATINDEX : 표현식에서 패턴이 처음 나타나는 곳을 돌려준다. 패턴이 없으면 0을 돌려준다
REPLACE : 표현식 1의 문자중에서 표현식 2의 문자를 표현식 3의 문자로 바꾼다
QUOTENAME : 문자열에 대한 제대로 구분자가 붙은 유니코드 문자를 돌려준다
REPLICATE : 지정된 횟수만큼 표현식을 반복한다
REVERSE : 문자 표현식을 거꾸로 돌려준다
RIGHT : 전체 문자열 중 오른쪽에서 정수 표현식만큼으로부터 시작되는 문자열
RTRIM : 뒤(오른쪽)에 오는 빈 칸을 삭제한다
SOUNDEX : 두 문자열의 영문 발음이 비슷한 정도를 평가하여 네 자리 SOUNDEX 코드를 돌려준다. 한글에서는 동작하지 않는다
SPACE : 빈칸을 정수 표현식만큼 반복한다. 음수이면 NULL을 돌려준다
STR : 숫자로부터 변환된 문자열을 돌려준다
STUFF : char_exp1의 start로부터 length 만큼의 문자를 지우고, 그 자리에 char_expr2를 삽입한다
SUBSTRING : 문자나 이진 문자열의 일부분을 돌려준다
UNICODE : 주어진 문자열의 첫 문자에 대한 유니코드 값을 돌려준다
UPPER : 대문자로 바꾼다
 
 
날짜에 대한 함수
 
GETDATE : 현재 날자와 시간
DATEADD : datepart 부분에 number값을 더한다
DATEDIFF : 두 날짜 사이의 datepart 값
DATENAME : date에 대한 datepart를 이름으로 돌려준다
DATEPART : date에 대해 지정된 datepart를 돌려준다
DAY : DATEPART(DAY, date)와 같다
MONTH : DATEPART(MONTH, date)와 같다
YEAR : DATEPART(YEAR, date)와 같다
 
 
시스템 함수
 
APP_NAME : 현재 세션에서 사용하는 응용 프로그램에서 설정된 이름을 돌려준다
COALESCE : 처음으로 나타나는 NULL이 아닌 표현식을 돌려준다. 복잡한 CASE문을 대체할 수 있다
COLLATION PROPERTY : 지정된 데이터 정렬의 속성을 반환한다
CURRENT_TIME_STAMP / CURRENT_USER : 각각 현재의 timestamp나 사용자 정보를 돌려준다
COL_NAME : 컬럼 이름을 돌려준다
COL_LENGTH : 컬럼 길이를 돌려준다
DATALENGTH : 표현식에 나타난 데이터의 실제 길이
DB_ID : database ID.
DB_NAME : 데이타베이스 이름
fn_helpcollations : SQL이 지원하는 모든 데이터 정렬 목록을 반환한다
FORMATMESSAGE : raiserror와 비슷하지만 변수에 메시지를 저장하고 나중에 사용할 수 있다
GETANSINULL : 해당 데이터베이스의 NULL 허용 기본값
HOST_ID : host process ID#
HOST_NAME : 사용하는 호스트 컴퓨터 이름
IDENT_CURRENT : 임의의 세션과 범위에서 지정한 테이블에 생성된 마지막 ID 값
IDENT_INCR : identity 컬럼을 만들때 지정된 증가값
IDENT_SEED : identity 컬름을 만들 때 지정된 초기값
INDEX_COL : 인덱스된 컬럼 이름
ISDATE : datetime이나 smalldatetime 자료형인지 아닌지 검사한다. 맞으면1 아니면0
ISNULL : 표현식이 NULL이면 value로 바꾼다
ISNUMERIC : 주어진 변수나 varchar형의 컬럼이 numeric인지 검사한다
NULLIF, NULL : 표현식1이 표현식2와 같다면 돌려준다 아니면 표현식1을 돌려준다
OBJECT_ID : database object ID 번호를 돌려준다
OBJECT_NAME : database object name
PARSENAME : 개체 이름에서 지정된 부분을 반환한다
PERMISSIONS :  명령문, 개체 또는 현재 사용자의 컬럼 사용 권한이 들어있는 값을 반환한다
SERVERPROPERTY : 서버 인스턴스에 대한 속성 정보를 반환한다
STATS_DATE : 인덱스가 마지막으로 update된 날짜를 돌려준다
 
 
보안 함수
 
HAS_DBACCESS : 사용자가 지정된 데이터베이스를 액세스 할 수 있는지를 알려준다
IS_MEMBER : 주어진 그룹이나 롤의 멤버인지 알려준다
IS_SRVROLEMEMBER : 주어진 로긴 또는 현재 로긴 ID가 해당하는 서버롤의 멤버인지 알려준다
SUSER_ID : server user(login)의 ID를 돌려준다
SUSER_NAME : server user(login)의 이름을 돌려준다
SUSER_SID : server user의 SID(NT에서 사용하는 SID)를 돌려준다
SUSER_SNAME : NT Login ID명을 돌려준다
USER_ID : user의 ID 번호를 돌려준다
USER : 현재의 유저 이름을 돌려준다
USER_NAME : 주어진 user의 이름을 돌려준다

'SQL' 카테고리의 다른 글

xp_cmdshell (MS SQL Server 2000)  (0) 2009.08.03
TABLE 정리 스크립트  (0) 2009.07.24
프로시저에서 DTS Package 실행하기  (0) 2009.07.23
SQL 기초 3  (0) 2009.06.20
SQL 기초 1  (0) 2009.06.19
Posted by ProjectGhost

SQL 기초 1

 | SQL
2009. 6. 19. 11:24

출처 :  http://blog.naver.com/nufe2002/110003759100

기본적인 SELECT 문

SELECT 문의 가장 기본은 SELECT/FROM/WHERE이다. 복잡한 문장을 작설할 때도 일단 SELECT/FROM/WHERE를 작성해 놓고 나머지 부분을 채우는 것이 좋다

형식)
SELECT 나열할 컬럼 목록
FROM    가져올 테이블(또는 그 비슷한것)


[WHERE 가져올 행의 조건]

1. SELECT 이후에는 가져올 컬림이나 표현식을 나열하면 된다. 표현식이란 컬럶 그 자체일 수도 있고,
    컬럼을 가공 한 것일 수도 있다. 모든 컬럼을 다 가져온다면 *을 사용한다

2. FROM 이후에는 어떤 테이블로부터 데이터를 가져오는지 지시한다

3. WHERE 절 뒤에는 어떤 행을 가져올 것인지를 지시한다. 생략하면 모든 행을 다 가져온다
    ex) SELECT * FROM titles

변수
변수를 선언할때는 다른 언어에서 변수를 선언하는 것과 큰 차이가 없다

형식)
DECLARE @ 변수명     자료형

변수 이름은 항상 @하나가 따라와야한다. @을 두개 붙인 변수는 시스템 함수로 사용자가 선언하거나 값을
대입할 수 없다

여러개의 변수를 선언할때는
DECLARE @ 변수명      자료형, @변수명     자료형
과 같은 방법으로 계속 적어주면  된다

변수에 값을 초기화 하거나 입력할 때는

SET @ 변수명 = 값

같이 한다. 그러나 여러개 일때는

SET @ 변수명 = 값

SET @ 변수명 2 = 값

과 같은 식으로 계속 적어주어야 하며, 변수의 값을 가져올때는

SELECT @ 변수명

과 같이 사용한다

ex)
DECLARE @id INT, @name CHAR(10)
SET @id = 0
SET @name = '장경환'

SELECT @id, @name



자료형

정수)
Biglint : 8바이트 정수. -2의 63제곱 부터 2의 63제곱 -1까지의 수
Int : 4바이트 정수. -2의 31제곱 부터 2의 31제곱 -1까지의 수
Smallint : 2바이트 정수. -2의 15제곱 부터 2의 15제곱 -1까지의 수
Tinyint : 1바이트 정수. 0부터 255까지의 수
Bit : 1비트의 Boolean. 0또는1

정확한숫자)
Numeric, decimal : 둘다 같은 동의어. -10의 38제곱 -1 에서 10의 38제곱 -1 까지의 수

부정확한숫자)
float : 부동 소수점 값. -1.79E + 308에서 1.79E + 308까지
real : 부동 소수점 값. -3.40E + 38에서 3.40E + 38까지

날짜)
Datetime : 8바이트의 날짜와 시간. 1753년 1월 1일에서 9999년 12월 31일까지. 밀리 초까지 나타낸다
smalldatetime : 4바이트의 날짜와 시간. 1900년 1월 1일에서 2079년 6월 6일까지. 1분까지 나타낸다

문자)
char, varchar : 8000자 이하의 문자
nchar, nvarchar : 4000자 이하의 유니코드 문자
Text : 8000자가 넘는 문자. 2의 31제곱 -1자까지 저장 가능
NText : 4000자가 넘는 유니코드 문자. 2의 30제곱 -1자까지 저장 가능

이진)
binary, varbinary : 8000 바이트 이하의 이진 값
Image : 8000 바이트가 넘는 그림 등의 바이너리값

화폐)
Money : 8바이트의 화폐
smallmoney : 4바이트의 화폐

 특수)
table : 테이블 자체를 변수로 선언할 수 있다
Sql_variant : text, ntext, and iamge data types, timestamp 자료형을 제외한
                  나머지 모든 자료형을 다 저장 가능하다
Cursor : 커서 이름을 변수로 처리
uniqueidentifier : 전역 유일 구분자
timestamp : 데이터베이스 안에서 유일한 수


자료형 바꾸기
CONVERT() / CAST()
CONVERT()는 자료형을 바꾸는 함수로 다양한 용도로 사용된다.
이 기능은 SQL 서버의 고유 기능이기 때문에 ANSI 호환의 CAST로는 할 수 없다

CONVERT (datatype[(length)], expression [, style])
,style은 날짜 함수에서 사용된다.

'SQL' 카테고리의 다른 글

xp_cmdshell (MS SQL Server 2000)  (0) 2009.08.03
TABLE 정리 스크립트  (0) 2009.07.24
프로시저에서 DTS Package 실행하기  (0) 2009.07.23
SQL 기초 3  (0) 2009.06.20
SQL 기초 2  (0) 2009.06.20
Posted by ProjectGhost

BLOG main image
by ProjectGhost

공지사항

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

Total :
Today : Yesterday :