-
[MSSQL] 10일 만에 마스터하는 MS SQL 실무 7, 8편Backend/database 2024. 2. 17. 13:28
https://www.youtube.com/watch?v=SJwE-Izf6uY&list=PL1VTPqi5Xgu9pr3oK_j4ranMGEn6fKMFp&index=9
1. SQL 데이터 타입
> 내가 사용하는 테이블에 존재하는 열들의 데이터 타입을 알아야 데이터를 어떻게 처리해야 하는지 알 수 있음

N > 정해진 크기 보다 문자열이 적으면 나머지를 공백으로 채운다.
VARCHAR > 정해진 크기보다 문자열이 적으면 문자열 크기만큼 된다.
NCHAR , NVARCHAR > 앞에 N이 붙은 이유 : 영어가 아닌 다른 국가 언어를 저장하기 위함
숫자 유형
> 실수도 정수로 통일한다면 성능 측면에서 좋지 않다.
DATETIME > 최소 단위가 3.33MS 이다.
DATETIME2 > 단위가 DATETIME 보다 세분화되어 있다.
2. SQL 데이터 처리 관련 내장 함수
문자열 관련 함수
중요
- SUBSTRING
- REPLACE
- CHARINDEX
LEN > 문자열의 길이 반환
LTRIM > 선형 공백 제거
RTRIM > 후행 공백 제거
UPPER > 모든 문자를 대문자로 표시
LOWER > 모든 문자를 소문자로 표시
LEFT > 왼쪽부터 글자 출력
RIGHT > 오른쪽부터 글자 출력
REVERSE > 거꾸로 출력
REPLACE > 특정 패턴을 찾아서 있으면 치환
REPLICATE > 특정 문자열 반복
SPACE(10) > 공백을 여러 개 출력
STR() > 정수형을 문자열로 변환
SUBSTRING > 문자열 검색 : 어디서부터 몇 자 검색
CHARINDEX > 특정 문자열의 위치값 검색
날짜 관련 함수
- DATEDIFF
- DATEADD
- YEAR
- MONTH
- DAY
GETDATE() > 현재를 반환 - 현재의 날짜와 시각을 DATETIME 유형으로 반환한다.
YEAR(GETDATE()) > 년도를 반환
MONTH(GETDATE()) > 월을 반환
DAY(GETDATE()) > 날짜를 반환
DATEDIFF(DAY, GETDATE(), '2012-12-25') > 두 날짜 간의 차이를 반환
DATEADD(MONTH, 3, GETDATE()) > 날짜를 더함 (현재 날짜에 3개월 더하기...)
형식 변환 함수
- CAST > 문자열을 숫자로 바꿈 (반대도 가능), 아주 기본적인 형 변환 작업만을 수행
- CONVERT > 사용자가 원하는 형태의 데이터로 변환 (추가 파라미터에 대한 공부 필요)
CONVERT와 CAST 는 변환하는 코드의 방식은 다르나 같은 작업을 수행한다.
MSSQL의 GO의 의미
MSSQL에서 GO는 일괄처리 BATCH의 단위라고 볼 수 있다.
SQL이 아니다. TOOL용 명령어이다.
이전에 쓰인 GO 다음부터 현재 GO 앞까지를 실행한다.
> 이전에 선언한 변수를 뒤에서 다시 사용하고 싶다면 GO 뒤에 다시 선언해줘야 한다.
ALTER TABLE 명령어
> 이미 존재하는 테이블을 변경할 때 사용
> 열을 추가하거나 삭제할 때 열의 타입 등을 바꾸거나 제약 조건 등을 추가할 때 사용
곧바로 GO 함수를 붙여서 실행
> 만들어진 내용 확인
INSERT
> 데이터를 넣는 기능
1. 칼럼을 지정해서 넣는 방법
2. 전체 칼럼에 한꺼번에 넣는 방법
// 칼럼을 지정해서 넣는 방법 INSERT INTO TABLE_NAME (CO1, COL2, COL3, ...) VALUES (VAL1, VAL2, VAL3, ...) // 지정된 열에 값을 입력 // 나머지 열에는 NULL 입력 // 전체 칼럼을 한꺼번에 넣는 방법 INSERT INTO TABLE_NAME VALUES (VAL1, VAL2, VAL3, ...) // COLUMN 개수와 일치하게 입력 // 어떤 COLUMN에 넣을 데이터인지 지정하지 않아도 됨제약 조건
> 테이블에 일종의 규칙을 지정
> 제약 조건을 위배하는 데이터는 테이블에 존재할 수 없음
> 테이블 생성 시 지정 가능
> ALTER 구문으로 변경 지정 가능
NOT NULL > NULL 값이 들어올 수 없다.
UNIQUE > 열에 있는 모든 값들은 서로 다른 값을 가져야 한다.
PRIMARY KEY > 해당 열이 PRIMARY KEY가 된다. PRIMARY KEY가 되면 NOT NULL이면서 UNIQUE 해야 한다.
FOREIGN KEY > 다른 테이블에 존재하는 열과 JOIN이 되었을 때 그 조합이 PRIMARY KEY가 되어야 한다.
DEFAULT > 열이 생성될 때 사용자가 지정하지 않으면 DEFAULT값이 지정된다.
중요 제약 조건
> 행을 유일하게 구분하게 만드는 열의 규칙
> 조합을 통해서도 설정 가능
ALTER TABLE TABLE_NAME ADD CONSTRAINT PK_TABLE_NAME PRIMARY KEY(COLUMN) -- 설정 ALTER TABLE TABLE_NAME DROP CONSTRAINT PK_TABLE_NAMEPRIMARY KEY로 설정된 열은 반드시 유일해야 하고 UNIQUE 값이 존재해야 한다.
또한 NOT NULL이어야 한다.
FOREIGN KEY
> 두 개 이상의 테이블이 존재할 때 의미가 있음
> 다른 테이블의 PRIMARY KEY 를 가리키는 열
ALTER TABLE TABLE_NAME ADD CONSTRAINT FK_TABLE_NAME FOREIGN KEY (COLUMN) PREFERENCES TABLE_NAME2(COLUMN) ALTER TABLE NAME DROP CONSTRAINT FK_TABLE_NAME> CUSTOMERS에 행 추가 시, PERSONID(FOREIGN KEY)에 해당하는 값이 CUSTOMERS에도 존재하는지를 확인하기 위함
'Backend > database' 카테고리의 다른 글
[MSSQL] 10일 만에 마스터하는 MS SQL 실무 9, 10 편 (0) 2024.02.18 [MSSQL] 10일 만에 마스터하는 MS SQL 실무 5,6 편 (0) 2024.02.15 [MSSQL] 10일 만에 마스터하는 MS SQL 실무_1~4편 (0) 2024.02.13