데이터 정렬은 ORDER BY절을 이용한다.

LastName을 기준으로 정렬한 예시이다. 기본적으로 A-Z 오름차순 순서로 정렬된다.

ORDER BY LastName의 뒤에 ASC를 붙여 오름차순임을 명시적으로 표현할 수 있다. (내림차순은 DSC다.)

 

같은 열에 같은 데이터를 가진 항목이 존재하면, 이차 정렬을 해줄 수 있다.

같은 BROWN 성을 가진 사람이 있어 FirstName으로 이차정렬을 해주었다.

먼젓번의 예시와 다르게 Carla가 Gregory의 위로 올라왔다.

위와 같이 별칭으로 묶은 열도 별칭을 사용해 바로 정렬이 가능하다.

 

모든 데이터베이스는 사용자가 데이터 정렬 설정을 바꿀 수 있다.

데이터베이스마다 다르지만, 기본적으로 공통되는 사항이 있다.

1. 데이터가 오름차순 정렬되면 NULL값이 가장 먼저 나타난다.

2. 대소문자 구별이 없다.

3. 값을 구성하는 각각의 문자는 왼쪽에서부터 오른쪽으로 평가한다.

 

'DB > 관계형 DB' 카테고리의 다른 글

패턴 매칭(Like)/ 와일드카드  (0) 2021.04.14
선택 기준 (WHERE, TOP)  (0) 2021.04.08
숫자함수(ROUND,RAND,PI,POWER)/변환함수(CAST)  (0) 2021.04.08
날짜/시간 함수  (0) 2021.03.31
함수  (0) 2021.03.31

ROUND

ROUND 함수는 숫자는 반올림하는 함수다.

ROUND(숫자, 반올림할 자리수)가 기본적인 형태이다.

ROUND(123.456, 3) => 123.456

ROUND(123.456, 2) => 123.460

ROUND(123.456, 1) => 123.500

ROUND(123.456, 0) => 124.000

ROUND(123.456, -1) => 120.000

ROUND(123.456, -2) => 100.000

이런 식으로 음수라면 소수점자리 왼쪽의 자릿수, 양수라면 소수점자리 오른쪽의 자릿수를 반올림한다.

 

RAND

RAND(시드)의 형태를 가지고있다. (기본적으로 0-1사이의 float를 return)

다른 언어와 마찬가지로 완벽한 랜덤의 개념은 아니고, 사용법은 같다.

ex) 5이상 10 이하의 숫자 -> RAND() * 5 + 5

 

PI

PI()는 말 그대로 파이의 값을 리턴한다.(3.141592...)

 

POWER

POWER는 지수를 포함하 숫자값을 명시하기 위해 사용된다.

POWER(숫자, 지수)가 기본적인 형태이다.

POWER(5, 2)는 5^2, 25를 리턴한다.

POWER(25, .5)를 입력하면 5를 리턴한다. 

 

CAST

CAST는 데이터 형식을 다른 데이터 형식으로 변환한다.

CAST(Expression AS DataType) 의 형태를 가진다.

문자열을 DATETIME형으로 변환하는 예이다.

날짜 형식은 일반적으로 사용하는 날짜 표기 형식은 대부분 변환 가능하다.(2017/04/11, 04/11/2017, 04.11.2017 등)

 

ISNULL

ISNULL은 첫번째 인자가 NULL일 경우, 두번째 인자를 리턴한다.

형식은 ISNULL(첫번째 인자, 두번째 인자)이다.

ISNULL을 이용해 Weight열의 NULL값을 가진 항목을 UNKNOWN으로 치환해주었다.

Weight열은 int형이기때문에 'UNKNOWN'을 넣어주려면 CAST로 VARCHAR로 형변환을 해주어야한다.

'DB > 관계형 DB' 카테고리의 다른 글

선택 기준 (WHERE, TOP)  (0) 2021.04.08
데이터 정렬(ORDER BY)  (0) 2021.04.08
날짜/시간 함수  (0) 2021.03.31
함수  (0) 2021.03.31
계산영역과 별칭  (0) 2021.03.25

GETDATE()

현재 날짜와 시간을 가진 표현을 반환한다.

반환형은 datetime이다.

DATEPART(datepart, datevalue)

datevalue의 datepart에 해당하는 값을 반환한다.

weekday는 일요일부터 세어 해당 날짜가 몇번째 요일인지 반환한다.

DATEDIFF(datePart, startDate, endDate)

두 datetime간 날짜 차이를 반환하는 함수이다.

 

'DB > 관계형 DB' 카테고리의 다른 글

데이터 정렬(ORDER BY)  (0) 2021.04.08
숫자함수(ROUND,RAND,PI,POWER)/변환함수(CAST)  (0) 2021.04.08
함수  (0) 2021.03.31
계산영역과 별칭  (0) 2021.03.25
SELECT  (0) 2021.03.25

RIGHT(string, number) / LEFT(string, number)

해당 string의 오른쪽/왼쪽에서 number번째까지의 문자열을 출력한다.

첫번째 인자에는 직접 문자열을 넣을 수도 있고, 열 이름을 넣을 수도 있다.

유의할 점은, 문자열의 첫번째를 1부터 센다. 그리고 빈 칸도 포함되어 세어진다.

SUBSTRING(string, startPosition, number)

해당 string의 중간에 있는 데이터를 선택할 수 있다.

startPosition에 있는 문자부터 number만큼 선택한다.

마찬가지로 첫번째 인자에 열의 이름을 넣을수도 있다.

UPPER(string)/LOWER(string)

소문자를 대문자로(UPPER) 대문자를 소문자로(LOWER)만들어주는 함수이다.

합성 함수

다른 언어에서 함수를 사용하듯이 sql에서도 함수 안에 함수를 합해서 사용할 수 있다.

함수의 실행 순서는 안쪽의 함수부터 실행된다.

이 경우에는 LTRIM(UPPER('    thewhitegoat)) -> LTRIM('    THEWHITEGOAT') -> 'THEWHITEGOAT' 순으로 실행되었다.

'DB > 관계형 DB' 카테고리의 다른 글

숫자함수(ROUND,RAND,PI,POWER)/변환함수(CAST)  (0) 2021.04.08
날짜/시간 함수  (0) 2021.03.31
계산영역과 별칭  (0) 2021.03.25
SELECT  (0) 2021.03.25
데이터 형식  (0) 2021.03.24

아이패드와 친해지려고 그렸던거...

여러모로 아직 아이패드가 데스크탑 툴을 대체하기엔 부족한면이 많은것같다 

그래도 간단한 스케치나 낙서정도는 하기 딱 좋은 느낌이다.

계산 영역(Calculated Field)

계산 영역은 DB에서 가져온 각각의 데이터 아이템에 대해 계산을 하는 기법을 말한다.

계산 영역을 사용하면 다음과 같은 작업이 가능하다.

  1. 특정 단어나 값을 보여준다.
  2. 한 열 또는 여러 열에 대해 계산한다.
  3. 특정 단어나 특정 값들을 여러 열과 결합할 수 있다.

 

첫번째로 문자 값이나 숫자를 추가할 수 있다.

원하는 위치에 자신이 넣고싶은 문자나 숫자를 넣으면 결과값에 표시된다.

단, update를 하지 않았으므로 이것이 기존 데이터베이스에 영향을 미치지 않고 표기만 할 뿐이다.

두번째로 데이터간 연산 및 필드연결이 가능하다.

FirstName + ' ' + LastName과 같이 문자열간 연결이 가능하고 숫자 데이터간의 연산도 가능하다.

연산 기호는 흔히 쓰이는 +, -, *, /, % 등이 있다.

 

별칭(Aliases)

AS 키워드로 해당 열에 별칭을 부여할 수 있다.

이는 기존에 존재하던 열에 붙일수도 있고, 새로 생성된 계산 영역에 붙일수도 있다.

 QuantityPurchased를 Quantity로, 계산된 결과값에 Price라는 별칭을 붙여주었다.

별칭은 테이블에도 붙일 수 있다.

테이블에 별칭을 붙이고 (별칭).(열)의 방식으로 데이터를 불러올 수 있다.

 

 

'DB > 관계형 DB' 카테고리의 다른 글

날짜/시간 함수  (0) 2021.03.31
함수  (0) 2021.03.31
SELECT  (0) 2021.03.25
데이터 형식  (0) 2021.03.24
기본키와 외래키  (0) 2021.03.24

+ Recent posts