본문 바로가기

   
Programming/MS - SQL

MS-SQL create구문

반응형




MS-SQL
 - 데이터베이스 (환경)
 - DBMS(Database Management System)
 - 프로그램 + 환경
 - 데이터베이스를 관리하는 시스템
 - 데이터의 저장과 관리를 목적으로 하는 소프트웨어
 - 데이터의 물리적인 저장 방식에 상관없이 일괄성 있는 작업 방식 제공
 - 1.0 (1989년) ~ MS-SQL 2008(10.0) ~ MS-SQL 2008 R2(10.5)

데이터베이스
 - 데이터(data) : 자료, datum의 복수형
 - 업무에 필요한 데이터를 기억장치에 저장한뒤 가공 및 활용하는 모든 행동 필요한 기술을 총칭하는 단어
 - 데이터베이스 조건
    대용량 / 효율성 / 무결성 / 활용성 / 공유성 / 보안성
 - 데이터를 관리하는 환경
 - 데이터들의 집합
 - 데이터 + 부가 기능

 - 데이터 기록 물리적 단위 : DB(데이터베이스)
 - 데이터베이스 생성 -> 테이블 생성(컬럼 정의) -> 데이터 입력 -> 출력, 수정, 삭제

DBMS 발전 순서
 - 종이 -> 파일 시스템 -> SAM -> ISAM -> 계층형 -> 관계형(현재 우리가 사용중인 db) -> 객체지향형(OODB) : 오브젝트형
 - 관계형 데이터베이스(현재 단계)
   : RDBMS - Relational DataBase Menagement System
   : Oracle, MS-SQL, DB2, Infomix, MySQL
   : 데이터와 데이터간의 관계 중요시 ->

관리(접속) 인터페이스 
 - ODBC
 - OLE DB
 - ADO
 - ADO.NET(클래스로 제공 받는다.) : 여러 환경에 상황이 있다. MS SQL, ORACLE, MY SQL : 중간 계층을 만들어 놓아 중간 계층에서 변환하여 읽어 DB의 사용언어 별로 해석 해준다.

SQL
 - Structured Query Language
 - 구조화된 질의 언어
 - 데이터베이스에 질문을 해서 데이터를 입력, 수정, 삭제, 출력하는 프로그래밍 언어
 - ANSI-SQL(표준 SQL)
 - MS-SQL(T-SQL), Oracle(PL-SQL), DB2, Sybase, MySQL, Access


SQL 구문
 - 데이터 조작, 관리, 기타작업

 1. DDL(Data Definition Language)
- 데이터와 구조를 정의
- 데이터베이스 생성/삭제/수정, 테이블 생성/삭제/수정..
- 데이터베이스 설계자(DB관리자, 프로그래머)

 2. DML(Data Manipulation Language)
- 데이터 입/출력, 검색, 수정, 삭제
- 데이터 조작
- 프로그래머 필수!!(DB관련자.., 프로그래머)
 
 3. DCL(Data Control Language)
- 사용자 권한 관리, 보안
- 데이터베이스 관리자


Management Studio
 - MS-SQL 서버에 접속해서 관리 및 조작할 수 있는 툴
 - *.sql(텍스트파일) = SQL 구문의 집합


데이터베이스 생성
 - DDL
 - create database DB명;


테이블
 - 데이터의 집합
 - 테이블이 표현하는 대상을 엔티티(Entity)라고 표현
 - 테이블의 세로줄을 필드(Field)라고 표현, 엔티티에 대한 개별 정보를 표현
 - 테이블 안의 하나의 엔티티에 대한 정보의 집합을 레코드(Record)라고 하고 보통 행에 해당 함

명칭    - 표                 - 한국          - 모델링
필드    - 컬럼(Column) - 열             - 어트리뷰트(Attribute)
레코드 - 로우(Row)     - 행             - 튜플(Tuple)

데이터베이스 오브젝트
 - 테이블, 제약조건, 인덱스
 - 뷰
 - 저장, 프로시저 등..

DB 오브젝트의 명명법
 - 같은 범위내에 이름이 중복되면 안됨 - 하나의 DB안에 동일한 테이블명X, 하나의 테이블안에 동일한 컬럼명X
 - 대소문자 구분X
 - 길이는 128자 이내
 - SQL 예약어 사용 불가
 - 유니코드 사용 가능(한글 사용 가능)
 - #과 @로 시작하는 이름은 사용X(기존 의미가 있음)

 - 구조 생성(컬럼 생성) -> 하나의 열의 이름(성격), 자료형 선언
 - 컬럼 생성 : 1. 컬럼명, 2. 자료형, 3. 크기, 4. 제약사항
 - 자료형 : 숫자형, 문자형, 날짜시간형, 비텍스트형

확장자 : MDF(데이터 베이스의 수많은 테이블 모음, 수많은 데이터)

주소록테이블 생성

create table tblAddress
(
-- sql 주석
-- 컬럼을 정의하는 부분
-- 컬럼명 자료형 (길이) 제약사항
seq int not null, 
name varchar(10) not null, 
address varchar(100) not null,
tel varchar(15) null
)



테이블 스키마



--1. 어느DB에서명령을실행할지결정

 --a. SSMS에서콤보박스로DB 변경

 --b. use DB

use SQLEx;

 

--ddl

--CREATE DATABASE dbo.[Test]; : 원형

CREATE DATABASE test;

 

DROP DATABASE test;

 

-- 테이블생성

-- 열이름, 길이, 타입, 제약조건

 

-- 주소록테이블생성(선언)

-- SQL에선모든WhiteSpace(스페이스, , 엔터)는동일하게취급

CREATE TABLE tblAddress2

(

       --컬럼명자료형(낄이) 제약조건

       name nvarchar(5) not null,

       age int not null,

       tel varchar(15) null,

)

 

DROP TABLE tblAddress2;

 

CREATE TABLE tblAddress2

(

       --name nvarchar(5) not null constraint primary key,

       name nvarchar(5) not null primary key,

       nick nvarchar(10) null unique, --중복불가, 생략가능

       psycho nvarchar(20) not null default(N'이상없음'),--Nvarchar일경우앞에N을붙여준다.

       age int not null default(0)

);

 

INSERT INTO tblAddress2 values('홍길동', '대장', '이상없음', 0);

INSERT INTO tblAddress2 values('아무개', '', '결벽증', 20);

--INSERT INTO tblAddress2 values('하하하', '부하',

 

SELECT *

FROM tblAddress2;

 

--Check, ID 제약조건

CREATE TABLE tblAddress3

(

       seq int not null identity(1,1) primary key,

       name nvarchar(5) not null,

       nick nvarchar(10) null unique,

       psycho nvarchar(20) not null

      

)








반응형