2023. 03. 08 (3 week)

김준태·2023년 3월 8일
0

멋쟁이사자처럼

목록 보기
11/16
post-thumbnail

DataBase

Sequel Pro + MySQL 설치

데이터베이스 언어의 제약 조건

  • 데이터 타입 제약 조건 : 각 데이터 타입은 특정한 범위의 값을 가질 수 있으며, 다른 데이터 타입의 값은 할당할 수 없다.
  • NULL 값 제약 조건 : 특정 컬럼에 NULL 값을 허용하지 않도록 설정할 수 있다.
  • Primary key 제약 조건 : 각 테이블은 하나 이상의 primary key를 가지며, 이는 중복되지 않는 값으로 설정해야하고, 값으로 NULL을 가질 수 없다.
  • Foreign key 제약 조건: 다른 테이블의 primary key를 참조하는 외래 키(foreign key)는 해당 primary key 값이 변경되거나 삭제될 때 관련된 데이터를 업데이트하거나 삭제합니다.
  • 무결성 제약 조건: 데이터베이스에서 데이터는 항상 일관성 있게 유지되어야 합니다. 이를 위해 무결성 제약 조건을 설정할 수 있습니다.
  • 제약 조건 위반 시 동작 제약 조건: 제약 조건을 위반한 경우, 시스템이 어떻게 동작할지를 설정할 수 있습니다.

이러한 제약 조건들은 데이터베이스 설계와 관리를 보다 강력하고 안정적으로 만들어주는 역할을 합니다.

문법

DDL / Data Definition Language(데이터 정의어)

데이터베이스 관리 시스템에서 사용되는 데이터 정의 언어
  CREATE: 데이터베이스 객체를 생성
     - CREATE TABLE : 새로운 데이터베이스의 테이블을 생성
  ALTER: 데이터베이스 객체를 변경
     - ALTER TABLE : 이미 존재하는 데이터베이스 테이블을 변경하기 위해 사용
  DROP: 데이터베이스 객체를 삭제
     - DROP TABLE : 데이터베이스 테이블을 삭제
  TRUNCATE: 데이터베이스 테이블의 모든 데이터를 삭제합니다.
     - TRUNCATE TABLE 문은 데이터베이스 테이블에서 모든 데이터를 삭제
  RENAME: 데이터베이스 객체의 이름을 변경

DML / Data manipulation language(데이터 조작어)

데이터베이스 관리 시스템에서 사용되는 데이터 조작 언어
SELECT: 데이터베이스 테이블에서 데이터를 검색합니다.
INSERT: 새로운 데이터를 데이터베이스 테이블에 삽입합니다.
UPDATE: 데이터베이스 테이블의 기존 데이터를 업데이트합니다.
DELETE: 데이터베이스 테이블에서 데이터를 삭제합니다.

DB

# DB 리스팅 
SHOW DATABASES;

# DB 사용
USE DB_Name;

# DB_Name이 있다면 삭제
DROP DATABASE IF EXISTS DB_Name;

# DB_Name으로 DB생성
CREATE DATABASE DB_Name;


Table

# Table 리스팅
SHOW TABLES;

# 테이블의 구조 확인
DESC Table_Name;

# 테이블의 내용 확인
SELECT * FROM Table_Name;

ex) article의 데이터 중 조회수 가장 많은 게시물 3개 만 보여주세요.
SELECT * FROM article ORDER BY hit DESC LIMIT 3;

ex) article의 데이터 중 조회수가 10 이상 55 이하 인것만 보여주세요.
SELECT * FROM article WHERE hit >= 10 AND hit <= 55;

ex) article의 데이터 중 nickname이 '홍길'로 시작하는 게시물만 보여주세요.
SELECT * FROM article WHERE nickname LIKE '홍길%';

ex)article의 데이터 중 nickname이 '무명' 이거나 조회수가 55 이상인 게시물을 보여주세요.
SELECT * FROM article WHERE nickname = '무명' OR hit >= 55;

EX

# Table_Name으로 테이블 생셩
CREATE TABLE Table_Name (
    title VARCHAR(100),
    `body` TEXT
);

# Table_Name에 데이터 추가
INSERT INTO Table_Name
SET title = '제목1',
`body` = '내용1';

# 기존 데이터의 데이터 변경
UPDATE Table_Name
SET 변경내용
WHERE 변경대상;

ex) article 테이블에서 id가 NULL인 데이터를 id = 1로 설정
    /  1개만 id를 1로 변경(LIMIT 1)
UPDATE article
SET id = 1
WHERE id IS NULL
LIMIT 1;




# Table_Name에 새로운 칼럼 생성
ALTER TABLE Table_Name ADD COLUMN Column_Name Column의 속성;

ex) article에 int속성(INT)의 id라는(id) 칼럼을 첫번째로(FIRST) 생성
ALTER TABLE article ADD COLUMN id INT FIRST;

ex) article에 DATETIM의 regDate 칼럼을 id칼럼 뒤에 생성
ALTER TABLE article ADD COLUMN regDate DATETIME AFTER id;




# Table_Name에 칼럼 이름 수정
ALTER TABLE Table_Name CHANGE `수정할 칼럼이름` `수정될 칼럼이름` 칼럼의 속성;

ex) article의 writer-> nickname으로 변경
ALTER TABLE article CHANGE `writer` `nickname` VARCHAR(100) NOT NULL;




######### ALTER TABLE #########
# article의 id값을 기존 NULL값이 0으로 바뀐다.
ALTER TABLE article MODIFY id INT NOT NULL;

# article의 id값을 유니크한 성격 PRIMARY KEY 부여
# PRIMARY KEY 의 조건 중복이 있으면 안되고, 데이터가 비어있으면 안된다(NULL 불가)
ALTER TABLE article ADD PRIMARY KEY(id);

# article의 id값을 기존 NULL값을 0으로 바꾼후 / 자동으로 숫자가 증가하게 한다.
ALTER TABLE article MODIFY COLUMN id INT NOT NULL AUTO_INCREMENT;

0개의 댓글