
1. 데이터베이스 생성
CREATE DATABASE 데이터베이스명;| 관리자 계정으로 생성가능DDL DDL Data Definition Language : 데이터 정의어
CREATE : 생성
ALTER : 변경
DROP : 삭제
RENAME : 객체 이름 변경
TRUNCATE : 삭제(저장공간까지 삭제, 데이터 테이블 초기화)2. DDL-CREATE 테이블 생성
객체(테이블,뷰...)를 생성할때 사용
구조
CREATE TABLE [IF NOT EXISTS] 테이블명 (
{ 컬럼명 데이터타입 [제약조건], }
[PRIMARY KEY 컬럼명]
[[CONSTRAINT 외래키명] FOREIGN KEY 컬럼명 REFERENCES 테이블명(컬럼명)
[ON DELETE CASCADE|SET NULL]
]
);
{} : 반복가능
[] : 선택적 사용
| :선택
PRIMARY KEY 기본키
FOREIGN KEY 외래키
- 두개의 테이블을 서로 참조도록 설정한, 현재 테이블에 있는 다른 테이블의 PRIMARY KEY를 현재 테이블의 FOREIGN KEY라 한다

- 위 테이블에서, child 인 student 테이블에 데이터가 입력될때, 오른쪽 professor테이블 의 profno값을 먼저 확인하게 된다. 확인결과 사용자가 입력한 student의 profno값이 professor의 profno 컬럼에 존재하는 값이면, student 테이블에 입력을 허용하고, 만약 존재하지 않을 경우 에러 발생시키고 입력을 거부함.
- Foreign Key 설정 시 주요 사항 : 부모 테이블에 데이터가 10억건이 있다고 가정하면, 자 식테이블에 데이터 1건 입력하기 위해, 부모테이블에 있는 10억건을 전부 읽어서 검사한 후에 작업을 할 수 있다는 뜻. 부모 테이블에 있는 데이터를 변경하거나 삭제하기 전에, 자 식 테이블에가서 해당 데이터 유무를 찾아본 후, 자식 테이블에 해당 데이터가 없으면 데 이터를 변경하게 됨. -> 비효율적인 상황 발생
이를 해결하기 위해 참조키 제약조건을 설정할 때는 자식 테이블과 부모테이블의 해당 컬 럼에 반드시 적절한 인덱스를 생성해 주어야함.
즉, 자식 테이블 컬럼과 부모테이블 컬럼 모두 적절한 인덱스가 생성되어 있어야, 참조키 제약조건 성능이 좋아짐.
테이블 조회
SHOW TABLES; -- 태이블 목록
SHOW TABLE STATUS; -- 목록 자세히
DESC 테이블명; -- 테이블 구성도
3. DDL-ALTER 테이블 수정
생성된 테이블의 속성, 제약조건 변경
생성된 테이블의 기본키, 외래키 변경
테이블명 변경 ALTER - RENAME
ALTER TABLE 테이블명 RENAME 새테이블명;
컬럼 추가 ALTER - ADD
ALTER TABLE 테이블명 ADD 새컬럼명 데이터타입 [제약조건] [ AFTER 기존컬럼명 ];
-> AFTER 기존컬럼명 : 기존 존재하는 특정 컬럼명 뒤에 일치하도록 지정
-> 테이블에 이미 데이터가 있을 경우 NOT NULL 옵션을 줄 수 없다. DEAFAULT 가능
컬럼 수정 ALTER - CHANGE
ALTER TABLE 테이블명 CHANGE 구컬럼명 TO 새컬럼명 데이터타입;
컬럼 타입만 변경 ALTER-MODIFY
ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입 [제약조건];
제약 조건 추가 ALTER-ADD CONSTRAINT
기본키 추가
ALTER TABLE 테이블명 ADD CONSTRAINT [제약조건명] PRIMARY KEY(컬럼명);
외래키 추가
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 FOREIGN KEY(컬럼명)
REFERENCES 참조테이블명(참조컬럼명);
| FOREIGN KEY 설정시, 참조테이블의 참조컬럼이 PRIMARY KEY 또는 UNIQUE 이여햐 함.
그 외 제약조건 추가
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건(컬럼명);
제약조건 추가 두가지 방법
제약조건 삭제 ALTER - DROP - KEY
ALTER TABLE 테이블명 DROP PRIMARY KEY;ALTER TABLE 테이블명 DROP FOREIGN KEY 외래키명;ALTER TABLE 테이블명 DROP INDEX 인덱스명; <-인덱스명은 외래키명과 동일함ALTER TABLE 테이블명 DROP CONSTAINT 제약조건명;4. DDL-DROP 테이블 삭제
DROP TABLE 테이블명;5. DML-INSERT 데이터 추가
INSERT INTO 테이블(컬럼명, 컬럼명,...)VALUES(값, 값,...);INSERT INTO 테이블 VALUES(값, 값,...);6. DML-UPDATE 데이터 수정
UPDATE 테이블명 SET 컬럼=새값, 컬럼=새값,... [WHERE 조건];7. DML-DELETE데이터 삭제 / DDL-TRUNCATE 데이터 완전 삭제(테이블 초기화)
DELETE FROM 테이블명;DELETE FROM 테이블명 WHERE 조건;TRUNCATE TABLE 테이블명;8. 자바에서 SQL 사용