'SQL'에 해당되는 글 6건

  1. 2017.06.15 뷰와 저장 프로시저 - 2
  2. 2017.06.15 뷰와 저장 프로시저 - 1
  3. 2017.06.11 SQL 기본 - 4
  4. 2017.06.11 SQL 기본 - 3
  5. 2017.05.24 SQL 기본 - 2
  6. 2017.05.24 SQL 기본
SQL2017. 6. 15. 23:47

1. 저장프로시저 생성하기 

저장 프로시저 

     - 자주 사용하는 쿼리문을 하나로 묶어서 저장 

     - 필요할 때 저장 프로시저의 이름을 호출하는 것만으로 쿼리문을 실행 



 저장 프로시저 형식

CREATE { PROC | PROCEDURE } [schema_name.] 

procedure_name [ ; number ]  

    [ { @parameter [ type_schema_name. ] data_type }  

        [ VARYING ] [ = default ] [ [ OUT [ PUT ] ] ] 

    ] [ ,...n ]  

[ WITH <procedure_option> [ ,...n ] ] 

[ FOR REPLICATION ]  

AS { <sql_statement> [;][ ...n ] | <method_specifier> } 

[;]     


- EXEC라는 명령어를 사용 

EXEC procedure_name 


저장 프로시저 생성하기    

DROP PROCEDURE usp_STUDENT 

CREATE PROCEDURE usp_STUDENT 

AS 

SELECT STU_ID, STU_NAME, AGE, STU_EMAIL, COU_ID 

FROM STUDENT 

WHERE STU_EMAIL IS NOT NULL 

ORDER BY STU_NAME 


- 저장 프로시저를 실행 

EXEC usp_STUDENT 



ALTER PROCEDURE 

- 저장 프로시저 수정하기 

ALTER PROCEDURE usp_STUDENT 

AS 

SELECT STU_ID, STU_NAME, AGE, STU_EMAIL, 

COU_ID, SEX 

FROM STUDENT 

WHERE STU_EMAIL IS NOT NULL 

ORDER BY STU_NAME DESC 

EXEC usp_STUDENT 


DROP PROCEDURE문을 사용 

- 저장 프로시저 삭제하기 

DROP PROCEDURE usp_STUDENT 

 

EXEC usp_STUDENT 




'SQL' 카테고리의 다른 글

뷰와 저장 프로시저 - 1  (0) 2017.06.15
SQL 기본 - 4  (0) 2017.06.11
SQL 기본 - 3  (0) 2017.06.11
SQL 기본 - 2  (0) 2017.05.24
SQL 기본  (0) 2017.05.24
Posted by 멜데스
SQL2017. 6. 15. 23:44


뷰(View) 기본 형식 

CREATE VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ]  

AS select_statement [ ; ] 


뷰(View) 정의하기 

SELECT * INTO STU_COPY 

FROM STUDENT  


CREATE VIEW STU_VIEW30 

AS 

(SELECT문 앞에 위 두 줄만 추가하면 뷰가 생성된다. )

====================================

SELECT STU_ID, STU_NAME, COU_ID 

FROM STU_COPY 

WHERE COU_ID=30CREATE VIEW STU_VIEW30 

AS 



 - SELECT *  FROM 다음에 테이블 명 대신에 뷰 이름을 기술 

SELECT * FROM STU_VIEW30 

- 뷰 사용 


뷰(View) 의 내부 구조 

-질의문을 수행할 수 있는 이유 

                       SELECT * FROM STU_VIEW30 

 

-런 테이블 및 스토어드 프로시저를 이용하여 직접 뷰의 형식을 보는 방법

                      EXEC SP_HELPTEXT STU_VIEW30 

 

 

 

스토어드 프로시저 SP_HELPTEXT 


뷰에 INSERT문으로 데이터 추가하기 

-STU_VIEW30에 행을 하나 추가 

INSERT INTO STU_VIEW30 

VALUES(200, ‘전수빈’, 30) 

-뷰로 데이터 추가 


INSERT문으로 뷰에 새로운 행을 추가 

SELECT * FROM STU_VIEW30 

- 뷰로 데이터 조회 


INSERT문에 의해서 뷰에 추가한 행이 테이블에도 존재확인 

SELECT * FROM STU_COPY 

- 뷰로 기본 테이블에 데이터 추가 


뷰의 성격을 파악하기 위해서 테이블과 비교 

SELECT * FROM STUDENT 


STU_COPY에 추가한 행의 내용은 STUDENT 테이블에 아무런 영향을 주지 못한다. 

두 테이블은 별개의 저장 공간에 데이터를 저장하고 있기 때문이다.  


뷰를 만든 후에 뷰를 수정할 때 

   - ALTER VIEW문을 이용하여 수정 

뷰가 더 이상 필요가 없을 때 

    - DROP VIEW문을 이용 

 

뷰 수정하기 

   - 현재 사용 중인 뷰를 수정하려면 ALTER VIEW를 사용 

   - ALTER VIEW 기본형식 


  ALTER VIEW view_name [(column [,..n])] 

[WITH ENCRYPTION] 

AS 

select_statement 






'SQL' 카테고리의 다른 글

뷰와 저장 프로시저 - 2  (0) 2017.06.15
SQL 기본 - 4  (0) 2017.06.11
SQL 기본 - 3  (0) 2017.06.11
SQL 기본 - 2  (0) 2017.05.24
SQL 기본  (0) 2017.05.24
Posted by 멜데스
SQL2017. 6. 11. 21:28

집계함수 

- 수(COUNT), 합계(SUM), 평균(AVG), 최대값(MAX), 최소값(MIN) 등을 구하기 위한 함수구성 

예 

   SELECT AVG(AGE) FROM STUDENT      1개의 행으로 결과가 구해짐 



합계 구하는 SUM 함수 

- 학생들의 나이 총합 출력하기(예제) 

1: SELECT SUM(AGE) AS [나이 총합] 

2: FROM STUDENT  


평균 구하는 AVG 함수  

- 학생들의 나이 총합 출력하기(예제) 

1: SELECT AVG (AGE) AS [평균 나이] 

2: FROM STUDENT  


GROUP BY 

-  GROUP BY 절 뒤에 해당 칼럼을 기술 

SELECT 칼럼 명, 집계함수 

FROM 테이블 명  

WHERE 조건 (연산자)  

GROUP BY 칼럼 명; 


- 소속 과정별 평균 연령을 과정 번호와 함께 출력하기(예제)  

1: SELECT COU_ID, AVG (AGE) AS [평균 나이] FROM STUDENT  

2: GROUP BY COU_ID 


HAVING 조건 

-  과정별 평균 연령이 25세 이상인 과정의 번호와 평균 연령 구하기(예제)  

1: SELECT COU_ID, AVG (AGE) AS [평균 나이] 

2: FROM STUDENT  

3: GROUP BY COU_ID 

4: HAVING AVG(AGE) >= 25 


조인  

Equi Join 

-  조인 대상이 되는 테이블의 공통적으로 존재하는 칼럼 값이 같은 값을 가지는 조건(=)에 대해서 조인 결과를 얻는 것 



테이블에 별칭 부여하기   


-  서브 쿼리형식 

 SELECT SELECT_LIST                               → 메인 쿼리   

 FROM TABLE_LIST 

 WHERE COLUMN =  (SELECT EXPRESSION  → 서브 쿼리 

                            FROM ..... 

                            WHERE.....) 


서브 쿼리에는 몇 가지 규칙 


1.   서브 쿼리 안에 서브 쿼리가 들어갈 수 있다. 이것을 네스팅(nesting)이라고 하며 메모리가 허용하는 한 무제한으로 중첩할 수 있다.    

2.   메인 쿼리에서 서브 쿼리의 결과 값을 조건으로 사용할 때 SOME, ANY 또는 

     ALL 연산자를 사용하지 않는 일반적인 경우에는 서브 쿼리에서는 하나의    

     레코드 값만 리턴해야 한다. 그러므로 대부분의 경우 서브 쿼리에는 GROUP BY,  

     HAVING문을 사용할 수 없다.    

3.  서브 쿼리에서 ORDER BY문은 TOP 연산자와 함께 있을 때만 사용 가능하다.     

4.  서브 쿼리에서 SELECT 하지 않은 칼럼은 주 쿼리에서 사용할 수 없다. 

 -  단일 행(Single Row) 서브 쿼리는 수행 결과가 오직 하나의 로우(행, row)만을 반환하는 서브 쿼리를 가진 것 


다중 행 서브 쿼리 

-  서브 쿼리에서 반환되는 결과가 하나 이상의 행일 때 사용하는 서브 쿼리 

IN 연산자 

-  메인 쿼리의 비교 조건에서 서브 쿼리의 출력 결과와 하나라도 일치하면 메인 쿼리의 WHERE 절이 참이 되도록 하는 연산자 


INSERT문의 기본 형식 

 INSERT INTO table_name (column_name, …) 

VALUES(column_value, …) ; 


1: INSERT INTO COURSE 

2:(COU_ID, COU_NAME, TEA_NAME) 

3: VALUES(50, ‘보안’, ‘주상면’) 

4: 

5: SELECT * FROM COURSE 



UPDATE문의 기본 형식 

 UPDATE table_name 

SET column_name1 = value1, column_name2 = value2, … 

WHERE conditions; 


- 과정 번호가 10번인 학생의 과정 번호를 그0번으로 수정(예제) 

UPDATE문의 형식 


1: UPDATE STUDENT 

2: SET COU_ID=30 

3: WHERE COU_ID=10

4: 

5: SELECT * FROM STUDENT


과정 번호(COU_ID)가 10인 자료를 과정 번호 30으로 수정한다. 


DELETE문의 기본 형식 

-  30번 과정 소속 학생을 삭제(예제) 

1: DELETE STUDENT 

2: WHERE COU_ID=30 

3: 

4: SELECT * FROM STUDENT 





 



 

 


 



'SQL' 카테고리의 다른 글

뷰와 저장 프로시저 - 2  (0) 2017.06.15
뷰와 저장 프로시저 - 1  (0) 2017.06.15
SQL 기본 - 3  (0) 2017.06.11
SQL 기본 - 2  (0) 2017.05.24
SQL 기본  (0) 2017.05.24
Posted by 멜데스
SQL2017. 6. 11. 21:20

1. 데이터 조작어(DML) 

SQL Server에서 SQL 파일 실행하여 샘플 테이블 생성하기 


- SQL 파일을 불러오기 

SQL Server에서 SQL 파일 실행하여 샘플 테이블 생성하기 

- SQL 파일을 실행하기 

과정 테이블의 내용을 살펴보기 위한 쿼리문 

-SELECT는 데이터베이스 내에 저장되어 있는 테이블을 조회하기  위한 명령어 

-SELECT 다음에는 보고자 하는 대상의 칼럼 명을 기술한다.  

 SELECT  다음에 *를 기술하면 지정된 테이블(④COURSE)의 모든 칼럼을 조회 

- FROM 다음에는 보고자 하는 대상의 테이블 명을 기술 

- ④에 COURSE를 기술하였기에 COURSE 테이블에 등록된 과정의 정보보기 


칼럼 이름을 명시해서 특정 칼럼만 보기 

- 칼럼 명은 STU_ID 

- 칼럼 명은 STU_NAME 



중복된 데이터를 한 번씩만 출력하게 하는 DISTINCT 

- 중복되는 과정번호를 한 번씩만 출력하기 위해서는 키워드 DISTINCT를 사용 

DISTINCT로 중복된 데이터를 한 번씩만 출력하기 



LIKE 연산자와 와일드카드형식 

column_name LIKE pattern 


%  문자가 없거나, 하나 이상의 문자가 어떤 값이 와도 상관없다. 

_   하나의 문자가 어떤 값이 와도 상관없다. 


NULL을 위한 IS NULL과 IS NOT NULL 연산자 

-  이메일이 NULL인 학생을 찾는데 실패하는 예제 

1: SELECT * FROM STUDENT  

2: WHERE STU_EMAIL=NULL 


-  특정 칼럼 값이 NULL 값인지를 비교할 경우 연산자(=)를 사용하지 않고 IS 연산자를 사용 

대상칼럼 IS (연산자) NULL(비교값) 


정렬을 위한 ORDER BY 절 

- 정렬이란 크기 순서대로 나열하는 것을 의미 

- 작은 것이 위에 출력되고 아래로 갈수록 큰 값이 출력하는 오름차순(ascending) 정렬 방식 

- 큰 값이 위에 출력되고 아래로 갈수록 작은 값이 출력하는 내림차순(descending) 정렬 방식 


ORDER BY형식

SELECT * [column1, column2, .. ,columnn] 

FROM  table_name 

WHERE 조건절 

ORDER BY column_name  sorting 







'SQL' 카테고리의 다른 글

뷰와 저장 프로시저 - 2  (0) 2017.06.15
뷰와 저장 프로시저 - 1  (0) 2017.06.15
SQL 기본 - 4  (0) 2017.06.11
SQL 기본 - 2  (0) 2017.05.24
SQL 기본  (0) 2017.05.24
Posted by 멜데스
SQL2017. 5. 24. 13:50

1. 데이터 정의(DDL) 

데이터 무결성 제약 조건(Data Integrity Constraint Rule) 

ㆍ테이블에 부적절한 자료가 입력되는 것을 방지하기 위해서 테이블을 생성할 때 각 칼럼에 대해서 형식 하는 여러 가지 규칙

정확성을 유지 

 무결점  

ㆍ데이터베이스 내에 데이터의 정확성을 유지하는 것을 의미한다. 


기본키 제약 조건 

- 과정 번호 칼럼이 반드시 입력되고 유일한 값만을 가질 수 있도록 하는 다양한 무결성 제약 조건들 중의 한 가지 


NOT NULL을 명시 

- QL 칼럼 값으로 널 값을 허용하기 때문에 만일 특정 칼럼에 널 값을 허용하지 않도록 하려면 제약조건 


기본키 

-과정(COURSE) 테이블에서 과정들을 구분하기 위해서 과정 번호는 널 값을 저장할 수 없음 

-중복된 값을 저장할 수 없도록 하는 개체 무결성을 유지하기 위해서 과정 번호(COU_ID) 


과정 테이블의 기본키 제약조건-1 

과정 테이블의 기본키 제약조건-2 


기본키 

 ㆍ과정 번호 칼럼이 반드시 입력되고 유일한 값만을 가질 수 있도록 하는 것 

 ㆍ데이터베이스에서 제공하는 다양한 무결성 제약 조건들 중의 한 가지 


제약조건을 5가지 


필수 입력을 위한 NOT NULL 제약 조건 


- 널 값 허용 

    

- 부정확한 회원 정보 

- 해당 칼럼에 데이터를 추가하거나 수정할 때 NULL 값이 저장되지 않게 제약을 걸어주는 것 

-  주민번호와 이름과 같이 자료가 꼭 입력되게 하고 싶을 때 사용 


NOT NULL 제약조건을 설정하지 않고 테이블 생성하기 

- 회원 테이블을 생성 

CREATE TABLE member( 

   id         varchar(20),       

   pwd        varchar(20),  

   name       varchar(20),     

   email      varchar(20),      

   hp         varchar(20)      


- 널 허용한 테이블 생성 


- 테이블 생성 확인 

SELECT * FROM member 


- 제약조건이 불충분한 테이블로 의미 없는 정보 입력 

제약조건 지정형식 

column_name   data_type   constraint_type 


NOT NULL 제약조건을 설정하여 테이블 생성하기 

- NOT NULL 제약 조건을 설정 


- 필수 입력을 위한 NOT NULL 조건 지정 

- 성한 member 테이블에 데이터를 추가 

- 필수 입력 요구 


- member 테이블에 아이디와 패스워드, 이름에 NULL 값이 아닌 값을 지정 


INSERT INTO member 

VALUES(‘moon’, ‘Y’, ’문종헌’, ’moon@nate.com’, ’01063385361’) 

SELECT * FROM member 


- 정확한 정보 입력

유일한 값만을 저장하기 위한 UNIQUE 제약 조건 


- UNIQUE 제약 조건이란 특정 칼럼에 대해 자료가 중복되지 않게 하는 것 

ㆍ 특정 칼럼에 대해 자료가 중복되지 않게 하는 것 

ㆍ 지정된 칼럼에는 유일한 값이 수록되게 하는 것 


동일한 아이디로 구분 불가능 

ㆍ 아이디 칼럼에 UNIQUE KEY 제약 조건을 지정하면 중복된 값을 저장할 수 없음 

 

UNIQUE 제약조건을 설정하여 테이블 생성하기  

-member 테이블을 생성하되 아이디를 유일키로 지정 

-제약 조건은 칼럼 명과 자료형을 기술한 후에 연이어서 UNIQUE를 기술 


- UNIQUE 제약조건 설정 

- 생성한 member 테이블에 데이터를 추가 

INSERT INTO member 

VALUES(‘moon’, ‘Y’, ’문종헌’, ’moon@nate.com’, ’01063385361’) 

SELECT * FROM member 


- 데이터 삽입 

- ‘moon’이란 자료를 입력하였는데 다시 동일한 아이디를 입력 

INSERT INTO member 

VALUES(‘moon’, ‘SOL’, ’ 오한솔’, ’five@nate.com’, ’01011113121’) 


- 아이디 중복 허용 안 함 


- 유일키 제약 조건의 널 값 허용


개체의 무결성을 위한 PRIMARY KEY 제약 조건 

 ㆍ UNIQUE 제약 조건과 NOT NULL 제약 조건을 모두 갖는 것 


PRIMARY KEY는 NOT NULL 조건과 UNIQUE 조건을 결합한 형태로서 NULL을 허용하지 않고 중복된 값을 허용하지 않는다. 테이블에 

하나만 선언할 수 있다. 


PRIMARY KEY 제약조건 설정하기 

- 칼럼 명과 자료형을 기술한 후에 연이어서 PRIMARY KEY를 기술 


CREATE TABLE member( 

   id      varchar(20)    CONSTRAINT PK_id PRIMARY KEY,  

   pwd   varchar(20)    CONSTRAINT NN_pwd NOT NULL,  

   name   varchar(20)    CONSTRAINT NN_name NOT NULL,  

   email   varchar(20)      NULL, 

   hp     varchar(20)      NULL    

GO 


- 기본키로 지정된 아이디에 동일한 값을 저장 


INSERT INTO member 

VALUES(‘moon’, ‘Y’,’문종헌’,’moon@nate.com’,’01063385361’) 

 

 

INSERT INTO member 

VALUES(‘moon’, ‘SOL’,’ 오한솔’,’five@nate.com’,’01011113121’) 


- 중복 허용하지 않는 기본키 제약 조건 



- 본키로 지정된 아이디에 NULL 값을 저장 


INSERT INTO member 

 

VALUES(NULL, ‘Y’,’문종헌’,’moon@nate.com’,’01063385361’) 


- 널 값 허용하지 않는 기본키 제약 조건 

참조의 무결성을 위한 FOREIGN KEY 제약 조건 

  참조의 무결성                      ㆍ테이블 사이의 관계에서 발생하는 개념 

   FOREIGN KEY                       ㆍ일반적으로 업무 규칙에서 주종 관계가 있는 두 테이블 간에 사용되며 종속되는 테이블의 

                                              키 칼럼이 주가 되는 테이블의 PRIMARY KEY 또는 UNIQUE 칼럼을 참조함 

- 과정 테이블 




- 참조의 무결성을 위한 외래키 제약 조건을 설정할 때 중요한 개념 



ERD를 보고 데이터베이스를 구현할 때 

-과정이나 학생과 같은 개체는 테이블로, 형식하고 소속이란 관계 

-조의 무결성을 위한 특정 칼럼에 외래키 제약 조건으로 정의 

-“학생은 교육센터 내에 존재하는 과정에 수강해야 한다.” 


참조의 무결성을 위한 부모, 자식 테이블 관계  

참조 무결성을 유지하기 위해서 학생(STUDENT) 테이블의 과정 번호(COU_ID)를 외래키로 지정 


CREATE TABLE STUDENT ( 

  STU_ID         INTEGER            NOT NULL,    -- 학생번호, 널 값 허용 안 함 

  STU_NAME  VARCHAR(20)       NULL,           -- 학생명 

  AGE           INTEGER              NULL,           -- 나이 

  STU_EMAIL  VARCHAR(20)       NULL,           -- 이메일 

  COU_ID        INTEGER            NULL,           -- 소속된 과정의 과정 번호 

  PRIMARY KEY(STU_ID),                              -- 학생번호를 기본키로 지정 

  -- -- 과정 번호를 외래키로 지정 

  FOREIGN KEY(COU_ID) REFERENCES COURSE(COU_ID) 

GO  


칼럼 값의 조건 지정을 위한 CHECK 제약 조건 

 ㆍ 입력되는 값을 체크하여 설정된 값 이외의 값이 들어오면 오류 메시지와함께 명령이 수행되지 못하게 하는 것 

 ㆍ 조건: 데이터의 값의 범위나 특정 패턴의 숫자나 문자값을 설정 


CREATE TABLE STUDENT ( 

  STU_ID   INTEGER                   NOT NULL,   -- 학생번호, 널 값 허용 안 함 

  STU_NAME       VARCHAR(20)   NULL,          -- 학생명 

  AGE            INTEGER              NULL  CHECK(AGE < 30),   -- 나이 

  STU_EMAIL      VARCHAR(20)    NULL,          -- 이메일 

  COU_ID         INTEGER            NULL,          -- 소속된 과정의 과정 번호 

  SEX            VARCHAR             NULL   DEFAULT ‘M’,    -- 성별 

  PRIMARY KEY(STU_ID),                              -- 학생번호를 기본키로 지정 

  -- -- 과정 번호를 외래키로 지정 

  FOREIGN KEY(COU_ID) REFERENCES COURSE(COU_ID) 

GO 

- 생성한 테이블에 데이터를 추가 

INSERT INTO STUDENT VALUES(116,’장희성’, 34,’shine@nate.com’,10,’M’) 



'SQL' 카테고리의 다른 글

뷰와 저장 프로시저 - 2  (0) 2017.06.15
뷰와 저장 프로시저 - 1  (0) 2017.06.15
SQL 기본 - 4  (0) 2017.06.11
SQL 기본 - 3  (0) 2017.06.11
SQL 기본  (0) 2017.05.24
Posted by 멜데스
SQL2017. 5. 24. 13:24

SQL 

SQL은 사용자와 데이터베이스 시스템 간에 의사소통을 하기 위한 언어. 


데이터베이스와 SQL문 


-데이터베이스에 저장된 데이터를 조회, 입력, 수정,  삭제하는 등의 조작이나, 테이블을 비롯한 다양한 객체(시퀀스, 인덱스 등)를 생성 및 제어하는 역할 

 - 1974년에 IBM 연구소에서 데이터베이스 시스템, “시스템 R”을 질의하기 위해서 만들어진 구조화된 언어 

- Structured English Query Language라고 이름을 지음 

- SQL은 이후  IBM의 DB2와 SQL/DS 데이터베이스 시스템에서도 구현 


SQL 발전 역사 

SEQUEL Structured English Query Language의 약어로서 시스템 R 프로젝트에서 처음 제안됨 

SQL Structured Query Language의 약어로서 1983년 IBM의 DB2, 1991년 IBM의 SQL/DS에서 사용됨 

SQL-86 1986년 미국 표준 연구소(ANSI)와 1987년 국제 표준 기구(ISO)에서 표준 언어로 채택 

SQL-89  무결성 제약조건 강화 

SQL2(SQL-92)  1992년 새로운 데이터베이스 조작어 기능 추가  

SQL3(SQL-99)  1999년 객체 지향과 순환 멀티미디어 기능 추가  

SQL4(SQL-2003)  2003년 객체 개념을 지원하는 기능 추가 


2. SQL의 유형별 종류 

 대화식 SQL 

- 화면에 명령을 넣고, 결과가 바로 화면으로 나오는 방식 

 내포된 SQL 

- Java, COBOL, C, C++ 등과 같은 고급 프로그래밍 언어 사이에 SQL문을 끼어 넣는 방식 

 

DDL, DML, DCL 


SQL 명령문의 유형 


SQL의 인터페이스와 구성요소 


데이터 정의어(DDL) 


DDL 명령문의 종류 

CREATE  데이터베이스 및 객체 생성 

DROP  데이터베이스 및 객체 삭제 

ALTER   기존에 존재하는 데이터베이스 객체를 변경 


스키마 

- 하나의 응용(사용자)에 속하는 테이블과 기타 구성요소 

(릴레이션, 도메인, 제약조건, 뷰, 권한) 등을 그룹 짓기 위해서 나온 개념 

- 스키마는 CREATE SCHEMA 명령문으로 생성 


이름이 SCOTT인 사용자가 MY_SCHEMA를 생성한 예 

CREATE  SCHEMA  MY_SCHEMA  

AUTHORIZATION SCOTT; 


사용하던 스키마를 제거 

DROP SCHEMA  MY_SCHEMA; 


- 쿼리 편집기 

SQL Server에서 SSMS를 사용한 데이터베이스 생성하기 

- 쿼리 편집기에 다음과 같이 입력한 후 <실행>을 클릭 

USE master 

GO


SQL Server Management Studio의 각 창과 역할 


개체 탐색기 

서버 탐색, 개체 작성 및 로그 보기 등을 수행할 수 있다. 


쿼리 편집기 

개체들을 액세스하거나 생성하는 쿼리를 작성하는 부분이며 작성된 스크립트는 별도의 스크립트(.sql) 파일로 저장 가능하다. 


결과 및 메시지 창 

개체를 SELECT 하면 결과를 표나 텍스트 등으로 보여주며 개체를 생성하거나 삭제, 업데이트 등의 결과를 나타낸다. 


쿼리 분석기를 실행한 후 아래 T-SQL 구문을 작성 

CREATE DATABASE EduManager 


- 데이터베이스 생성 


쿼리 편집기 살피기 

SQL Server에서 SQL문을 입력하는 곳이 쿼리 편집기이다. 쿼리 편집기는 SQL문을 입력하고,실행하는 텍스트 에디터이다. 쿼리 편집기를 

사용하기 위한 방법은 다음과 같다. 

① 쿼리를 실행할 대상 서버(인스턴스)를 선택한다. 

② <새 쿼리>를 클릭하여 쿼리 편집기를 연다. 

③ SQL 구문을 입력한다. 

④ <실행> 버튼을 눌러 SQL 문장을 실행한다.  


CREATE TABLE 형식 

===========================================

CREATE  TABLE  테이블이름  

  ( {열이름  데이터타입 [NOT NULL] [DEFAULT 값], }+ 

    [PRIMARY  KEY  (열이름_리스트),] 

    {[UNIQUE  (열이름_리스트),] }* 

    {[FOREIGN  KEY(열이름_리스트) 

       REFERENCES  기본테이블[(열이름_리스트)] 

       [ON DELETE   옵션] 

       [ON UPDATE   옵션] ,] } * 

       [CONSTRAINT 이름] [CHECK(조건식)]); 

================================================

-  “[ ]”로 묶인 부분은 생략 가능한 부분이고, “{ }”로 묶인 부분은 중복 가능 부분을 나타냄 

-  +는 1번 이상, *는 0번 이상 반복을 나타냄 

-  +나 * 앞에 ,는 요소들이 여러 번 반복되어 형식 될 수 있음을 나타냄 


CREATE TABLE 

- CREATE TABLE문 다음에는 테이블 이름을 기술 

- 칼럼에 대해서 칼럼 이름과 함께 데이터 타입과 제약조건을 명시 

- CREATE TABLE 문은 세미콜론 “;”으로 끝나야 함 


이름을 주는 기본 규칙 

1. 테이블 이름과 칼럼은 A~Z까지의 문자, 0~9까지의 숫자, 그리고$,#,_(Under Bar)를 사용할 수 있다. 그러나 공백은 사용할 수없다.  

2. 테이블의 칼럼은 30자를 초과할 수 없고, 예약어를 사용할 수 없다.  

3. 한 테이블 안에서 칼럼 이름은 같을 수 없으며 다른 테이블에서의 칼럼 이름과는 같을 수 있다. 


- 1개의 테이블에는 여러 개의 칼럼이 존재하므로 각 칼럼들은 콤마”,”로 구분되고, 

      각 칼럼의 데이터 타입은 반드시 지정되어야 함 


SQL Server의 대표 데이터 타입의 종류 



과정 정보를 저장하는 COURSE 테이블을 생성 

1: CREATE TABLE COURSE ( 

2:   COU_ID       INT         NOT NULL,   -- 과정 번호 

3:   COU_NAME     VARCHAR(20)    NULL,   -- 과정명 

4:  TEA_NAME     VARCHAR(20)    NULL,   -- 강사명 

5:   PRIMARY KEY(COU_ID)            -- 과정 번호를 기본키로 지정 

6: ) 

7: GO 


1: CREATE TABLE STUDENT ( 

2: STU_ID         INTEGER               NOT NULL, -- 학생번호, 널 값 허용 안 함 

3:   STU_NAME     VARCHAR(20)  NULL,                   -- 학생명 

4:  AGE          INTEGER       NULL,                   -- 나이 

5:  STU_EMAIL    VARCHAR(20)  NULL,                   -- 이메일 

6:   PRIMARY KEY(STU_ID),                 -- 학생번호를 기본키로 지정 

7:   FOREIGN KEY(COU_ID) REFERENCES COURSE(COU_ID)   -- -- 과정 번호를 외래키로 지정 

8: ) 

9: GO


SQL 주석문 


각 줄에 기술한 문장이 무엇인지를 개발자에게 설명하기 위해서는 주석문을 작성해야 한다. 

주석문은 -  - 로 시작하며 실행을 시켰을 경우 주석 처리한 문장은 실행에서 제외된다. 


SQL Server에서 테이블 생성하기 

-  과정 테이블 생성 

-  학생 테이블 생성 

CREATE TABLE 명령 

ALTER  TABLE  테이블명 

     ([ADD  칼럼명  데이터_타입] [DEFAULT 값] | 

      [DROP 칼럼명] [CASCADE] | 

      [ALTER 칼럼명  (DROP DEFAULT | SET DEFAULT 값)]); 

-  학생(STUDENT) 테이블에 성별을 구분하기 위한 칼럼을 추가 

-  ALTER TABLE 명령문을 사용 


1: ALTER  TABLE  STUDENT 

2: ADD  SEX  VARCHAR  DEFAULT 'M'; 


테이블 구조 변경 


DROP TABLE 명령 

DROP TABLE COURSE; 


테이블 제거 실패 


DROP TABLE 명령 

1: DROP TABLE STUDENT 

2: DROP TABLE COURSE 

3: GO 


테이블 제거 성공 





   

'SQL' 카테고리의 다른 글

뷰와 저장 프로시저 - 2  (0) 2017.06.15
뷰와 저장 프로시저 - 1  (0) 2017.06.15
SQL 기본 - 4  (0) 2017.06.11
SQL 기본 - 3  (0) 2017.06.11
SQL 기본 - 2  (0) 2017.05.24
Posted by 멜데스