1. 테이블 생성 (Create Table)

CREATE TABLE 테이블명(
        컬럼명 타입(크기) NOT NULL, --NULL 값이 들어갈 수 없음
        컬럼명 타입 NULL DEFAULT(), --초기값 지정
        CONSTRAIN PK이름 PRIMARY KEY(컬럼명) --PK설정
)

컬럼 타입 : INT / NVARCHAR / VARCHAR / DATETIME

CREATE TABLE MY_TABLE(
        NO_EMP NVARCHAR(10)NOT NULL, -- NULL 값이 들어갈 수 없음
        NM_KOR NVARCHAR(40)NOT NULL, -- NULL 값이 들어갈 수 없음
        AGE INT NULL DEFAULT (0), --초기값 = 0
        TODAY DATETIME DEFAULT(GETDATE()), --초기값 현재날짜
)
--CONSTRAINT PK_MY_TABLE PRIMARY KEY(NO_EMP)--PK : NO_EMP )
CREATE TABLE MY_TABLE2(
        ID int PRIMARY KEY,
        DATA_JSON nvarchar NULL,
        CODE nvarchar(20) NOT NULL,
        IMAGE_PATH nvarchar(300) NOT NULL, 
        IMAGE_NAME nvarchar(100) NOT NULL, 
        IMAGE_TYPE nvarchar(5) NOT NULL, 
        IN_DATE datetime default(GETDATE()) NOT NULL
)

2. 테이블 수정 (Alter Table)

2.1. 테이블 컬럼 확인

SP_COLUMNS {테이블명}

SP_HELP {테이블명}
SP_COLUMNS MY_TABLE

SP_HELP MY_TABLE

2.2. 테이블 변경 (컬럼 추가)

ALTER TABLE 테이블명 ADD 컬럼명 컬럼 속성
ALTER TABLE MY_TABLE ADD NM_ENG NVARCHAR NOT NULL

2.3. 테이블 변경 (컬럼 수정)

ALTER TABLE 테이블명 ALTER 컬럼명 컬럼 속성
ALTER TABLE MY_TABLE ALTER COLUMN NM_ENG INT

2.4. 테이블 변경 (컬럼 삭제)

ALTER TABLE 테이블명 DROP COLUMN 컬럼명
ALTER TABLE MY_TABLE DROP COLUMN NM_ENG

3. 테이블 삭제 (Drop Table)

3.1. 테이블 삭제

DROP TABLE 테이블명
DROP TABLE MY_TABLE

4. json 데이터

4.1. json 데이터 삽입 (insert)

INSERT INTO {table_name} VALUES (ID, N'{}')
INSERT INTO MY_TABLE VALUES (1, N'{"EmployeeInfo": {
            "FirstName": "John",
            "LastName": "Doe",
            "Dob": "12-Jan-1970",
            "AnnualSalary": 85000
        }}')

4.2. json 특정 데이터 호출 (JSON_VALUE)

같은 속성이 여러개 있다면 인덱스로 접근 가능. 인덱스는 0부터 시작

SELECT JSON_VALUE(json_data, '$.EmployeeInfo.FirstName') FROM jsontest

4.3. JSON 형식으로 내보내기 (FOR JSON)

for json은 테이블에 있는 데이터들을 JSON 형식으로 내보내기 위한 함수

SELECT * FROM jsontest FOR JSON AUTO

4.4. json 필드 생성 예제

  • 테이블 생성

    CREATE TABLE TB_JSONTEST(
            ID int PRIMARY KEY,
            DATA_JSON nvarchar(max) NULL,
            SEQ nvarchar(11) NOT NULL,
            IMAGE_PATH nvarchar(300) NOT NULL, 
            IMAGE_NAME nvarchar(100) NOT NULL, 
            DIRECT_CODE nvarchar(2) NOT NULL, 
            IN_DATE datetime default(GETDATE()) NOT NULL
    )
    
  • 테이블내 데이터 추가

    INSERT INTO dbo.TB_JSONTEST (ID, DATA_JSON, SEQ, IMAGE_PATH, IMAGE_NAME, DIRECT_CODE)
    VALUES (2, N'{"EmployeeInfo": {"FirstName": "John", "LastName": "Doe", "Dob": "12-Jan-1970", "AnnualSalary": 85000}}', 'A12345', 'D:\image\', 'D:\image\image001.jpg', 'V')
    
  • 테이블 데이터 조회

    select * from TB_JSONTEST
    
  • 테이블 삭제

    DROP TABLE TB_JSONTEST