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 멜데스