- 데이터베이스 (스키마) 생성
CREATE DATABASE 데이터베이스이름;
- 데이터베이스 삭제
DROP DATABASE 데이터베이스이름;
- 데이터베이스 선텍
USE 데이터베이스이름;
- 데이터베이스 생성 후 확인
SHOW DATABASES;
- 테이블 생성
CREATE TABLE 테이블이름 { 필드이름1 필드타입1 [제약조건], 필드이름1 필드타입2 [제약조건], ... [테이블 제약조건] }
→ 제약조건 추가 방법 (두 가지 방법이 있다~ 정도로만 생각해두면 될 듯)
- 필드에 제약조건 해당 필드에 적용할 제약조건을 선택적으로 지정가능
- 테이블 제약조건 테이블 전체에 적용될 제약조건을 선택적으로 지정가능
- 테이블 생성 후 확인
SHOW TABELS;
- 컬럼 정보 조회
DESCRIBE author;
- 컬럼 정보 상세 조회
SHOW FULL COLUMNS FROM author;
- 테이블 생성문 조회 - 중간에 ALTER하다보면 변경이 많이 돼서 마지막에 라이브서버에 올릴 때의 편리함을 위해 사용
show create table posts;
- 참조관계 및 제약조건 정보조회
select * FROM INFORMATION_SCHEMA KEY_COLUMN_USAGE WHERE TABLE_NAME = ‘posts’;
주요 제약조건(pk, fk) → index가 자동 생성
-제약조건 정보조회와 인덱스 조회는 상당수 일치
index란 조회 성능을 위한 목차 페이지
show index from 테이블명; : 인덱스 조회
DDL -CREATE
CREATE TABELE 테이블이름 {
}
DDL - ALTER : 테이블 정보 변경
- 테이블 이름 변경
- ALTER TABLE 테이블명 RENAME 새로운테이블명;
- ALTER TABLE posts RENAME post;
- 컬럼 추가 (Add)
- ALTER TABLE 테이블명 ADD COLUMN 컬럼명 자료형 [NULL 또는 NOTNULL]
- 컬럼 타입 변경 (Modify)
- ALTER TABLE 테이블명 MODIFY COLUMN 컬럼명 타입 [제약조건];
- 컬럼 이름 변경 -> 이름만 바꾸고 싶을땐 RENAME ~ TO 사용
- ALTER TABLE 테이블명 CHANGE COLUMN 기존컬럼명 새로운컬럼명 타입 [제약조건];
- 컬럼 삭제
- ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
DDL - DROP
데이터베이스 삭제
DROP DATABASE 데이터베이스명
테이블 삭제
DROP TABLE 테이블이름
테이블 데이터만을 지우고 싶을때
DELETE FROM 테이블이름;
TRUNCATE TABLE 테이블이름; - 이게 더 빠름
IF EXISTS
특정 객체(예: 데이터베이스 또는 테이블) 가 존재하는 경우에만 명령어를 실행
DROP DATABASE 또는 TABLE IF EXISTS abc;
DDL 실습
ctrl+enter하면 한줄씩 적용 가능
- 게시판 데이터베이스 생성
CREATE DATABASE board;
- 테이블 생성
- author 테이블
CREATE TABLE author(
id INT,
name VARCHAR(100) not null,
email VARCHAR(255),
password VARCHAR(255),
role VARCHAR(50),
address VARCHAR(255),
PRIMARY KEY(id)
);
→ PRIMARY KEY를 적용한 컬럼에 대해서는 unique, not null 제약조건 부여
- post 테이블
CREATE TABLE post(
id INT PRIMARY KEY,
title VARCHAR(255),
contents VARCHAR(3000),
author_id INT,
FOREIGN KEY(author_id) REFERENCES author(id)
);
→ author_id는 author테이블의 id를 참조한 것
→ 외래키가 설정되면 author, post테이블 데이터의 생성 삭제, 수정에 대해 제약이 발생 만약 not null 조건이 있다면 author_id가 없는 데이터는 post에 생성 불가 author가 삭제될 때 post에 데이터가 남아있으면 author 삭제 불가 author의 id가 수정될때 post에 데이터가 남아있으면 author 수정 불가 -> 삭제, 수정에 대해서는 기본적으로 제약(restrict제약)을 갖고 있으나, 옵션을 줘서 변경가능
?? restrict??
Uploaded by N2T
'Database' 카테고리의 다른 글
[MariaDB] 제약조건 (0) | 2023.11.22 |
---|---|
[MariaDB] 연산자 (1) | 2023.11.22 |
[MariaDB] 데이터타입 (0) | 2023.11.22 |
[MariaDB] DML (1) | 2023.11.22 |
[MariaDB] 설치, MariaDB란 (1) | 2023.11.22 |