목차
CREATE
--데이터베이스 생성
CREATE DATABASE database_name;
-- CREATE
CREATE TABLE table_name (
uid INT PRIMARY KEY AUTO_INCREMENT
, name VARCHAR(50) NOT NULL
, email VARCHAR(50) NOT NULL UNIQUE
, age INT DEFAULT 20 CHECK(age >= 20)
, rdate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 테이블 생성시에, db선택을 해줘야 생성가능함. 테이블 생성하고, insert해서 값 넣으면 됨.
-- 다른 db에서 내용 가져와서 넣기 예시
INSERT INTO country_upper(code, name, population)
SELECT code, name, population
FROM country
WHERE population >= 10000 * 10000;
테이블생성시 필요한 속성 , 데이터타입 , 제약조건
-- 테이블 생성시 필요한 속성 : 컬럼이름, 데이터타입, 제약조건
-- 데이터타입 : 저장공간을 효율적으로 사용하기 위해
-- 제약조건 : 데이터의 무결성(원하지 않는 데이터는 저장 X)을 지키기 위해 사용
-- 데이터타입 : 저장공간을 효율적으로 사용하기 위해
-- - 숫자 : INT, FLOAT, DOUBLE
-- - 문자 : CHAR(고정길이), VARCHAR(가변길이), TEXT(긴길이)
-- - 날짜 : DATETIME(직접입력된시간), TIMESTAMP(현재시간)
-- 제약조건 : 데이터의 무결성(원하지 않는 데이터는 저장 X)을 지키기 위해 사용
-- - NOT NULL(결측 데이터 X)
-- - UNIQUE(중복 데이터 X)
-- - PRIMARY KEY(결측, 중복 데이터 X : ROW를 구별하는 식별자)
-- - AUTO_INCREMENT(자동으로 1씩 증가)
-- - DEFAULT(저장하려는 데이터가 없는 경우에 저장되는 데이터 설정)
-- - CURRENT_TIMESTAMP(현재시간저장)
-- - CHECK(조건에 맞는 데이터만 저장: 8.0.16 버전 이상 사용가능)
SHOW / DESC
-- 테이블 목록 출력
SHOW TABLES;
-- 데이터베이스 보이기
SHOW DATABASES;
--table 상세 내용 보기
DESC database_name.table_name;
ALTER / RENAME
--열 추가
ALTER TABLE table_name ADD (COLUMN) col_name VARCHAR(1000);
--열 설정 변경(데이터 타입 및 사이즈 변경)
ALTER TABLE table_name MODIFY COLUMN col_name VARCHAR(100) DEFAULT 'No Data';
--열 이름 변경
ALTER TABLE table_name CHANGE COLUMN col_name_now col_name_to_be VARCHAR(1000);
--열 삭제
ALTER TABLE table_name DROP (COLUMN) col_name;
--table이름 바꾸기
ALTER TABLE table_name_now RENAME table_name_new;
DROP / TRUNCATE (/DELETE)
DROP TABLE table_name;
DROP DATABASE database_name;
TRUNCATE
- 데이터만 삭제하는 명령어
- ROLLBACK 불가하므로 신중하게 사용해야 함
- 통째로 삭제할때 사용함, 대용량 데이터 삭제 시 빠르게 삭제하는 방법(특정 행 삭제 기능X)
- DELETE는 롤백이 가능하지만, 삭제 속도가 느림
- DELETE는 데이터를 삭제하지만 테이블 속성이 그대로 남아있음 / BUT TRUNCATE는 공장 초기화와 같은 기능을 함.
DROP
- 테이블과 데이터 모두 깔끔히 삭제
- 롤백 불가하므로 신중히 사용
'SQL, Database' 카테고리의 다른 글
| 프로그래밍 언어의 종류 (0) | 2025.08.13 |
|---|---|
| DML: INSERT INTO / UPDATE , SET / DELETE FROM (1) | 2025.08.12 |
| SQL: DDL/DML/DCL 비교 (1) | 2025.08.12 |
| SQL 함수(FUNCTION) (2) | 2025.08.08 |
| SQL: FK설정하기 / FK 세팅 (3) | 2025.08.08 |