Data Analysis

SQL

[SQL] 데이터베이스 생성, 편집

Holy_Water 2022. 12. 27. 18:53

SQL CREATE DATABASE

  • 관리자가 관리하는 부분
  • 데이터베이스를 만들 때 사용
CREATE DATABASE databasename ;

 

SQL DROP DATABASE

  • 데이터베이스 삭제는 복구가 어렵기 때문에 신중해야 한다.
  • 삭제 하기 전에, 관리자 권한이 있어야 한다.
DROP DATABASE databasename;

 

SQL CREATE TABLE

  • 데이터베이스에 새 테이블을 만들 때 사용
-- 예제
CREATE TABLE Persons(
  PersonID int,
  LastName varchar(255),
  FirstName varchar(255),
  Address varchar(255),
  City varchar(255),  
);

-- 예제2
-- SELECT문을 활용하여, 다른 테이블의 칼럼들을 새 테이블에 복붙
CREATE TABLE new_table_name AS
  SELECT column1,  column2
  FROM existing_table_name
  WHERE condition;

 

SQL DROP TABLE

  • 기존 테이블을 삭제 할 때 사용
-- DROP TABLE
 DROP TABLE table_name ;

-- TRUNCATE TABLE
-- 테이블 내부의 데이터는 삭제하고,
-- 테이블 자체는 삭제 하지 않음
TRUNCATE TABLE table_name;

 

SQL ALTER TABLE

  • 기존 테이블에 열 추가, 삭제, 수정할 때 사용
  • 기존 테이블에 다양한 제한 조건을 추가하는데에도 사용
-- 열추가
ALTER TABLE table_name
ADD column_name datatype;

-- 열삭제
-- 일부 데이터베이스 시스템에서는 역삭제가 혀용이 안될 수도 있음
ALTER TABLE table_name
DROP COLUMN column_name;

-- 열수정
-- SQL SERVER/MS
ALTER TABLE table_name
ALTER COLUMN column_name datatype;

-- ORACLE(10버전 이하)
MODIFY COLUMN column_name datatype;

-- ORACLE(10버전 이상)
MODIFY column_name datatype ;

 

 

SQL 제약 조건 만들기

  • CREATE TABLE 혹은 ALTER TABLE로 작성될 때 제한 조건을 지정할 수 있다.
  • 제한 조건과 데이터 사이에 위반이 있으면, 실행이 중단된다.
  • 제한 조건을 지정함으로써, 데이터의 정확성과 신뢰성을 보장 할 수 있다.
  • 기본적인 제약 조건
    • NOT NULL : 열이 NULL 값을 가질 수 없음을 보장
    • UNIQUE : 열의 모든 값이 서로 다른지 확인
    • PRIMARY KEY : NOT NULL과 UNIQUE의 조합. 테이블의 각 행을 고유하게 식별
    • FOREIGN KEY : 다른 테이블의 행 / 레코드를 고유하게 식별
    • CHECK : 열의 모든 값이 특정 조건을 충족하는지 확인
    • DEFAULT : 값이 지정되지 않은 경우 열의 기본값을 설정
    • INDEX : 데이터베이스에서 데이터를 매우 신속하게 생성 및 검색하는 데 사용

 

SQL NOT NULL 제약 조건

  • 기본적으로 NULL 값을 포함 할 수 있다.
  • NOT NULL제약 조건은 열이 NULL값을 허용하지 않도록 한다.
  • 필드에 값을 빈 값이 들어갈 경우, 삽입 수정이 실행이 되지 않는다.

SQL UNIQUE 제약 조건

  • 모든 열의 값들이 서도 다른지 확인
  • PRIMARY KEY 제약 조건에는 자동으로 UNIQUE제약 조건이 적용
  • 여러개의 UNIQUE 제약 조건을 가질 수 있찌만, PRIMARY KEY는 오직 한개여야 한다
- CREATE TABLE 한개의 속성에만 UNIQUE 지정할 때
-- SQL SERVER/ORACLE/MS
CREATE TABLE Persons (
    ID int NOT NULL UNIQUE,
  );
-- MY SQL
CREATE TABLE Persons (
    ID int NOT NULL,
    UNIQUE (ID)
);

-- 여러개 속성에 UNIQUE 제약 조건 지정할 때
CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    CONSTRAINT UC_Person UNIQUE(ID,LastName)
  );

-- ALTER TABLE
-- 한개의 경우
ALTER TABLE Persons
ADD UNIQUE (ID);
-- 여러개
ADD CONSTRAINT UC_Person UNIQUE (ID,LastName);

-- DROP
-- MY SQL
ALTER TABLE Persons
DROP INDEX UC_Person;
-- SQL SERVER/ORACLE/MS
ALTER TABLE Persons
DROP CONSTRAINT UC_Person;

 

 

SQL PRIMARY KEY 제약조건

  • 데이터베이스 테이블의 각 레코드를 고유하게 식별
  • 기본키는 UNIQUE값을 포함해야하며, NULL 값은 포함 할 수 없다.
  • 테이블에는 기본키는 하나만 있어야 한다. 기본 키는 하나 또는 여러 개 필드로 구성이 가능 하다.
-- MY SQL
CREATE TABLE Persons (
    ID int NOT NULL,
    PRIMARY KEY (ID)
);
-- SQL SERVER/ORACLE/MS
CREATE TABLE Persons (
    ID int NOT NULL PRIMARY KEY,
);

-- 한개이상의 필드를 기본키로 만들 때
CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    CONSTRAINT PK_Person PRIMARY KEY (ID,LastName)
);


-- 이미 만들어진 테이블의 기본키 바꿀 때
-- 이 경우, NULL 값을 포함하지 않도록 이미 선언 되어 있어야 한다 .
ALTER TABLE Persons
ADD PRIMARY KEY (ID);
-- 두개 이상의 필드를 기본키로 할 때
ALTER TABLE Persons
ADD CONSTRAINT PK_Person PRIMARY KEY (ID, LastName);

-- 기본키 삭제
-- MYSQL
ALTER TABLE Persons
DROP PRIMARY KEY;
-- SQL SERVER/ORACLE/MS
ALTER TABLE Persons
DROP CONSTRAINT PK_Person;

'SQL' 카테고리의 다른 글

[SQL] 데이터 조작 (INSERT, UPDATE, DELETE)  (1) 2022.12.28
[SQL] ORDER BY / GROUP BY / HAVING  (1) 2022.12.27
[SQL] 데이터베이스 객체  (0) 2022.12.27
[SQL] 데이터베이스 모델링  (0) 2022.12.26
[SQL] 데이터베이스 알아보기  (0) 2022.12.26