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 |