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 |